Способы отключения IPv6 в CentOS
По умолчанию, IPv6 включено для CentOS, что может вызвать некоторые проблемы при обращении к локальной петле — запросы пойдут не на 127.0.0.1 а на ::1. В некоторых случаях, это критично, так как приложение может быть настроено на прослушку именно с 127.0.0.1.
Также проблема может возникнуть с менеджером пакетов yum, который будет пытаться подключиться к репозиториям по IPv6.
Отключение в sysctl
Определенный интерфейс
Через GRUB
IPV6INIT и IPV6_AUTOCONF
В менеджере yum
Читайте также
Глобальное отключение через ядро
Быстрый и правильный способ для глобального отключения 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
Данный метод трудоемкий и неудобный для использования, но решение оставим за администратором.
Отключение в yum
При желании отключить запросы по IPv6 только в менеджере пакетов yum, открываем файл:
vi /etc/yum.conf
И добавляем строку:
ip_resolve=4