访问的腾讯API接口经常出问题,导致微信支付支付不了

1、服务器基础环境

[root@app2-192-168-10-90 ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) 
[root@app2-192-168-10-90 ~]# cat /etc/sysconfig/network-scripts/ifcfg-em1
DNS1=223.5.5.5
DNS2=223.6.6.6
ZONE=public

2、问题反馈,应用程序开发反馈腾讯的API接口经常出问题,导致微信支付支付不了。

2.1 服务器上测试ping api.mch.weixin.qq.com 偶尔会出现 “未知的名称或服务”

[root@app2-192-168-10-90 ~]# ping api.mch.weixin.qq.com
ping: api.mch.weixin.qq.com: 未知的名称或服务
[root@app2-192-168-10-90 ~]# 

2.2 并且有时候还会出现第一次DNS解析非常慢的问题。

服务器DNS正常设置为阿里云DNS服务器 223.5.5.5

3、问题原因

options single-request-reopen
  LINUX DNS客户端解析缓慢的其中一个原因是CentOS 6/CentOS 7总是需要等待AAAA(IPv6)的结果,即使关闭IPv6也没什么卵用。CentOS 6/CentOS 7中的DNS解析器对于ipv4和ipv6都使用同一个socket接口(如上图),在同时发出ipv4和ipv6解析请求后,只会收到一个ipv4的解析响应,此时socket将一处于“等待”模式,等待ipv6的解析响应,故导致解析缓慢;添加single-request-reopen后就可以重新打开一个新的socket接收ipv6的解析响应,而不影响ipv4的解析响应.
options timeout:1 attempts:1 rotate
rotate:这个参数的含义是随机选取一个作为查询的dns server,默认为按照顺序从上往下。

timeout:查询一个nameserver的超时时间,单位是秒。系统缺省是5,最大可以设为30。设置为1S超时即可,否则等AAAA回应就到地老天荒了,浪费时间。

attempts:这个是查询的整个都尝试一遍的次数,默认LINUX会发出好几次DNS查询包,让查一次即可,浪费时间。

3、解决方法: vim /etc/resolv.conf 添加如下参数

# Generated by NetworkManager
options timeout:1 attempts:1 rotate
options single-request-reopen
nameserver 119.29.29.29
nameserver 223.5.5.5
# 您查询的IP:119.29.29.29
*   本站数据:广东省广州市 腾讯云计算(北京)有限责任公司 腾讯云
*   参考数据1:DNSPOD.COM tencent.com
*   参考数据2:中国
*   网友提交的IP:广东省广州市 腾讯云DNS服务器
*   兼容IPv6地址:::771D:1D1D
*   映射IPv6地址:::FFFF:771D:1D1D

4、直接修改resolv.conf 只能临时生效,重启network服务后就会失效.防止重启network服务后配置失效,请如下操作。

chattr +i /etc/resolv.conf ~

4.1 修改后查看文件状态

[root@app1-192-168-10-80 ~]# lsattr /etc/resolv.conf 
----i----------- /etc/resolv.conf

4.2 chatter 使用说明:

```
chatter: 锁定文件,不能删除,不能更改
+a: 只能给文件添加内容,但是删除不了,
chattr +a /etc/passwd
-d: 不可删除
加锁:chattr +i /etc/passwd 文件不能删除,不能更改,不能移动
查看加锁: lsattr /etc/passwd 文件加了一个参数 i 表示锁定
解锁:chattr -i /home/omd/h.txt - 表示解除





猜你喜欢

转载自www.cnblogs.com/flyinghappysheep/p/10842971.html
今日推荐