Отключение IPv6 в дистрибутивах Linux

IPv6 предлагает гораздо более широкую схему адресации, чем IPv4, что является одной из многих причин, по которым оно было разработано. Однако я видел редкие случаи, когда IPv6 вызывал проблемы с сетью.

Поскольку некоторые аппаратные средства не используют IPv6 (и большинство админов все еще работают с IPv4), временным и простым решением является отключить IPv6; протокол может быть повторно включен, когда придет время, когда проблема была окончательно решена.

Если у вас есть аппаратное обеспечение, которое отлично реализует IPv6 и программное обеспечение, которое его использует правильно, это не проблема. Но если у вас проблемы с сетью на серверах Linux или настольных компьютерах, и вы исчерпали все возможные области, вы можете попробовать отключить v6 сетевого протокола.

У меня было несколько случаев, когда связь между рабочим столом Linux и маршрутизатором ATT UVERSE постоянно снижалась, а отключение IPv6 было единственным решением, которое сработало. Через некоторое время я снова включил IPv6, чтобы проверить, разрешило ли обновление прошивки маршрутизатора (и обновление ОС настольного компьютера); в некоторых случаях он решил проблему, и IPv6 мог оставаться включенным, хотя в других случаях IPv6 пришлось бы отключить снова.

Я покажу вам, как отключить IPv6 на машине Linux. ( Примечание. Я рекомендую отключить IPv6 только тогда, когда вы исчерпали все остальные параметры. Также вы должны рассмотреть это временное исправление.)

Командная строка

Вы догадались, мы будем работать с командной строкой. Я покажу вам, как отключить IPv6 в дистрибутивах Red Hat и Debian.

Вот как отключить протокол в системе на основе Red Hat:

  1. Откройте окно терминала.
  2. Перейдите к пользователю root.
  3. Выполните команду sysctl -w net.ipv6.conf.all.disable_ipv6 = 1
  4. Выполните команду 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.

  1. Откройте окно терминала.
  2. Выполните команду sudo nano /etc/sysctl.conf
  3. Добавьте в нижнюю часть файла следующее:
    net.ipv6.conf.all.disable_ipv6 = 1
    
    net.ipv6.conf.default.disable_ipv6 = 1
    
    net.ipv6.conf.lo.disable_ipv6 = 1
  4. Сохраните и закройте файл.
  5. Перезагрузите компьютер.

Чтобы снова включить IPv6, удалите указанные выше строки из /etc/sysctl.conf и перезагрузите компьютер.

Предостережения

Если вы используете X Forwarding через ssh, отключение IPv6 может привести к поломке этой системы. Чтобы исправить эту проблему, вы должны открыть файл /etc/ssh/sshd_config и изменить #AddressFamily на любой адрес AddressFamily inet. Сохраните этот файл и перезапустите sshd.

Если вы используете Postfix, вы можете столкнуться с проблемами при запуске службы. Чтобы исправить это, вам придется использовать IPv4. Откройте файл /etc/postfix/main.cf, закомментируйте строку localhost и добавьте петлю IPv4 следующим образом:

#inet_interfaces = localhost

inet_interfaces = 127.0.0.1

Это не идеальное решение, но иногда вам приходится проявлять творческий подход к устранению неполадок. Если вы столкнулись с нечетными сетевыми ошибками с серверами Linux и рабочими столами, попробуйте отключить IPv6, чтобы помочь вам в устранении неполадок или предоставить временное исправление.

Как отключить IPv6 через GRUB

Недавно я попал в ситуацию, когда все мои виртуальные машины не смогли добраться до WAN. После некоторого устранения неполадок я обнаружил, что по какой-то причине обновление маршрутизатора в моей сети вызывает отказ. Проблема возникла из-за неправильно настроенной проблемы с IPv6 в прошивке сетевого оборудования. Но что мне делать? Подождите, пока провайдер отправит обновление, чтобы исправить проблему? Нет. Вместо этого я отключил IPv6 на своих виртуальных машинах. В противном случае они будут нефункциональными до тех пор, пока провайдер не вытолкнет обновление, которое, зная провайдера, может занять слишком много времени. Однако у меня были разные дистрибутивы Linux как виртуальные машины, а это означало, что я должен был заботиться о каждой виртуальной машине, используя другой метод.

Я нашел более надежный метод, который работает во всех дистрибутивах Linux, которые используют загрузчик GRUB. Этот метод требует доступа sudo, редактирования файла и запуска команды, но стоит изучить, если вы окажетесь в подобной ситуации, и вы запускаете множество дистрибутивов Linux.

Этот файл является /etc/default/grub. Откройте этот файл в своем любимом текстовом редакторе (например, с помощью команды sudo nano /etc/default/grub). Внутри этого файла вы увидите две строки:

GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

Вы можете обнаружить, что первая строка выглядит так:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Запись «quiet splash» приводит к отключению всех видов информации при отображении на экране при загрузке.

Измените приведенные выше строки, чтобы отобразить следующее:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
GRUB_CMDLINE_LINUX="ipv6.disable=1"

Или:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"
GRUB_CMDLINE_LINUX="ipv6.disable=1"

Сохраните и закройте этот файл.

Обновление GRUB

Теперь мы должны обновить загрузчик GRUB, иначе система не заметит изменений. Вернитесь в окно терминала и выполните следующую команду:

sudo update-grub

После завершения этой команды перезагрузите компьютер (или виртуальную машину), а IPv6 будет отключен во время процесса загрузки. Если у вас возникли проблемы с сетью, из-за плохо настроенного IPv6 на маршрутизаторе ваша машина Linux больше не будет иметь проблем с получением глобальной сети.

К сожалению, некоторые провайдеры не выяснили, как настроить IPv6, чтобы он не вызывал проблем с определенными операционными системами. Если вы попадаете в эту категорию, вы можете обнаружить, что единственным решением является отключение IPv6, пока указанный поставщик не подталкивает обновление, которое устраняет проблему, которую они создали. Когда IPv6 работает, вы можете просто отменить этот процесс (удалите ipv6.disable = 1 записей), перезапустить sudo update-grub и перезагрузить.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.