Se o seu servidor ainda não responde em IPv6, é provável que o endereço esteja atribuído mas não configurado no sistema. Este guia mostra como o definir de forma estática no Ubuntu, Debian e AlmaLinux, testar a conectividade e protegê-lo com uma firewall. Aplica-se a qualquer VPS Linux Infrawire com alocação IPv6.
📋 Pré-requisitos
- Um VPS com acesso SSH root, com Ubuntu 24.04, Debian 12 ou AlmaLinux 9 / Rocky 9. A sua área de cliente fornece o IP e a palavra-passe root.
- O seu endereço IPv6, o comprimento do prefixo e o gateway, indicados abaixo como
VPS_IPV6,PREFIX(muitas vezes64) eIPV6_GATEWAY. - O nome da interface (
eth0nestes exemplos):
Baship -br link ip -6 addr show ip -6 route show
Mantenha uma segunda sessão SSH aberta enquanto edita os ficheiros de rede, para que um erro não o deixe sem acesso.
🟠 Ubuntu 24.04: Netplan
Os ficheiros do Netplan ficam em /etc/netplan/. Nas imagens cloud, o ficheiro é muitas vezes gerado pelo cloud-init e pode ser reescrito no reinício, por isso desative primeiro a gestão de rede dele:
Bashsudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
YAMLnetwork: {config: disabled}
Depois edite o seu ficheiro Netplan (por exemplo /etc/netplan/50-cloud-init.yaml) e adicione o endereço IPv6 e a rota. Mantenha as linhas IPv4 existentes:
YAML1network: 2 version: 2 3 ethernets: 4 eth0: 5 addresses: 6 - VPS_IP/IPV4_PREFIX 7 - VPS_IPV6/PREFIX 8 routes: 9 - to: default 10 via: IPV4_GATEWAY 11 - to: default 12 via: IPV6_GATEWAY 13 nameservers: 14 addresses: [1.1.1.1, 2606:4700:4700::1111]
Bashsudo chmod 600 /etc/netplan/*.yaml sudo netplan try
O netplan try reverte automaticamente ao fim de 120 segundos se não confirmar, o que o protege de uma configuração errada. Valide com Enter ou use sudo netplan apply quando tiver a certeza.
🔴 Debian 12: /etc/network/interfaces
Bashsudo nano /etc/network/interfaces
Adicione um bloco para a mesma interface:
INIiface eth0 inet6 static address VPS_IPV6/PREFIX gateway IPV6_GATEWAY dns-nameservers 2606:4700:4700::1111
A linha dns-nameservers só funciona se o pacote resolvconf estiver instalado; caso contrário, coloque o resolvedor em /etc/resolv.conf. Aplique a alteração:
Bashsudo systemctl restart networking
Reiniciar o serviço pode interromper a ligação por instantes. Se a interface usa DHCP para IPv4 e só quer acrescentar IPv6, também pode executar sudo ifdown eth0 && sudo ifup eth0 a partir da consola.
🔵 AlmaLinux 9 / Rocky 9: nmcli
O NetworkManager gere a interface. Liste primeiro os nomes das ligações:
Bashnmcli connection show
Use o nome que vir (CON_NAME, por exemplo System eth0 ou cloud-init eth0):
Bashsudo nmcli connection modify 'CON_NAME' ipv6.method manual \ ipv6.addresses VPS_IPV6/PREFIX \ ipv6.gateway IPV6_GATEWAY \ ipv6.dns 2606:4700:4700::1111 sudo nmcli connection up 'CON_NAME'
A alteração fica guardada no perfil da ligação e sobrevive aos reinícios.
✅ Testar a ligação
Baship -6 addr show dev eth0 ip -6 route show default ping -6 -c 3 IPV6_GATEWAY ping -6 -c 3 2606:4700:4700::1111 curl -6 -I https://www.debian.org
Em sistemas mais antigos, ping6 faz o mesmo que ping -6. Verifique também a partir de outra máquina com IPv6, usando o endereço do seu VPS:
Bashping -6 -c 3 VPS_IPV6 ssh root@VPS_IPV6
🔥 Firewall para IPv6
Uma regra que existe apenas para IPv4 deixa o lado IPv6 aberto. Com o UFW, confirme que o suporte a IPv6 está ativo:
Bashgrep IPV6 /etc/default/ufw # deve mostrar IPV6=yes sudo ufw allow 22/tcp sudo ufw allow 80,443/tcp sudo ufw enable sudo ufw status verbose
Cada regra aparece então duas vezes, uma delas com (v6). No AlmaLinux, o firewalld cobre as duas famílias com os mesmos comandos:
Bashsudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
🛠️ Resolução de problemas
O endereço existe mas o ping ao gateway falha. Verifique o comprimento do prefixo e o gateway. Algumas redes usam um gateway link-local como fe80::1; nesse caso defina o gateway com esse valor e adicione dev eth0 à rota, se a sua ferramenta o pedir.
Funciona até ao próximo reinício. Outra ferramenta reescreve a configuração: o cloud-init no Ubuntu (veja a primeira secção) ou um comando ip -6 addr add que nunca chegou aos ficheiros de configuração. Os comandos executados com ip são temporários.
O IPv6 responde ao ping mas os sites não funcionam. A firewall ou o serviço escuta apenas em IPv4. Verifique com ss -tlnp: um servidor web deve mostrar [::]:80, e não apenas 0.0.0.0:80. No nginx, adicione listen [::]:80; ao bloco server.
🚀 O seu VPS já fala IPv6: publique um registo AAAA e os seus serviços ficam acessíveis nos dois protocolos.