curl: (6) Couldn’t resolve host ‘www.ttlsa.com’

凉白开 Linux281,07625字数 1124阅读3分44秒阅读模式

上周, 部分站点出现Couldn't resolve host.....问题,  导致公司所有走api的程序都无法正常使用(系统redhat 6.3的都出现问题, redhat 5一切OK). 最后解决方法找到了,但是具体原因目前还未知.

从这个报错,可以很明显的发现是域名解析不了。于是做如下排查。文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

1. 故障排除文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

1. 1 测试域名是否能解析到文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

简单的使用ping来测试,发现DNS解析是OK。文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

# ping -c 1 www.ttlsa.com 
PING www.ttlsa.com (173.255.219.122) 56(84) bytes of data.
64 bytes from rpms.adiscon.com (173.255.219.122): icmp_seq=1 ttl=51 time=222 ms

1.2 测试curl是否有故障文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

因为php程序调用的是curl,所以我们测试一下curl是否能够正常解析dns文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

# curl  www.ttlsa.com
curl: (6) Couldn't resolve host 'www.ttlsa.com'

竟然真的不行,这种奇葩问题首次遇到.文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

2. 解决问题文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

尝试解决方法:文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

修改dns文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

# cat /etc/resolv.conf | grep names
nameserver 218.85.157.99
nameserver 218.85.152.99
改为
nameserver 114.114.114.114
nameserver 8.8.8.8

重新测试curl,问题得到解决。文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

3. ttlsa群友提供解决方法文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

于此同时,群里的一个福建群友在也反应这个问题,看来应该是电信DNS有调整的缘故,但是具体的原因还是不得而知。告知其修改dns,问题也得到解决。文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

今天ttlsa群里的"福州 - 要上天"(藏得很深很低调的大牛)询问此问题是否解决,并提供另外的解决方法。文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

3.1 执行curl指定ipv4文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

curl -4 www.baidu.com

3.2 关闭ipv6文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

请参考CentOS6 / RHCE6 禁用IPv6协议模块:https://www.ttlsa.com/html/3640.html文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

如果是php程序,那么请在使用curl的时候指定ipv4的参数:CURL_IPRESOLVE_V4文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

感谢群友提供的解决方案. 如果你也遇到如上问题,不烦尝试下上面的解决方案.文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

 4. curl无法解析原因文章源自运维生存时间-https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/

本文发出之后, 咱们ttlsa群主"north-boy"也找到原因所在,并且在“CentOS6 / RHCE6 禁用IPv6协议模块”提到,请看网址:https://www.ttlsa.com/html/3640.html

站点:运维生存时间   网址:https://www.ttlsa.com/html/3631.html

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
凉白开
  • 本文由 发表于 08/11/2013 13:36:11
  • 转载请务必保留本文链接:https://www.ttlsa.com/linux/curl-6-couldnt-resolve-host/
评论  2  访客  1
    • 北神
      北神 9

      comment” />

    评论已关闭!