如何使用“ip”命令禁用 IPv6?

如何使用“ip”命令禁用 IPv6?

我需要禁用 IPv6 的使用/分配,我尝试创建 /etc/sysctl.d/40-ipv6.conf 文件并添加相关设置,我还尝试编辑 GRUB 添加以下行:

GRUB_CMDLINE_LINUX="ipv6.disable_ipv6=1"

sudo update-grub重新启动系统后,我的 eth 卡仍然可以使用 IPv6。

有没有永久的方法可以使用“ip”linux 命令禁用 IPv6?

答案1

该文件中包含以下配置行,/etc/sysctl.d/40-ipv6.conf用于在所有接口上禁用 IPv6。

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

我们谈论的是哪个Linux? GRUB 配置方法可能类似于/etc/default/grub.

GRUB_CMDLINE_LINUX="ipv6.disable=1 rhgb quiet"

更改 GRUB 配置后,必须重新安装 GRUB 并重新启动。

grub2-mkconfig -o /boot/grub2/grub.cfg
shutdown -r now

稍后查看是否配置成功。

ip addr show | grep net6

或者,为了简单地防止 IPv6 模块绑定到 IPv6 网络堆栈,请将以下行添加到/etc/modprobe.d/blacklist.conf(或根据现有目录/文件结构添加不同的文件名):

options ipv6 disable=1

然后重新启动。

这将允许加载 IPv6 模块,以满足依赖于它的任何其他模块,同时禁用对 IPv6 协议的支持。

在基于 RedHat 的操作系统中,可以在/etc/sysconfig/network.

NETWORKING_IPV6=no

答案2

如果此解决方案不适合您,请尝试禁用 systemd 接口。

https://unix.stackexchange.com/a/730202/46158

[Match]
Name=en*
[Network]
DHCP=ipv4
LinkLocalAddressing=ipv4

相关内容