Протокол IPv6 – одно из крупнейших достижений в области компьютерных сетей. Он предоставил более широкое адресное пространство для Интернета, а также улучшил маршрутизацию и глобальную адресацию. Тем не менее, внедрение IPv6 все еще находится в зачаточном состоянии, и работа компьютеров с поддержкой IPv6 в сетях с поддержкой только IPv4 может привести к проблемам с подключением. В этой статье мы расскажем вам, как отключить IPv6 на компьютере Linux и использовать его в сети только с IPv4.
Как проверить статус IPv6
Самый быстрый способ проверить статус IPv6 на вашем компьютере – это выполнить команду ip addr
в терминале. Это утилита, которая выведет все доступные сетевые интерфейсы, на которых работает сетевой стек IPv6:
ip -6 addr
Вы также можете проверить двоичный файл ядра вашего компьютера, если в нем запущен модуль ядра для IPv6. Следующая команда выведет путь к файлу «/proc» для модуля IPv6, если ядро активно его загружает:
ls /proc/net/if_inet6
Как отключить IPv6 в Linux
По большей части для окончательного отключения протокола IPv6 в Linux вам потребуется добавить новый аргумент в загрузчик. Для этого откройте файл конфигурации GRUB с помощью вашего любимого текстового редактора:
sudo nano /etc/default/grub
Нажмите Ctrl + W, затем найдите «GRUB_CMDLINE_LINUX_DEFAULT.»
Запишите ipv6.disable=1
в конец значения переменной.
Сохраните (Ctrl + O) и выйдите (Ctrl + X) из текстового редактора.
Перезагрузите файл конфигурации загрузчика:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Перезагрузите систему, затем выполните команду ls /proc/net/if_inet6
, чтобы проверить, успешно ли вы отключили IPv6 на своей машине.
Отключение IPv6 в системах на базе Red Hat
Помимо непосредственной настройки загрузчика компьютера, вы также можете отключить IPv6 на уровне пользовательского интерфейса. Это полезно, если вы хотите отключить IPv6 только на определенных сетевых интерфейсах.
Чтобы отключить IPv6 в дистрибутивах на базе Red Hat, откройте новый сеанс терминала и перечислите все доступные сетевые интерфейсы вашей машины:
ip -6 addr
Найдите сетевой интерфейс, на котором вы хотите отключить стек IPv6. В моем случае я хочу отключить его на интерфейсе Ethernet «enp1s0».
Создайте новый файл конфигурации для стека IPv6 в папке «/etc/sysctl.d.»
sudo nano /etc/sysctl.d/40-ipv6.conf
Вставьте следующие строки кода в новый файл конфигурации:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.YOUR-INTERFACE-NAME.disable_ipv6 = 1
Сохраните новый файл конфигурации, затем выполните следующие команды для перезагрузки новых настроек:
sudo sysctl -p /etc/sysctl.d/ipv6.conf sudo systemctl restart systemd-sysctl.service
Зайдите в файл hosts вашей машины, затем добавьте знак (#) в начало каждой строки, содержащей IPv6-адрес.
Создайте резервную копию исходной initramfs вашей машины, а затем воссоздайте ее без поддержки IPv6:
sudo cp /boot/initramfs-$(uname -r).img /initramfs-backup.img sudo dracut -f
Запустите команду nmcli
и отключите метод IPv6 для вашего интерфейса. Это гарантирует, что ваши настройки сохранятся при перезагрузке системы.
sudo nmcli connection modify YOUR-INTERFACE-NAME ipv6.method "disabled"
И наконец, перезагрузите систему, чтобы применить новые настройки.
Отключение IPv6 в системах на базе Debian
Как и в дистрибутивах на базе Red Hat, вы можете отключить протокол IPv6 в пользовательской части систем на базе Debian Для этого откройте новый терминал и выполните ip -6 addr
, чтобы найти имя интерфейса, на котором вы хотите отключить IPv6:
Для отключения стека IPv6 на определённом интерфейсе выполните следующие команды:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.YOUR-INTERFACE-NAME.disable_ipv6=1
Примените новые настройки, перезагрузив демон sysctl и его службу Systemd:
sudo sysctl -p sudo systemctl restart systemd-sysctl.service
Отключите метод IPv6, чтобы Systemd не перезаписала ваши пользовательские настройки:
sudo nmcli connection modify YOUR-CONNECTION-NAME ipv6.method "disabled"
Примечание: Вы можете найти имя вашего сетевого интерфейса в nmcli, выполнив nmcli connnection show
.
Проверьте, есть ли у вашего сетевого интерфейса IPv6-адрес, выполнив ip addr
.
Как включить IPv6 в Linux
Чтобы снова включить IPv6 в Linux, откройте файл конфигурации загрузчика с помощью вашего любимого текстового редактора:
sudo nano /etc/default/grub
Нажмите Ctrl + W, затем найдите «GRUB_CMDLINE_LINUX_DEFAULT.»
Удалите значение ipv6.disable=1
в конце переменной.
Сохраните файл конфигурации, затем перезагрузите настройки загрузчика:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Перезагрузите систему, затем проверьте, работает ли стек IPv6.
Повторное включение IPv6 в системах на базе Red Hat
В дистрибутивах на базе Red Hat можно повторно включить IPv6, отредактировав файл sysctl config. Для этого откройте новый сеанс терминала, затем удалите файл «40-ipv6.conf» в папке «/etc/sysctl.d/.»
sudo rm /etc/sysctl.d/40-ipv6.conf
Перезагрузите демон sysctl вместе с его службой Systemd:
sudo sysctl -p sudo systemctl restart systemd-sysctl.service
Откройте файл «/etc/hosts», затем удалите знак (#) перед всеми строками, содержащими IPv6-адреса.
Восстановите исходный initramfs машины на раздел «/boot»:
sudo cp /initramfs-backup.img /boot/initramfs-$(uname -r).img sudo dracut -f
Повторно включите метод IPv6 в nmcli, чтобы убедиться, что Systemd загрузит стек IPv6 на ваш сетевой интерфейс:
sudo nmcli connection modify YOUR-INTERFACE-NAME ipv6.method "auto"
Перезагрузите систему, чтобы применить новые настройки, затем выполните ip -6 addr
, чтобы убедиться, что стек IPv6 работает.
Повторное включение IPv6 в системах на базе Debian
Чтобы восстановить стек IPv6 в дистрибутивах на базе Debian, откройте новый терминал и выполните следующие команды:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
Перезагрузите демон sysctl, а также его службу Systemd:
sudo sysctl -p sudo systemctl restart systemd-sysctl.service
Включите стек IPv6 для вашего сетевого интерфейса с помощью nmcli:
sudo nmcli connection modify YOUR-CONNECTION-NAME ipv6.method "auto"
И наконец, убедитесь, что стек IPv6 работает правильно, выполнив ip -6 addr
и проверив, есть ли у вашего интерфейса адрес IPv6.
Комментарии (0)