wget para um servidor IPv4 de VPS somente IPv6

Aug 15 2020

Eu tenho um VPS CentOS 7 que não possui IPv4 e possui apenas rede IPv6 . Abri a porta 443 para aceitar todas as conexões TCP.

Quando eu tento wget https://www.litespeedtech.com/packages/6.0/lsws-6.0RC1-ent-x86_64-linux.tar.gz, ele lança um erro (que eu acredito que seja porquehttps://litespeedtech.com/não está habilitado para 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.

Ao tentar o mesmo para o Google (que é habilitado para IPv6) wget https://google.com, é bem-sucedido:

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

Como posso me conectar a servidores IPv4 do meu VPS somente IPv6? Já ouvi falar do TunnelBroker, mas sou um novato completo e não tenho ideia do que devo fazer para configurá-lo.

Respostas

7 NStorm Aug 15 2020 at 12:49

IPv6 e IPv4 são protocolos diferentes. Se você tiver apenas endereço IPv6 no espaço da Internet, não poderá se conectar diretamente a serviços somente IPv4. É uma resposta muito curta - "não, você não pode".

O TunnelBroker e outros serviços gratuitos oferecem apenas túneis em outras direções, ou seja, de IPv4 para IPv6 e não vice-versa, até onde eu sei. Você pode configurar seu próprio túnel em outro host executando dual-stack (tanto IPv4 quanto IPv6) ou tentar encontrar algum serviço comercial para esse fim, mas isso está fora do escopo do Server Fault e duvido que seja isso que você precisa.

Para baixar um arquivo, você pode usar outro PC e apenas transferi-lo para sua caixa IPv6 por SSH.

1 SayanjyotiDas Aug 15 2020 at 22:02

A solução foi mudar para o Debian 10 (embora isso também deva funcionar para o Ubuntu) e substituir os servidores de nomes /etc/resolv.confpara usar este serviço de transferência NAT64 público :

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

Por favor, note que o resolv.conf é especificamente para EUServ VPS-es. Se você estiver usando algum outro VPS, copie e cole apenas os servidores de nomes

Isso permitiu que o VPS (magicamente) acessasse a Internet IPv4 (sim, mesmo instalando pacotes de sites de fornecedores IPv4).

Este serviço é executado por um único indivíduo, que também tem acesso a todo o seu tráfego IPv4 e a todo o seu tráfego DNS. Se você está transmitindo dados confidenciais ou está criando um site sério, acho que a melhor aposta é obter um VPS compatível com IPv4 a partir de agora. Você também pode usar isso para baixar algum pacote que não conseguiu e, em seguida, reverter para seus servidores de nomes originais.

1 EsaJokinen Aug 18 2020 at 15:36

Usar o Wget direto não é a única solução para obter pacotes de instalação para o seu servidor. Como a rede somente IPv6 funciona perfeitamente bem para o seu caso de uso (um site atrás do Cloudflare), eu não tentaria usar nenhum hack para obter conectividade IPv4 mesmo que temporariamente, mas usaria outras maneiras de transferir os dados :

  1. Use um servidor intermediário com conectividade IPv4 e IPv6 e espelhe o pacote lá.

    user@intermediate:/var/www$ wget https://ipv4only.example.com/packages/install.tar.gz
    
    user@vps:~$ wget https://intermediate.example.net/install.tar.gz
    
  2. Se você já tiver conexão SSH com o servidor, provavelmente também poderá usar SFTP ( SSH File Transfer Protocol ) para carregar o pacote em vez de baixá-lo diretamente.

  3. Configure seu Wget para usar um proxy HTTPS em ~/.wgetrc(ou global /etc/wgetrc):

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

    Você pode usar qualquer proxy que suporte IPv6 e HTTPS e esteja disposto a confiar. No entanto, eu ainda verificaria a integridade do arquivo comparando as somas MD5 ( md5sum install.tar.gz).