先确认再操作:运行ip -6 addr show(有inet6输出则启用)、cat /proc/sys/net/ipv6/conf/all/disable_ipv6(0为开启)、lsmod | grep ipv6(非空表示模块加载);临时禁用用sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1和default同设;永久禁用则在/etc/sysctl.conf追加两行并执行sudo sysctl -p。

新手配置Linux系统网络接口、关闭非必要的IPv6端口,核心是“先确认再操作”,避免误关导致服务异常。不需要编译内核或改驱动,主流发行版(CentOS/RHEL 7+/Ubuntu 18.04+)都支持安全、可逆的配置方式。
确认当前IPv6是否启用
别急着改配置,先看现状:
- 运行 ip -6 addr show:如果有
inet6 fe80::/64或全球单播地址(如2001:db8::/64),说明IPv6已启用 - 运行 cat /proc/sys/net/ipv6/conf/all/disable_ipv6:返回 0 表示开启,1 表示已禁用
- 运行 lsmod | grep ipv6:若输出非空,说明IPv6内核模块已加载
临时关闭IPv6(适合测试)
不改任何文件,命令行立即生效,重启后恢复,适合排查问题:
- 禁用所有接口(含lo):sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
- 同时禁用默认配置(防止新接口自动启用):sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
- 验证:再次运行 cat /proc/sys/net/ipv6/conf/all/disable_ipv6,应显示 1
永久关闭IPv6(推荐新手用sysctl方式)
比修改GRUB或屏蔽模块更稳妥,兼容性好,且不影响其他网络功能:
- 编辑配置文件:sudo nano /etc/sysctl.conf
- 在文件末尾添加两行:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1 - 执行 sudo sysctl -p 立即加载新配置
- 重启后仍有效;如需恢复,删掉这两行再运行 sysctl -p 即可
额外注意:网卡级配置(按需补充)
某些旧版CentOS/RHEL还依赖网络服务配置,若重启后仍看到IPv6地址,检查以下两项:
-
/etc/sysconfig/network 中确保有:
NETWORKING_IPV6=no - 对应网卡配置(如 /etc/sysconfig/network-scripts/ifcfg-eth0)中设置:
IPV6INIT=no
删除或注释掉IPV6ADDR、IPV6_DEFAULTGW等行











