禁用IPv6解决服务器上请求IPv6地址

说明:
在使用wget获取某接口时得到的IP地址是ipv6

奇葩的是ping www.google.com域名得到的IP地址却是ipv4的。

也就是说,我在服务器上请求的地址都会去请求IPv6地址,导致请求无法正常返回。

查看:
CentOS6 / RHCE6 系统默认已经启用IPv6了,如图所示:

解决:
1. 在/etc/resolv.conf文件中添加以下内容

options single-request-reopen

2. 修改/etc/sysctl.conf文件

net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.all.disable_ipv6 = 1
/sbin/sysctl -p 使禁用IPv6生效

3. 禁止加载IPv6模块。这个我倒是没有去尝试

# echo "install ipv6 /bin/true" > /etc/modprobe.d/disable-ipv6.conf

每当系统需要加载IPv6模块时,强制执行/bin/true来代替实际加载的模块。注意:这是CentOS系统目前唯一有效的方法来禁用IPv6模块的。

4. 关闭ip6tables

# /etc/init.d/ip6tables stop
# chkconfig ip6tables off

5. 禁用基于IPv6网络,使之不会被触发启动

# vi /etc/sysconfig/network
NETWORKING_IPV6=no

6. 禁用网卡IPv6设置,使之仅在IPv4模式下运行。这个正常应该只有在网卡重启才会有效,所以也只是先暂时修改了下。

# vi /etc/sysconfig/network-scripts/ifcfg-ethX 或 vi /etc/sysconfig/network-scripts/ifcfg-em1X
IPV6INIT=no
IPV6_AUTOCONF=no

7. 重启生效

# reboot

8. 验证是否生效

# lsmod | grep ipv6

如果没有任何输出就说明IPv6模块已被禁用,否则被启用。

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《禁用IPv6解决服务器上请求IPv6地址》
文章链接:https://zhuji.vsping.com/3280.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。