wget vers un serveur IPv4 à partir d'un VPS IPv6 uniquement

Aug 15 2020

J'ai un VPS CentOS 7 qui n'a pas d'IPv4 et qui n'a qu'un réseau IPv6 . J'ai ouvert le port 443 pour accepter toutes les connexions TCP.

Lorsque j'essaie de wget https://www.litespeedtech.com/packages/6.0/lsws-6.0RC1-ent-x86_64-linux.tar.gz, il génère une erreur (ce qui, je crois, est dû au fait quehttps://litespeedtech.com/n'est pas compatible avec 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.

Lorsque vous tentez la même chose pour Google (qui est compatible avec IPv6) wget https://google.com, cela réussit :

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

Comment puis-je me connecter aux serveurs IPv4 à partir de mon VPS IPv6 uniquement ? J'ai entendu parler de TunnelBroker mais je suis un débutant complet et je n'ai aucune idée de ce que je dois faire pour le configurer.

Réponses

7 NStorm Aug 15 2020 at 12:49

IPv6 et IPv4 sont des protocoles différents. Si vous n'avez qu'une adresse IPv6 dans l'espace Internet, vous ne pouvez pas vous connecter directement aux services IPv4 uniquement. C'est une réponse très courte - "non, vous ne pouvez pas".

TunnelBroker et d'autres services gratuits ne proposent que des tunnels dans d'autres directions, c'est-à-dire d'IPv4 vers IPv6 et non l'inverse à ma connaissance. Vous pouvez configurer votre propre tunnel sur un autre hôte exécutant une double pile (à la fois IPv4 et IPv6) ou essayer de trouver un service commercial à cette fin, mais cela ne relève pas de Server Fault et je doute que ce soit ce dont vous avez besoin.

Pour télécharger un fichier, vous pouvez utiliser un autre PC et simplement le transférer sur votre boîtier IPv6 via SSH.

1 SayanjyotiDas Aug 15 2020 at 22:02

La solution consistait à passer à Debian 10 (bien que cela devrait également fonctionner pour Ubuntu) et à remplacer les serveurs de noms /etc/resolv.confpour utiliser ce service de transfert Public 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

Veuillez noter que le fichier resolv.conf est spécifiquement destiné à EUServ VPS-es. Si vous utilisez un autre VPS, copiez et collez uniquement les serveurs de noms

Cela a permis au VPS d'accéder (tout à fait par magie) à Internet IPv4 (oui, même en installant des packages à partir de sites de fournisseurs IPv4).

Ce service est géré par une seule personne, qui a également accès à tout votre trafic IPv4 et à tout votre trafic DNS. Si vous transmettez des données sensibles ou créez un site Web sérieux, je pense que le mieux est d'obtenir un VPS compatible IPv4 dès maintenant. Vous pouvez également l'utiliser pour télécharger un paquet que vous n'avez pas pu, puis revenir à vos serveurs de noms d'origine.

1 EsaJokinen Aug 18 2020 at 15:36

L'utilisation directe de Wget n'est pas la seule solution pour obtenir des packages d'installation sur votre serveur. Comme le réseau IPv6 uniquement fonctionne parfaitement bien pour votre cas d'utilisation (un site derrière Cloudflare), je n'essaierais pas d'utiliser des hacks pour obtenir une connectivité IPv4 même temporairement, mais utiliser d'autres moyens pour transférer les données :

  1. Utilisez un serveur intermédiaire avec une connectivité IPv4 et IPv6 et dupliquez-y le pack.

    user@intermediate:/var/www$ wget https://ipv4only.example.com/packages/install.tar.gz
    
    user@vps:~$ wget https://intermediate.example.net/install.tar.gz
    
  2. Si vous disposez déjà d'une connexion SSH au serveur, vous pouvez probablement également utiliser SFTP ( SSH File Transfer Protocol ) pour télécharger le package au lieu de le télécharger directement.

  3. Configurez votre Wget pour utiliser un proxy HTTPS dans ~/.wgetrc(ou global /etc/wgetrc):

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

    Vous pouvez utiliser n'importe quel proxy prenant en charge IPv6 et HTTPS et auquel vous êtes prêt à faire confiance. Cependant, je vérifierais toujours l'intégrité du fichier en comparant les sommes MD5 ( md5sum install.tar.gz).