Aggiungilo alla riga del tuo kernel nel boot loader per disabilitare del tutto IPv6:
ipv6.disable=1
Se stai usando Grub (se non hai installato il tuo boot-loader, allora stai usando Grub), la tua linea del kernel dovrebbe assomigliare a questa:
linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ipv6.disable=1
L'approccio raccomandato, per aggiungere qualcosa alla riga del kernel, è quello di aggiungere il parametro del kernel desiderato alla GRUB_CMDLINE_LINUX_DEFAULT
variabile nel /etc/default/grub
file:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
Dopo averlo aggiunto a /etc/default/grub
, esegui il comando seguente per rigenerare il tuo grub.cfg
:
sudo grub-mkconfig -o /boot/grub/grub.cfg
In alternativa, l'aggiunta ipv6.disable_ipv6=1
invece manterrà lo stack IPv6 funzionale ma non assegnerà gli indirizzi IPv6 a nessuno dei dispositivi di rete.
O
Per disabilitare IPv6 tramite sysctl, inserire quanto segue nel /etc/sysctl.conf
file:
net.ipv6.conf.all.disable_ipv6 = 1
Non dimenticare di commentare qualsiasi host IPv6 nel tuo /etc/hosts
file:
#::1 localhost.localdomain localhost
NOTA
un riavvio può essere richiesto per il metodo sysctl e un riavvio è sicuramente necessario per l'approccio della linea del kernel.
O
Per disabilitare temporaneamente ipv6:
sysctl -w net.ipv6.conf.all.disable_ipv6 = 1
Per abilitarlo temporaneamente :
sysctl -w net.ipv6.conf.all.disable_ipv6 = 0
Quindi se hai bisogno di disabilitare ipv6 su una data condizione , allora scrivi uno script bash da qualche parte lungo queste linee:
#!/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
NOTA
Potrebbe essere necessario disabilitare qualsiasi host ipv6 nel /etc/hosts
file anche per questo metodo, proprio come ho consigliato nel metodo precedente.