Как отключить IPv6 в Linux
4 января 2025 г.IPv6 предлагает гораздо более масштабную схему адресации, чем IPv4, что является одной из многих причин, по которым он был разработан. Однако я видел редкие случаи, когда IPv6 вызывал сетевые проблемы.
Поскольку некоторое оборудование не использует преимущества IPv6 (а некоторые администраторы могут работать с IPv4), временное и простое решение — отключить IPv6. Протокол можно будет включить снова, когда проблема будет окончательно решена.
Если у вас есть оборудование, которое идеально реализует IPv6, и программное обеспечение, которое использует его правильно, это не проблема. Но если у вас возникли проблемы с сетью с серверами или настольными компьютерами Linux, и вы исчерпали все возможные области, вы можете попробовать отключить v6 сетевого протокола.
У меня было несколько случаев, когда связь между настольным компьютером Linux и старым маршрутизатором постоянно обрывалась, и отключение IPv6 было единственным решением, которое сработало. Через некоторое время я снова включал IPv6, чтобы посмотреть, решило ли обновление прошивки маршрутизатора (и обновление ОС настольного компьютера) проблему. В некоторых случаях это решало проблему, и IPv6 мог оставаться включенным, хотя в других случаях IPv6 приходилось снова отключать.
Я покажу вам, как отключить IPv6 на машине Linux. (Примечание: я рекомендую отключать IPv6 только тогда, когда вы исчерпали все другие варианты. Кроме того, вы должны рассматривать это как временное решение.)
СМ.: Основные команды, которые необходимо знать администраторам Linux (TechRepublic Premium)
Командная строка
Вы угадали: мы будем работать с командной строкой. Я покажу вам, как отключить IPv6 в дистрибутивах на базе Red Hat и Debian.
Вот как отключить протокол в системе на базе Red Hat:
- Откройте окно терминала.
Измените пользователя на root.
Введите команду sysctl -w net.ipv6.conf.all.disable_ipv6=1
Введите команду sysctl -w net.ipv6.conf.default.disable_ipv6=1
Чтобы повторно включить IPv6, выполните следующие команды:
sysctl -w net.ipv6.conf.all.disable_ipv6=0
sysctl -w net.ipv6.conf.default.disable_ipv6=0
Вот как отключить протокол на машине под управлением Debian.
- Откройте окно терминала.
Введите команду sudo nano /etc/sysctl.conf
Добавьте следующее в конец файла:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
- Сохраните и закройте файл.
Перезагрузите машину.
Чтобы повторно включить IPv6, удалите указанные выше строки из /etc/sysctl.conf и перезагрузите компьютер.
СМ.: Как просмотреть ключи SSH в Linux, macOS и Windows (TechRepublic)
Предостережения
Если вы используете X Forwarding через ssh, отключение IPv6 может сломать эту систему. Чтобы исправить эту проблему, вы должны открыть файл /etc/ssh/sshd_config и изменить #AddressFamily any на AddressFamily inet. Сохраните этот файл и перезапустите sshd.
Если вы используете Postfix, вы можете столкнуться с проблемами при запуске службы. Чтобы исправить это, вам придется использовать IPv4 loopback. Откройте файл /etc/postfix/main.cf, закомментируйте строку localhost и добавьте IPv4 loopback следующим образом:
#inet_interfaces = локальный_хост
inet_interfaces = 127.0.0.1
СМ.: Как установить временные переменные среды в Linux (TechRepublic)
Несовершенное решение
Это не идеальное решение, но иногда нужно быть креативным в устранении неполадок. Если вы сталкиваетесь со странными сетевыми ошибками на серверах и настольных компьютерах Linux, попробуйте отключить IPv6, чтобы облегчить устранение неполадок или обеспечить временное исправление.
Первоначально статья была опубликована в июне 2016 года. Она была обновлена Энтони Пейтоном в январе 2025 года.
Оригинал