禁用网卡ipv6的核心是关闭其协议栈,临时用sysctl -w net.ipv6.conf.ens32.disable_ipv6=1,永久则在/etc/sysctl.conf添加该行并执行sysctl -p;需验证/proc/sys/net/ipv6/conf/ens32/disable_ipv6为1且ip -6 route show dev ens32无有效路由。

禁用网卡的 IPv6 功能,核心是关闭该接口的 IPv6 协议栈,既可临时生效,也能永久保留。关键不在于删地址,而在于让内核停止为该网卡处理 IPv6 流量。
临时禁用指定网卡的 IPv6
立即生效,重启后失效,适合测试或快速调整:
- 运行命令:sysctl -w net.ipv6.conf.ens32.disable_ipv6=1(把 ens32 换成你的实际网卡名)
- 验证是否成功:执行 ip -6 addr show ens32,输出应为空或仅剩
fe80::/64链路本地地址(部分系统仍保留) - 若需同时禁用所有接口的 IPv6,可用 sysctl -w net.ipv6.conf.all.disable_ipv6=1
永久禁用指定网卡的 IPv6
修改系统配置文件,确保重启后依然有效:
- 编辑 /etc/sysctl.conf,在末尾添加一行:
net.ipv6.conf.ens32.disable_ipv6 = 1 - 保存后执行 sysctl -p 立即加载新配置
- 注意:无需修改网卡脚本(如 ifcfg-ens32)中的 IPV6INIT,因为 sysctl 参数优先级更高;但若已设为
IPV6INIT=no,也无冲突
配合 NetworkManager 的注意事项
使用 nmcli 或 nmtui 管理网络时,IPv6 状态受双重控制:
- 即使 sysctl 已禁用,NetworkManager 仍可能尝试自动配置 IPv6 地址(如 SLAAC 或 DHCPv6)
- 建议同步在连接配置中关闭 IPv6:运行 nmcli connection modify ens32 ipv6.method ignore
- 再执行 nmcli connection down ens32 && nmcli connection up ens32 重载连接
验证是否真正禁用
不要只看有没有 IPv6 地址,要确认协议栈已停用:
- 检查内核参数:cat /proc/sys/net/ipv6/conf/ens32/disable_ipv6 → 应返回 1
- 查看 IPv6 路由表:ip -6 route show dev ens32 → 应无输出或仅含
fe80::/64直连路由 - 尝试 ping 本地链路地址:ping6 fe80::1%ens32 → 若失败,说明链路层 IPv6 已基本关闭











