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

IPv6 далеко не всегда может использоваться в системе. Более того, он может вызвать некоторые проблемы при обращении к локальной петле (127.0.0.1) — запросы могут пойти на адрес ::1, что может привести к тому, что некоторые приложения будут работать не корректно.

В данной инструкции используются универсальные методы, которые подойдут для различных систем, например, Ubuntu, CentOS, Debian, Red Hat и так далее.

Отключение через ядро Linux
Быстрее всего отключить IPv6 через настройку ядра. Это универсальный способ и он подойдет для многих дистрибутивов на базе Linux.
Глобально (для всех интерфейсов)

Создаем или открываем файл:


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
net.ipv6.conf.lo.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

Перезапускаем сетевые настройки:


systemctl restart network || systemctl restart networking || systemctl restart NetworkManager

* в deb линуксах используется имя для службы networking, в RPM — network; в CentOS 8 перезапускается NetworkManager.

Смотрим — должны остаться только адреса 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

Перезапускаем настройки сети:


systemctl restart network || systemctl restart networking || systemctl restart NetworkManager
Через GRUB

Потенциально, это опасный метод, так как неправильная настройка загрузчика может привести к ошибке запуска системы. Однако, данный метод кому-то может понадобиться.

Открываем конфигурационный файл загрузчика:


vi /etc/default/grub

Допишем строчку:


GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rhgb quiet"

Переконфигурируем grub:


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

Для проверки, перезагрузим систему:


shutdown -r now

Комментарии

Популярные сообщения из этого блога

Права на папки и файлы (unix/chmod)

Автоматическое монтирование дисков и разделов в Linux или что такое fstab? Проблема Debian

Подключение USB флешки к Debian