Ajoutez ceci à votre ligne de noyau dans votre chargeur de démarrage pour désactiver complètement IPv6:
ipv6.disable=1
Si vous utilisez Grub (si vous n'avez pas installé votre propre chargeur de démarrage, alors vous utilisez Grub), votre ligne de noyau devrait ressembler à ceci:
linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ipv6.disable=1
L'approche recommandée, pour ajouter quelque chose à la ligne du noyau, consiste à ajouter le paramètre de noyau souhaité à la GRUB_CMDLINE_LINUX_DEFAULT
variable dans le /etc/default/grub
fichier:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
Une fois que vous l'avez ajouté à /etc/default/grub
, exécutez la commande suivante pour régénérer votre grub.cfg
:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Alternativement, l'ajout à la ipv6.disable_ipv6=1
place gardera la pile IPv6 fonctionnelle mais n'attribuera aucune adresse IPv6 à aucun de vos périphériques réseau.
OU
Pour désactiver IPv6 via sysctl, placez ce qui suit dans votre /etc/sysctl.conf
fichier:
net.ipv6.conf.all.disable_ipv6 = 1
N'oubliez pas de commenter les hôtes IPv6 de votre /etc/hosts
fichier:
#::1 localhost.localdomain localhost
REMARQUE
un redémarrage peut être requis pour la méthode sysctl, et un redémarrage est définitivement requis pour l'approche de la ligne du noyau.
OU
Pour désactiver temporairement ipv6:
sysctl -w net.ipv6.conf.all.disable_ipv6 = 1
Pour l' activer temporairement :
sysctl -w net.ipv6.conf.all.disable_ipv6 = 0
Donc, si vous devez désactiver ipv6 dans une condition donnée , écrivez un script bash quelque part le long de ces lignes:
#!/bin/bash
ipv6_disabled="$(sysctl net.ipv6.conf.all.disable_ipv6 | awk '{print $NF}')"
if (connected_to_vpn &> /dev/null); then
(($ipv6_disabled)) || sysctl -w net.ipv6.conf.all.disable_ipv6=1
else
(($ipv6_disabled)) && sysctl -w net.ipv6.conf.all.disable_ipv6=0
fi
REMARQUE
Vous devrez peut-être également désactiver tous les hôtes ipv6 dans votre /etc/hosts
fichier pour cette méthode, comme je l'ai recommandé dans la méthode précédente.