我需要禁用 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