Author:Fu
优化服务器网络访问速度:解决CURL慢的问题-关闭IPV6支持。@H_301_8@
现象:@H_301_8@CURL请求URL地址,速度都在5秒以上。
说明:@H_301_8@
在使用curl获取某接口时会curl: (6) Couldn’t resolve host ‘www.coolnull.com’。奇葩的是ping www.coolnull.com域名是通的。上网搜了下。@H_301_8@
在CentOS6系统下,遇到最常见的问题就是curl: (6) Couldn’t resolve host ‘www.coolnull.com’。不仅仅curl会有这个问题,python的urllib2也有这个问题,报错的信息如下:urllib2.URLError:@H_301_8@
还有个直观的问题就是,就是DNS域名解析变慢了,因为CentOS 6/REHL 6总是等待AAAA(IPv6)的查询结果。具体可以查看附录1:centos6需启用single-request-reopen参数
IPv6是为了解决IPv4地址耗尽的问题,但并不是所有人都需要它,也不是所有硬件都支持它。在某些情况下,可能会发现禁用IPv6不仅仅会加快网络,还会有助于减少管理开销和提高安全级别。
原因分析:系统开启了IPV6支持,导致网络消耗。@H_301_8@
# 命令:ifconfig@H_301_8@
# 注释:有 “inet6 addr:。。。。。。。“ 的表示开启了ipv6功能@H_301_8@@H_301_8@@H_301_8@
# 2、解决方法:关闭@H_301_8@ipv6@H_301_8@
# 解决:
#@H_301_8@1. 在/etc/resolv.conf文件中添加以下内容
echo "options single@H_301_8@-@H_301_8@request@H_301_8@-@H_301_8@reopen @H_301_8@" >> /etc/resolv.conf
@H_301_8@
#@H_301_8@2. 修改/etc/sysctl.conf文件
echo "net@H_301_8@.@H_301_8@ipv6@H_301_8@.@H_301_8@conf@H_301_8@.@H_301_8@default@H_301_8@.@H_301_8@disable_ipv6@H_301_8@ @H_301_8@=@H_301_8@ @H_301_8@1@H_301_8@" >> /etc/sysctl.conf
echo "net@H_301_8@.@H_301_8@all@H_301_8@.@H_301_8@disable_ipv6 @H_301_8@1@H_301_8@" >> /etc/sysctl.conf
/sbin/sysctl -p @H_301_8@# 使禁用IPv6生效@H_301_8@
# (下面待尝试,但作者未使用,仍然成功禁用IPV6):@H_301_8@在/etc/modprobe.d/dist.conf结尾添加
#@H_301_8@@H_301_8@echo "alias net-pf-10 off" >> /etc/modprobe.d/dist.conf
#@H_301_8@echo "alias ipv6 off" >> /etc/modprobe.d/dist.conf
#@H_301_8@4. 关闭ip6tables@H_301_8@
chkconfig ip6tables off
service ip6tables stop
time curlhttp://www.hexun.com/ #应该在0.1秒以内有返回结果。
# 成功完成。