wget na serwer IPv4 z serwera VPS obsługującego tylko IPv6

Aug 15 2020

Mam CentOS 7 VPS, który nie ma IPv4 i ma tylko sieć IPv6 . Otworzyłem Port 443 do akceptowania wszystkich połączeń TCP.

Kiedy próbuję wget https://www.litespeedtech.com/packages/6.0/lsws-6.0RC1-ent-x86_64-linux.tar.gz, generuje błąd (który, jak sądzę, jest spowodowanyhttps://litespeedtech.com/ nie obsługuje protokołu IPv6):

Resolving www.litespeedtech.com (www.litespeedtech.com)... 52.55.120.73
Connecting to www.litespeedtech.com (www.litespeedtech.com)|52.55.120.73|:443... failed: No route to host.

Przy próbie wykonania tego samego dla Google (z włączoną obsługą IPv6) wget https://google.comkończy się to pomyślnie:

Resolving www.google.com (www.google.com)... 2a00:1450:4016:805::2004, 172.217.23.68
Connecting to www.google.com (www.google.com)|2a00:1450:4016:805::2004|:443... connected.
HTTP request sent, awaiting response... 200 OK

Jak mogę połączyć się z serwerami IPv4 z mojego serwera VPS obsługującego wyłącznie protokół IPv6? Słyszałem o TunnelBroker, ale jestem kompletnym nowicjuszem i nie mam pojęcia, co powinienem zrobić, aby go skonfigurować.

Odpowiedzi

7 NStorm Aug 15 2020 at 12:49

IPv6 i IPv4 to różne protokoły. Jeśli masz tylko adres IPv6 w przestrzeni internetowej, nie możesz łączyć się bezpośrednio z usługami obsługującymi wyłącznie protokół IPv4. To naprawdę krótka odpowiedź - „nie, nie możesz”.

TunnelBroker i inne bezpłatne usługi oferują tylko tunele w innych kierunkach, tj. Od IPv4 do IPv6, a nie odwrotnie, o ile wiem. Możesz ustawić własny tunel na innym hoście z podwójnym stosem (zarówno IPv4, jak i IPv6) lub spróbować znaleźć jakąś komercyjną usługę do tego celu, ale jest to poza zakresem Server Fault i wątpię, czy tego potrzebujesz.

Aby pobrać plik, możesz użyć innego komputera i po prostu przenieść go do skrzynki IPv6 przez SSH.

1 SayanjyotiDas Aug 15 2020 at 22:02

Rozwiązaniem była zmiana na Debiana 10 (chociaż powinno to również działać dla Ubuntu) i zastąpienie serwerów nazw w /etc/resolv.confcelu korzystania z tej publicznej usługi przekazywania NAT64 :

search blue.kundencontroller.de
options rotate
nameserver 2a00:1098:2b::1
nameserver 2a00:1098:2c::1
nameserver 2a01:4f8:c2c:123f::1
nameserver 2001:67c:2b0::4
nameserver 2001:67c:2b0::6

Należy pamiętać, że plik resolv.conf jest przeznaczony specjalnie dla EUServ VPS-es. Jeśli używasz innego VPS, skopiuj i wklej tylko serwery nazw

Pozwoliło to VPS na (całkiem magiczny) dostęp do Internetu IPv4 (tak, nawet instalowanie pakietów z witryn dostawców IPv4).

Ta usługa jest obsługiwana przez jedną osobę, która ma również dostęp do całego ruchu IPv4 i całego ruchu DNS. Jeśli przekazujesz poufne dane lub tworzysz poważną stronę internetową, myślę, że najlepszym rozwiązaniem jest zakupienie VPS obsługującego IPv4 już teraz. Możesz również użyć tego, aby pobrać pakiet, którego nie byłeś w stanie, a następnie powrócić do oryginalnych serwerów nazw.

1 EsaJokinen Aug 18 2020 at 15:36

Użycie bezpośredniego Wget nie jest jedynym sposobem na pobranie pakietów instalacyjnych na serwer. Ponieważ sieć IPv6 działa idealnie w twoim przypadku użycia (witryna za Cloudflare), nie próbowałbym używać żadnych hacków, aby uzyskać łączność IPv4 nawet tymczasowo, ale używam innych sposobów przesyłania danych :

  1. Użyj serwera pośredniego z łącznością IPv4 i IPv6 i dubluj tam pakiet.

    user@intermediate:/var/www$ wget https://ipv4only.example.com/packages/install.tar.gz user@vps:~$ wget https://intermediate.example.net/install.tar.gz
    
  2. Jeśli masz już połączenie SSH z serwerem, prawdopodobnie możesz również użyć SFTP ( SSH File Transfer Protocol ) do przesłania pakietu zamiast bezpośredniego pobierania.

  3. Skonfiguruj swój Wget do korzystania z serwera proxy HTTPS w ~/.wgetrc(lub globalnie /etc/wgetrc):

    https_proxy = http://[Proxy_Server]:[port]
    

    Możesz użyć dowolnego serwera proxy obsługującego IPv6 i HTTPS i chcesz zaufać. Jednak nadal sprawdzałbym integralność pliku, porównując sumy MD5 ( md5sum install.tar.gz).