网络问题排查指南

更新时间:2023.07.25

# 1. 手工定位

# 1.1. 确认商户服务器出口IP

  1. 通过curl myip.ipip.net命令获取

    图示
  2. 浏览器访问http://myip.ipip.net/获取

    图示

# 1.2. 通过ping确认延时和丢包情况

Linux命令

1ping api.mch.weixin.qq.com -c 100

Windows命令

1ping api.mch.weixin.qq.com -n 100
图示

# 1.3. 通过trace确认对应的路由节点

Linux命令

1traceroute api.mch.weixin.qq.com

Windows命令

1tracert api.mch.weixin.qq.com
图示

# 1.4. 通过mtr确认对应的路由节点丢包情况

1mtr -4 -i 1 api.mch.weixin.qq.com

# 1.5. curl测试

1>curl -o /dev/null -4 -v -s -w %{time_namelookup}:%{time_connect}:%{time_starttransfer}:%{time_total}"\n" 'https://api.mch.weixin.qq.com/orderquery'

这里的输出需要确认有一列的时间超过3s才有参考意义

图示

# 2. 自动化工具定位

# 2.1. 运行工具命令

1./wxpaymonitor -t

# 2.2. 工具运行输出结果

图示

# 2.3. 自动化工具定位说明

# 2.3.1. 工具最优接入IP建议

从ping测延时的结果会按照延时最低到最高的排序,其中最优IP需要与RemoteIp能匹配。如果IP的耗时为9999.999ms则表示该IP不通,同时会有i/o timeout的条目提示。如果商户测试的RemoteIp与该条目录一致,则可以确认存在网络异常。

# 2.3.2. LocalDns相关的配置建议

从工具测试的结果,UserIp与LocalDns以及RemoteIp需要属于同运营商,具体IP运营商归属商户侧可以通过http://ip.138.com (opens new window)查询。

# 2.3.3. 接口耗时说明

Duration:表示此次请求接口总耗时。

Lookup duration:表示此次请求通过DNS解析域名耗时,如果此耗时比较高,建议确认DNS解析是否正常。

Connection duration:表示此次请求连接建立耗时,如果此耗时超过1s,表示网络层面TCP连接建立时间长。

Request duration: 表示此次请求在业务层面处理的耗时,如果此耗时超过3s则需要重点排查业务处理日志,建议商户提供具体的单号确认问题。

总体来看请求耗时>连接耗时>DNS解析耗时,且总体耗时不超过3s属正常范围。

商户侧对微信支付回调IP有防火墙策略限制的,需要对以下IP段开通白名单:

  • 上海电信出口网段:101.226.103.0/25
  • 上海联通出口网段:140.207.54.0/25
  • 上海CAP出口网段:121.51.58.128/25(新增)
  • 深圳电信出口网段:183.3.234.0/25
  • 深圳联通出口网段:58.251.80.0/25
  • 深圳CAP出口网段:121.51.30.128/25(新增)
  • 香港出口网段:203.205.219.128/25

提示

上海CAP、深圳CAP的出口为新增,商户侧需要新开防火墙