如何永久禁用IPv6?
如何通过终端命令禁用IPv6系统?
我读过编辑/etc/modprobe.d/aliases并替换:
alias net-pf-10 ipv6
有:
alias net-pf-10 off alias ipv6 off
这是否可以安全应用并在重新启动后永久禁用ipv6?
在/etc/sysctl.conf
以下行后,我成功禁用了IPv6:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
还运行此命令以加载更改
sudo sysctl -p
如果您的PC在启动时没有加载/etc/sysctl.conf(对我来说就是这种情况),则需要从grub中禁用IPv6。 Linux内核有一个名为“ipv6.disable = 1”的引导选项,它禁用启动时的IPv6。
要编辑引导选项,请使用任何文本编辑器以root用户身份编辑“/ etc / default / grub”:
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
Carvalho的答案包括关于必须运行sudo sysctl -P
的评论对我帮助最大。
但是,至少在我的情况下:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf..disable_ipv6 = 1
似乎第二行是必要的。
也许这与我使用TP-Link Archer T2U的事实有关,为此我必须从源代码定制构建驱动程序。
我的假设是,因此,
不算作“ all
”之一。
因此,简而言之,如果您已定制添加(自定义)网络驱动程序, net.ipv6.conf.all.disable_ipv6 = 1
可能不足以禁用IPv6网络。
但不得不承认,我没有试过这条线
net.ipv6.conf.default.disable_ipv6 = 1
以下是检查计算机上是否启用了ipv6的方法
test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"
如果你看到
Running kernel is IPv6 ready
它已启用。
如果你看不到输出,那就不是。
如果此页面上的其他答案不适合您,请禁用ipv6,黑名单ipv6 all-together。 为此,请使用以下命令:
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的信息。
如果您使用的是Ubuntu的现代版本(我是16.04 LTS),那么您可以使用这个整洁的解决方案:
创建包含以下文本的/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
- 什么类型的shebang路径更可取?
- 如何在全新安装的Ubuntu 14.10(Utopic Unicorn)上安装Broadcom无线适配器BCM4352 802.11ac PCID (rev 03)?