最新消息:时间抓起来说是金子,抓不住就是流水。

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

问题集锦 老子黑牵翻 3232浏览 0评论

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

20151117001

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

20151117002

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

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

2015111700320151117004

解决:
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模块已被禁用,否则被启用。

转载请注明:LINUX服务器运维架构技术分享 » 禁用IPv6解决服务器上请求IPv6地址

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址