Thank you for reading this post, don't forget to subscribe!
Есть несколько способов отключения - через grub и через sysctl, быстро посмотреть наличие включенного IPv6 можно командой ip a | grep inet6
:
1 2 3 4 |
ip a | grep inet6 inet6 ::1/128 scope host inet6 fe80::3e84:5f66:4e46:2f85/64 scope link noprefixroute |
Отключение IPv6 как модуля ядра
После манипуляций, потребуется перезагрузка. Необходимо отредактировать grub конфиг:
1 |
nano /etc/default/grub |
Добавив в GRUB_CMDLINE_LINUX параметр ipv6.disable=1:
1 |
GRUB_CMDLINE_LINUX=<span class="hljs-string">"ipv6.disable=1 crashkernel=auto....</span> |
Обновить grub конфиг:
1 |
grub2-mkconfig -o /boot/grub2/grub.cfg |
Перезагрузить машину:
1 |
systemctl reboot |
Снова проверяем:
1 |
ip addr show | grep net6 |
Отключение IPv6 через sysctl
Добавить в конфиг /etc/sysctl.conf
:
1 2 3 4 |
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 |
Применить:
1 |
sysctl -p |
Глобальное отключение через ядро
Быстрый и правильный способ для глобального отключения 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