Agregue esto a su línea de kernel en su gestor de arranque para deshabilitar por completo IPv6:
ipv6.disable=1
Si está utilizando Grub (si no ha instalado su propio gestor de arranque, entonces está utilizando Grub), la línea de su núcleo debería verse así:
linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ipv6.disable=1
El enfoque recomendado, para agregar algo a la línea del núcleo, es agregar el parámetro del núcleo deseado a la GRUB_CMDLINE_LINUX_DEFAULT
variable en el /etc/default/grub
archivo:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
Una vez que haya agregado eso /etc/default/grub
, ejecute el siguiente comando para regenerar su grub.cfg
:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Alternativamente, agregar en su ipv6.disable_ipv6=1
lugar mantendrá la pila IPv6 funcional pero no asignará direcciones IPv6 a ninguno de sus dispositivos de red.
O
Para deshabilitar IPv6 a través de sysctl, coloque lo siguiente en su /etc/sysctl.conf
archivo:
net.ipv6.conf.all.disable_ipv6 = 1
No olvide comentar los hosts IPv6 en su /etc/hosts
archivo:
#::1 localhost.localdomain localhost
NOTA
puede ser necesario reiniciar para el método sysctl, y definitivamente es necesario reiniciar para el enfoque de línea del núcleo.
O
Para deshabilitar temporalmente ipv6:
sysctl -w net.ipv6.conf.all.disable_ipv6 = 1
Para habilitarlo temporalmente :
sysctl -w net.ipv6.conf.all.disable_ipv6 = 0
Entonces, si necesita deshabilitar ipv6 en una condición dada , escriba un script bash en alguna parte a lo largo de estas líneas:
#!/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
Es posible que también necesite deshabilitar cualquier host ipv6 en su /etc/hosts
archivo para este método, tal como lo recomendé en el método anterior.