Отключить IPv6 на Ubuntu 17.10 (Netplan) [dубликат]

Как отключить систему IPv6 через терминальные команды?

Я прочитал редактирование /etc/modprobe.d/aliases и заменил:

alias net-pf-10 ipv6

с: [ ! d3] alias net-pf-10 off alias ipv6 off

Безопасно ли это применять и постоянно ли отключает ipv6 при перезагрузках?

43
задан 25 June 2013 в 00:20

10 ответов

Я успешно отключил IPv6, поставив следующие строки в /etc/sysctl.conf:

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
54
ответ дан 18 July 2018 в 00:38

Вот как проверить, разрешен ли ipv6 на вашем компьютере

test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"

Если вы видите

Running kernel is IPv6 ready

, он включен.

Если вы не видите выхода, это не так.

Чтобы отключить ipv6, если другие ответы на этой странице не работают для вас, черный список ipv6 все вместе. Для этого используйте следующую команду:

echo 'blacklist ipv6' | sudo tee -a '/etc/modprobe.d/blacklist.local' >/dev/null

Также это может помочь:

echo 'install ipv6 /bin/true' | sudo tee -a '/etc/modprobe.d/blacklist.local' >/dev/null

Перезагрузите, чтобы изменения вступили в силу. Чтобы проверить, разрешено ли это после запуска, выполните эту команду еще раз:

test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"

Не должно быть выхода.

Нажмите здесь, чтобы узнать, как отключить IPV6 при загрузке.

4
ответ дан 18 July 2018 в 00:38

Если ваш компьютер не загружает /etc/sysctl.conf во время загрузки (что для меня подходит), необходимо отключить IPv6 от grub. Ядро Linux имеет параметр загрузки «ipv6.disable = 1», который отключает запуск IPv6.

Чтобы изменить параметры загрузки, отредактируйте «/ etc / default / grub» любым текстовым редактором как пользователь root:

sudo nano /etc/default/grub

Найдите строку, содержащую «GRUB_CMDLINE_LINUX_DEFAULT»:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Добавьте параметр «ipv6.disable = 1» к опции загрузки, а затем сохраните файл grub:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"

Наконец, обновите grub:

sudo update-grub
41
ответ дан 18 July 2018 в 00:38

Ответ Карвальо, включая комментарий о том, что нужно запустить sudo sysctl -P, мне очень помог.

Однако в моем случае по крайней мере:

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.<mydevice>.disable_ipv6 = 1

, и кажется, что Вторая линия была необходима.

Возможно, это связано с тем, что я использую TP-Link Archer T2U, для чего мне пришлось настраивать драйвер из источника. Мое предположение заключается в том, что в результате <mydevice> не считается одним из «all». Итак, вкратце, если вы добавили пользовательский сетевой драйвер, net.ipv6.conf.all.disable_ipv6 = 1 может оказаться недостаточным для отключения сети IPv6.

Признайтесь, что я не пробовал линию net.ipv6.conf.default.disable_ipv6 = 1

4
ответ дан 18 July 2018 в 00:38

Если вы используете современную версию (я на 16.04 LTS) Ubuntu, вы можете использовать это опрятное решение:

Создать /etc/sysctl.d/60-ipv6-disable.conf, содержащий следующий текст:

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1

Выполнить service procps start

2
ответ дан 18 July 2018 в 00:38

Я успешно отключил IPv6, поставив следующие строки в /etc/sysctl.conf:

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
54
ответ дан 24 July 2018 в 17:15
  • 1
    Ubuntu на VMware не может быть ping, и я закрываю ipv6 на Ubuntu, теперь все в порядке. – Honghe.Wu 16 October 2013 в 13:10
  • 2
    После добавления строк в файл sysctl.conf запустите sudo sysctl -p или перезагрузите, чтобы изменения вступили в силу. – Rajat Gupta 14 March 2014 в 00:14
  • 3
    Мне нужно сделать это только по беспроводной связи, так как я могу подключиться снова. Вот как это сделать только для одного адаптера: net.ipv6.conf.wlan0.disable_ipv6 = 1 – cmc 21 November 2014 в 15:20
  • 4
    Это не сработало для меня на UbuntuMate 16.10. Я должен был конкретно специфицировать интерфейс Wifi, аналогично тому, как предлагает @cmc. – Scone 26 January 2017 в 05:45
  • 5
    Это не работает на Ubuntu 17.10. См. Комментарий NullNoname ниже для исправления grub. – Luke 1 January 2018 в 08:54

Вот как проверить, разрешен ли ipv6 на вашем компьютере

test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"

Если вы видите

Running kernel is IPv6 ready

, он включен.

Если вы не видите выхода, это не так.

Чтобы отключить ipv6, если другие ответы на этой странице не работают для вас, черный список ipv6 все вместе. Для этого используйте следующую команду:

echo 'blacklist ipv6' | sudo tee -a '/etc/modprobe.d/blacklist.local' >/dev/null

Также это может помочь:

echo 'install ipv6 /bin/true' | sudo tee -a '/etc/modprobe.d/blacklist.local' >/dev/null

Перезагрузите, чтобы изменения вступили в силу. Чтобы проверить, разрешено ли это после запуска, выполните эту команду еще раз:

test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"

Не должно быть выхода.

Нажмите здесь, чтобы узнать, как отключить IPV6 при загрузке.

4
ответ дан 24 July 2018 в 17:15
  • 1
    Этот ответ предполагает, что функция kernels ipv6 является модулем ядра (с помощью blacklist.local для предотвращения его загрузки). Существует случай, когда ipv6 скомпилирован в ядро ​​(а не модуль), и в этом случае необходимо загрузить ядро ​​с загрузочным пареметром ipv6.disable=1 (для этого можно было бы: (1) sudo gedit /etc/default/grub (2) искать строка GRUB_CMDLINE_LINUX_DEFAULT=<args> и (3) добавить ipv6.disable=1 к параметрам загрузки) – humanityANDpeace 19 May 2017 в 13:32
  • 2
    @humanityANDpeace Вам может быть интересен этот более полный ответ: unix.stackexchange.com/a/190189 – mchid 21 May 2017 в 23:29

Если ваш компьютер не загружает /etc/sysctl.conf во время загрузки (что для меня подходит), необходимо отключить IPv6 от grub. Ядро Linux имеет параметр загрузки «ipv6.disable = 1», который отключает запуск IPv6.

Чтобы изменить параметры загрузки, отредактируйте «/ etc / default / grub» любым текстовым редактором как пользователь root:

sudo nano /etc/default/grub

Найдите строку, содержащую «GRUB_CMDLINE_LINUX_DEFAULT»:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Добавьте параметр «ipv6.disable = 1» к опции загрузки, а затем сохраните файл grub:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"

Наконец, обновите grub:

sudo update-grub
41
ответ дан 24 July 2018 в 17:15
  • 1
    +1 это работает и полностью отключает IPv6, поэтому нет следов /proc/sys/net/ipv6/ слева, что может вызвать проблемы, такие как X11 forwarding request failed, потому что sshd пытается связать с неконфигурированным интерфейсом IPv6. Обратите внимание, что аналогичным образом вы можете избавиться от IPv4 таким образом на чистых виртуальных машинах IPv6. Благодарю. – Tino 29 May 2014 в 12:48

Ответ Карвальо, включая комментарий о том, что нужно запустить sudo sysctl -P, мне очень помог.

Однако в моем случае по крайней мере:

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.<mydevice>.disable_ipv6 = 1

, и кажется, что Вторая линия была необходима.

Возможно, это связано с тем, что я использую TP-Link Archer T2U, для чего мне пришлось настраивать драйвер из источника. Мое предположение заключается в том, что в результате <mydevice> не считается одним из «all». Итак, вкратце, если вы добавили пользовательский сетевой драйвер, net.ipv6.conf.all.disable_ipv6 = 1 может оказаться недостаточным для отключения сети IPv6.

Признайтесь, что я не пробовал линию net.ipv6.conf.default.disable_ipv6 = 1

4
ответ дан 24 July 2018 в 17:15
  • 1
    Следует отметить, что иногда требуется отключить различные устройства. – Scone 26 January 2017 в 05:47
  • 2
    Отсутствие линии default, вероятно, является проблемой здесь. Если ваш драйвер еще не был загружен в момент загрузки, когда был запущен sysctl, он не был включен в all, но установка значения по умолчанию означала, что он получил бы настройку позже, когда загружен . – Charles Duffy 16 March 2017 в 00:11
  • 3
    У меня была запись default, и мне пришлось настроить конкретное устройство, чтобы успешно отключить его. – Alfonso Nishikawa 14 May 2018 в 21:55

Если вы используете современную версию (я на 16.04 LTS) Ubuntu, вы можете использовать это опрятное решение:

Создать /etc/sysctl.d/60-ipv6-disable.conf, содержащий следующий текст:

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1

Выполнить service procps start

2
ответ дан 24 July 2018 в 17:15
  • 1
    это самый чистый способ сделать это - не понимаю, почему было занижено. он работает на fedora / centos / redhat, тоже. он имеет то преимущество, что он не изменяет файлы по умолчанию по умолчанию (например, напрямую sysctl.conf, как предлагается в большинстве популярных ответов) – Costin Gușă 9 November 2017 в 13:23

Другие вопросы по тегам:

Похожие вопросы: