一、检查IPv6状态
1、使用ifconfig命令:在终端中使用以下命令来查看网络接口信息,确认是否启用了IPv6,如果看到类似inet6 fe80::20c:29ff:fefd:3514的输出,说明IPv6已经启用。
ifconfig2、使用ip a命令:在CentOS 7及以上版本中,可以使用更现代的命令ip a来查看网络接口信息,如果输出中包含inet6条目,则说明IPv6已启用。

ip a | grep inet6二、编辑配置文件以禁用IPv6
1、编辑/etc/sysctl.conf文件:使用文本编辑器打开/etc/sysctl.conf文件,并在文件末尾添加以下行,以全局禁用IPv6:
vi /etc/sysctl.conf添加以下内容:
net.ipv6.conf.all.disable_ipv6 = 12、编辑/etc/sysconfig/network配置文件:同样使用文本编辑器打开/etc/sysconfig/network文件,并添加以下行,以禁用所有网络接口的IPv6功能:
vi /etc/sysconfig/network添加以下内容:
NETWORKING_IPV6=no3、编辑网卡配置文件:根据实际的网卡信息,编辑相应的网卡配置文件,对于名为eno1677736的网卡,编辑/etc/sysconfig/networkscripts/ifcfgeno1677736文件,确保以下行存在并设置为no:
vi /etc/sysconfig/networkscripts/ifcfgeno1677736添加或确保以下内容存在:

IPV6INIT=no三、禁用防火墙的IPv6规则
执行以下命令,禁止防火墙的IPv6规则在系统启动时自动启用:
systemctl disable ip6tables.service
四、使修改生效
1、立即生效修改:执行以下命令,使上述修改立即生效:
sysctl p2、重启系统:为了确保所有更改彻底生效,可以重启系统:
reboot五、验证IPv6是否已关闭
再次使用之前的命令检查网络接口信息,确认IPv6已经被禁用:
ifconfig
或者在CentOS 7及以上版本中使用:
ip a | grep inet6
现在你应该只看到IPv4地址,而IPv6已经消失。

六、常见问题解答(FAQs)
1、Q: 禁用IPv6后无法通过SSH连接怎么办?
A: 如果禁用IPv6后遇到SSH连接问题,请编辑/etc/ssh/sshd_config文件,将AddressFamily any改为AddressFamily inet,然后重启SSH服务。
vi /etc/ssh/sshd_config # AddressFamily any AddressFamily inet systemctl restart sshd
2、Q: 禁用IPv6后某些服务无法启动怎么办?
A: 某些服务可能依赖于IPv6,VSFTPD需要修改vsftpd.conf文件中的listen_ipv6选项为NO,并重启服务,对于Postfix,可以将main.cf中的inet_interfaces改为127.0.0.1。
通过以上步骤,您可以在CentOS上成功关闭IPv6,这些步骤包括检查当前IPv6状态、编辑相关配置文件、禁用防火墙的IPv6规则以及验证修改是否生效,如果您在使用过程中遇到任何问题,可以参考上述常见问题解答部分进行排查和解决。
