Отключить IPv6 в Linux — Ubuntu, Debian, CentOS

Для отключения IPv6 в Linux необходимо изменить параметры ядра.

IPv6 может быть временно отключен с помощью команды sysctl или может быть отключен перманентно через настройки sysctl, либо необходимые параметры ядра могут быть применены во время загрузки системы с помощью настроек в GRUB.

В этой заметке я показываю, как временно или перманентно отключить IPv6 в Ubuntu, Debian, CentOS и аналогичных Linux-системах.

Узнать включен ли IPv6:

$ ip a | grep inet6

Если поддержка IPv6 включена, вы должны увидеть IPv6 адреса, в противном случае она отключена и вы не должны видеть никаких IPv6-записей.

Отключить IPv6 в Linux

Для временного (при перезагрузке настройки не будут сохранены) отключения IPv6 на работающей машине, выполните следующие команды:

$ sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
$ sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
$ sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1

Чтобы снова включить поддержку IPv6, выполните:

$ sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
$ sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
$ sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0

Отключить IPv6 с помощью Sysctl

Чтобы перманентно отключить IPv6, откройте файл /etc/sysctl.d/99-sysctl.conf и добавьте такие строки:

# Disable IPv6
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1

Выполните следующую команду, чтобы применить новые настройки:

$ sudo sysctl -p

Отключить IPv6 с помощью GRUB

Откройте файл /etc/default/grub, найдите GRUB_CMDLINE_LINUX и добавьте параметр ipv6.disable=1:

GRUB_CMDLINE_LINUX="ipv6.disable=1"

Выполните одну из следующих команд для генерации нового конфига GRUB.

Ubuntu, Debian:

$ sudo update-grub

CentOS:

$ grub2-mkconfig -o /boot/grub2/grub.cfg

Теперь при загрузке системы IPv6 будет отключен.