Отключение IPv6 в CentOS

По умолчанию, IPv6 включено для CentOS, что может вызвать некоторые проблемы при обращении к локальной петле — запросы пойдут не на 127.0.0.1 а на ::1. В некоторых случаях, это критично, так как приложение может быть настроено на прослушку именно с 127.0.0.1.

Также проблема может возникнуть с менеджером пакетов yum, который будет пытаться подключиться к репозиториям по IPv6.

Глобальное отключение через ядро

Быстрый и правильный способ для глобального отключения ipv6.

Открываем следующий файл:

vi /etc/sysctl.conf

И добавляем в него следующее:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

Применяем настройки:

sysctl -p

Перезапускаем сетевую службу:

systemctl restart network

Проверяем:

ip a

Отключение для определенного интерфейса

Если нам не нужно отключать IPv6 на уровне всей системы, а только, например, для ens32, также открываем настройку ядра:

vi /etc/sysctl.conf

И добавим:

net.ipv6.conf.ens32.disable_ipv6 = 1

Применяем настройки:

sysctl -p

systemctl restart network

Через GRUB

На самом деле, для большинства случаев будет достаточно вариантов, описанных выше. Для полной картины, опишем еще один способ.

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

vi /etc/default/grub

Допишем следующую строчку:

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

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

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

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

shutdown -r now

Опции IPV6INIT и IPV6_AUTOCONF

В некоторых инструкциях можно найти вариант отключения интерфейса с помощью такой настройки:

IPV6INIT=no
IPV6_AUTOCONF=no

Однако, ни в CentOS 7, ни в других современных дистрибутивах Linux данные опции не дают ожидаемого результата.

На самом деле, опция работает, но для нее нужно сконфигурировать некоторые модули ядра (modprobe):

vi /etc/modprobe.d/modprobe.conf

options ipv6 disable=1
alias net-pf-10 off
alias ipv6 off
install ipv6 /bin/true

Отключить IPv6 в файле network:

vi /etc/sysconfig/network

NETWORKING_IPV6=no
IPV6INIT=no

Данный метод трудоемкий и неудобный для использования, но решение оставим за администратором.

 

Другие полезные статьи

Настройка сети в CentOS 7

Управение iptables или firewalld

Отключение SELinux

# Сети # Linux # CentOS
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет