L’IPv6 est la dernière version du protocole IP, on en parle dans l’article : IPv4 VS IPv6 : Les différences
Mais parfois sur votre Distribution Ubuntu, Debian, Mint, Fedora, CentOS ou autres, il peut arriver que l’IPv6 soit à l’origine de problème de connexion.
Dans ces cas là, on peut chercher à vouloir désactiver l’IPv6.
Le plus simple est de désactiver dans le noyau de Linux.
Dans cet article, nous allons voir comment désactiver l’IPv6 de Linux.
Table des matières
Comment vérifier si l’IPv6 est actif sur Linux
Pour vérifier si l’IPv6 est actif, vous pouvez utiliser la commande ip comme ceci :
ip a
Cela liste alors les interfaces réseaux et si votre carte réseau ou WiFi affiche une liste inet6 alors, l’IPv6 est bien actif.
En effet :
- inet est ipv4 seulement
- inet6 is ipv6 seulement
Cette abréviation on peut la retrouver dans les fichiers de configuration de services et daemon, dans les interfaces à écouter.
Comment désactiver l’IPv6 sur Linux
Dans le noyau Linux
Vous pouvez modifier la configuration du kernel Linux de manière temporaire.
Pour cela :
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
Pour désactiver IPv6 de manière permanent, éditez le fichier /etc/sysctl.conf et ajoutez les lignes :
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Plus de détails sur la commande sysctl :
Désactivez IPv6 dans le module du noyau
Une autre méthode consiste à désactiver le chargement du module IPv6 du noyau.
Cette méthode est moins recommandée car elle peut parfois causer des problèmes.
Pour ce faire :
Éditer le fichier de configuration de GRUB /etc/default/grub et ajoutez la ligne add ipv6.disable=1 :
GRUB_TIMEOUT=5
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
Régénérez un fichier de configuration GRUB et écrasez le fichier existant:
grub2-mkconfig -o /boot/grub2/grub.cfg
Enfin redémarrez le PC afin de prendre en compte les changements :
shutdown -r now
Dans sshd
Le service et daemon sshd possède aussi sa propre configuration où vous spécifiez les interfaces à écouter.
On peut alors forcer l’IPv4 en éditant le fichier de configuration /etc/ssh/sshd_config.
Cherchez la ligne AddressFamily pour le passer de any à inet.
# vi /etc/ssh/sshd_config
....
AddressFamily inet
....
puis redémarrez le service sshd pour prendre en compte la nouvelle configuration :
systemctl restart sshd
Dans postfix
Enfin de même postfix possède un paramètre inet_interfaces qui permet d’indiquer l’interface réseau sur laquelle écouter.
Ainsi, on peut désactiver l’IPv6 pour forcer l’écoute sur l’IPv4.
Pour cela, éditer le fichier /etc/postfix/main.cf, puis modifier inet_interfaces de cette manière :
#inet_interfaces = localhost
inet_interfaces = 127.0.0.1
Enfin relancez postfix :
systemctl restart postfix
Liens
- IPv4 VS IPv6 : Les différences
- Comment désactiver l’IPV6 sur Windows
- Ping IPV4 au lieu d’IPV6 : les solutions
- Qu’est-ce que l’adresse IP ?
- 10 commandes « IP » utiles pour configurer les interfaces réseau sur Linux
- Comment configurer le réseau sur Linux
- Qu’est-ce que le Noyau/Kernel Linux : rôle, versions et comment ça marche