如何永久禁用 IPv6?

如何永久禁用 IPv6?

我们如何通过终端命令禁用整个系统的 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"

不应有任何输出。

单击此处获取有关如何在启动时禁用 IPV6 的信息。

答案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

相关内容