Si votre serveur ne répond pas encore en IPv6, l'adresse est probablement attribuée mais pas configurée dans le système. Ce guide montre comment la définir de façon statique sur Ubuntu, Debian et AlmaLinux, tester la connectivité et la protéger avec un pare-feu. Il s'applique à tout VPS Linux Infrawire disposant d'une allocation IPv6.
📋 Prérequis
- Un VPS avec accès root en SSH, sous Ubuntu 24.04, Debian 12 ou AlmaLinux 9 / Rocky 9. Votre espace client vous donne l'IP et le mot de passe root.
- Votre adresse IPv6, la longueur du préfixe et la passerelle, notées ci-dessous
VPS_IPV6,PREFIX(souvent64) etIPV6_GATEWAY. - Le nom de l'interface (
eth0dans ces exemples) :
Baship -br link ip -6 addr show ip -6 route show
Gardez une seconde session SSH ouverte pendant que vous modifiez les fichiers réseau, afin qu'une erreur ne vous enferme pas dehors.
🟠 Ubuntu 24.04 : Netplan
Les fichiers Netplan se trouvent dans /etc/netplan/. Sur les images cloud, le fichier est souvent généré par cloud-init et peut être écrasé au redémarrage : désactivez d'abord sa gestion du réseau.
Bashsudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
YAMLnetwork: {config: disabled}
Modifiez ensuite votre fichier Netplan (par exemple /etc/netplan/50-cloud-init.yaml) et ajoutez l'adresse et la route IPv6. Conservez vos lignes IPv4 existantes :
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
netplan try annule automatiquement après 120 secondes si vous ne confirmez pas, ce qui vous protège d'une mauvaise configuration. Validez avec Entrée, ou utilisez sudo netplan apply quand vous êtes sûr.
🔴 Debian 12 : /etc/network/interfaces
Bashsudo nano /etc/network/interfaces
Ajoutez un bloc pour la même interface :
INIiface eth0 inet6 static address VPS_IPV6/PREFIX gateway IPV6_GATEWAY dns-nameservers 2606:4700:4700::1111
La ligne dns-nameservers ne fonctionne que si le paquet resolvconf est installé ; sinon, placez le résolveur dans /etc/resolv.conf. Appliquez la modification :
Bashsudo systemctl restart networking
Redémarrer le service peut couper la connexion un instant. Si l'interface est en DHCP pour l'IPv4 et que vous voulez seulement ajouter l'IPv6, vous pouvez aussi lancer sudo ifdown eth0 && sudo ifup eth0 depuis la console.
🔵 AlmaLinux 9 / Rocky 9 : nmcli
NetworkManager gère l'interface. Listez d'abord les noms de connexion :
Bashnmcli connection show
Utilisez le nom affiché (CON_NAME, par exemple 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'
La modification est enregistrée dans le profil de connexion et survit aux redémarrages.
✅ Tester la connexion
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
Sur les systèmes anciens, ping6 fait la même chose que ping -6. Vérifiez aussi depuis une autre machine disposant d'IPv6, avec l'adresse de votre VPS :
Bashping -6 -c 3 VPS_IPV6 ssh root@VPS_IPV6
🔥 Pare-feu pour IPv6
Une règle qui n'existe qu'en IPv4 laisse le côté IPv6 ouvert. Avec UFW, vérifiez que la prise en charge d'IPv6 est activée :
Bashgrep IPV6 /etc/default/ufw # doit afficher IPV6=yes sudo ufw allow 22/tcp sudo ufw allow 80,443/tcp sudo ufw enable sudo ufw status verbose
Chaque règle apparaît alors deux fois, dont une avec (v6). Sous AlmaLinux, firewalld couvre les deux familles avec les mêmes commandes :
Bashsudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
🛠️ Dépannage
L'adresse est présente mais le ping vers la passerelle échoue. Vérifiez la longueur du préfixe et la passerelle. Certains réseaux utilisent une passerelle link-local comme fe80::1 ; dans ce cas, utilisez cette valeur et ajoutez dev eth0 à la route si votre outil le demande.
Ça fonctionne jusqu'au prochain redémarrage. Un autre outil réécrit la configuration : cloud-init sur Ubuntu (voir la première section), ou une commande ip -6 addr add isolée qui n'a jamais été reportée dans les fichiers de configuration. Les commandes passées avec ip sont temporaires.
L'IPv6 répond au ping mais pas pour les sites web. Le pare-feu ou le service n'écoute qu'en IPv4. Vérifiez avec ss -tlnp : un serveur web doit afficher [::]:80, pas seulement 0.0.0.0:80. Dans nginx, ajoutez listen [::]:80; au bloc server.
🚀 Votre VPS parle maintenant IPv6 : publiez un enregistrement AAAA et vos services seront joignables sur les deux protocoles.