我们如何通过终端命令禁用整个系统的 IPv6?
我已阅读编辑/etc/modprobe.d/别名 并替换:
alias net-pf-10 ipv6
和:
alias net-pf-10 off
alias ipv6 off
此方法安全吗?重启后是否会永久禁用 ipv6?
答案1
输入以下几行后,我成功禁用了 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
还可以运行此命令来加载更改
sudo sysctl -p
答案2
如果您的 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
答案3
以下是检查你的计算机是否启用了 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"
不应有任何输出。
答案4
如果您使用的是 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