Как отключить IPv6 на постоянной основе?

37

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

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

alias net-pf-10 ipv6

с:

alias net-pf-10 off
alias ipv6 off

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

    
задан Tinfoilhats 17.06.2013 в 23:55
источник

5 ответов

46

Я успешно отключил 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
    
ответ дан Eric Carvalho 18.06.2013 в 00:01
35

Если ваш компьютер не загружает /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
    
ответ дан NullNoname 27.08.2013 в 03:36
5

Вот как проверить, разрешен ли 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 при загрузке.

    
ответ дан mchid 18.07.2014 в 13:18
3

Ответ Carvalho, в том числе комментарий о необходимости запуска 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

    
ответ дан polynomial_donut 09.09.2015 в 23:19
3

Если вы используете современную версию (я нахожусь на 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

    
ответ дан user10550 19.09.2017 в 14:10