Как отключить IP версии 6 в Linux


IPv6 далеко не всегда может использоваться в системе. Более того, он может вызвать некоторые проблемы при обращении к локальной петле (127.0.0.1) — запросы могут пойти на адрес ::1, что может привести к тому, что некоторые приложения будут работать не корректно.
В данной инструкции используются универсальные методы, которые подойдут для различных систем, например, Ubuntu, CentOS, Debian, Red Hat и так далее.
Отключение через ядро Linux
Быстрее всего отключить IPv6 через настройку ядра. Это универсальный способ и он подойдет для многих дистрибутивов на базе Linux.
Однако, данный способ для систем на базе Debian будет иметь временный эффект (до перезагрузки). Чтобы отключить IPv6 в них на постоянной основе, используйте метод с настройкой GRUB.
Глобально (для всех интерфейсов)
Создаем или открываем файл:
vi /etc/sysctl.d/99-sysctl.conf
... или
vi /etc/sysctl.d/10-ipv6-privacy.conf
* 99-sysctl.conf является основным конфигурационным файлом, а 10-ipv6-privacy.conf в каталоге sysctl.d — дополнительным. Для удобства лучше использовать последний.
Добавляем следующие строки:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Применяем настройки.
Если вносили изменения в файл /etc/sysctl.d/99-sysctl.conf:
sysctl -p
Если вносили изменения в файл /etc/sysctl.d/10-ipv6-privacy.conf:
sysctl -p /etc/sysctl.d/10-ipv6-privacy.conf
Проверяем — должны остаться только адреса IPv4:
ip a
Для определенного интерфейса
Если нужно отключить IPv6 только для одного интерфейса, например, для eth0, также открываем настройку ядра.
Основной файл:
vi /etc/sysctl.conf
... или дополнительный:
vi /etc/sysctl.d/10-ipv6-privacy.conf
И добавим:
net.ipv6.conf.eth0.disable_ipv6 = 1
* где eth0 наш интерфейс, для которого мы хотим отключить IPv6.
Применяем настройки:
sysctl -p
или
sysctl -p /etc/sysctl.d/10-ipv6-privacy.conf
Через GRUB (Deb)
Потенциально, это опасный метод, так как неправильная настройка загрузчика может привести к ошибке запуска системы. Однако, его необходимо использовать для перманентного отключения IPv6 в системах на базе Debian (Debian / Ubuntu / Astra Linux).
Открываем конфигурационный файл загрузчика:
vi /etc/default/grub
Находим строки:
GRUB_CMDLINE_LINUX_DEFAULT="..."
GRUB_CMDLINE_LINUX="..."
* они могут быть с пустыми значениями или с заполненными опциями, перечисленными через пробел.
Допишем строчки:
GRUB_CMDLINE_LINUX_DEFAULT="... ipv6.disable=1"
GRUB_CMDLINE_LINUX="... ipv6.disable=1"
Переконфигурируем grub:
grub-mkconfig -o /boot/grub/grub.cfg
Для проверки, перезагрузим систему:
shutdown -r now