对于给定的接口,永久禁用 IPv6?

Sco*_*pta 5 linux ipv6 network-interface

我希望在特定接口上永久禁用 IPv6,因为它坏了,我关于超级用户修复它的问题已经死了,所以我该怎么做呢?我已经添加了net.ipv6.conf.eth0.disable_ipv6=1/etc/sysctl.conf但由于某种原因它不起作用。目前,我每次打开电脑时都只使用 sysctl 命令来禁用它。

mch*_*hid 10

首先,编辑 /etc/default/grub 并找到以下行:

GRUB_CMDLINE_LINUX=""
Run Code Online (Sandbox Code Playgroud)

并更改行改为这样说(这将完全禁用 ipv6):

GRUB_CMDLINE_LINUX="ipv6.disable=1"
Run Code Online (Sandbox Code Playgroud)

或者,要使 ipv6 堆栈正常运行但要禁用 ipv6 地址的分配,您可以使用以下选项:

GRUB_CMDLINE_LINUX="ipv6.disable_ipv6=1"
Run Code Online (Sandbox Code Playgroud)

最后,运行:

sudo update-grub
Run Code Online (Sandbox Code Playgroud)

并重新启动以应用更改。

这将在内核级别禁用 ipv6,因此它永远不会从一开始就启用。


此外,在对以下内容进行以下更改后 /etc/sysctl.conf

net.ipv6.conf.eth0.disable_ipv6 = 1
Run Code Online (Sandbox Code Playgroud)

运行以下命令以应用更改:

sudo sysctl -p
Run Code Online (Sandbox Code Playgroud)

最后,如果在 sysctl.conf 中使用禁用 ipv6 的选项,您还需要确保在 /etc/hosts 中注释掉 ipv6。请参阅此处https://wiki.archlinux.org/index.php/IPv6#Disable_functionality