UnknownHostException: api.weixin.qq.com解决方法

打印 上一主题 下一主题

主题 523|帖子 523|积分 1569

在使用微信服务过程中(调用api.weixin.qq.com),总会遇到如下这种题目:
“java.net.UnknownHostException: api.weixin.qq.com: 未知的名称或服务”。
关键是这种题目偶尔出现,我们在测试环境甚至一次都没遇到,但在生产环境下却出现了,题目很难排查。查了好多方案都没有解决,私信询问了微信社区技能运营专员,也没见回音。最后通太过析实验出本文解决方法。
解决方案

1、vi /etc/resolv.conf做如下配置:
  1. options timeout:1 attempts:1 rotate
  2. #options single-request-reopen
  3. nameserver 119.29.29.29
  4. nameserver 114.114.114.114
  5. nameserver 180.76.76.76
  6. nameserver 223.5.5.5
复制代码
2、chattr +i /etc/resolv.conf
  在有些Linux下,当网络重启后,/etc/resolv.conf会规复到原来的状态。本下令是让文件编程只读。如果以后需要修改,用chattr -i /etc/resolv.conf
3、vi /etc/sysconfig/network-scripts/ifcfg-eth0
删掉DNS1,DNS2参数,都用resolv.conf中的配置
4、重新启动网络:service network restart
5、可以用nslookup查看哪个DNS生效

参数阐明

options 背面跟的是各种参数,每个参数意义如下:
  timeout:设置等候dns服务器返回的超时时间,单位秒。默认值5。
  attempts:向DNS服务器发起域名解析的请求次数。默认值2。采用多个dns服务器轮询
  rotate:采用轮询方式访问nameserver
  single-request-reopen:CentOS6/CentOS7总是需要等候AAAA(IPv6)的效果,即使关闭IPv6也没什么卵用。CentOS 6/CentOS 7中的DNS解析器对于ipv4和ipv6都使用同一个socket接口,在同时发出ipv4和ipv6解析请求后,只会收到一个ipv4的解析响应,此时socket将一处于“等候”模式,等候ipv6的解析响应,故导致解析缓慢;添加single-request-reopen后就可以重新打开一个新的socket接收ipv6的解析响应,而不影响ipv4的解析响应。本参数详解见 http://coolnull.com/3820.html
nameserver:dns服务器,分别采用了腾讯的、114的、百度的、阿里的,总有一个可行。
补充阐明

履历证关于options single-request-reopen配置在某些环境可以,但在某些环境下打开会导致错误如下:
  1. java.net.UnknownHostException: www.xxx.cn: 未知的名称或服务
  2.         at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
复制代码
该种环境下,关闭该选项即可。
这篇文章如果对您有所帮助大概启发的话,帮忙关注或点赞,有题目请批评,必有所复。您的支持是我写作的最大动力!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

九天猎人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表