Как отключить IPv6 в Linux

Протокол 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.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.maketecheasier.com

Похожие статьи

Комментарии (0)