網(wǎng)絡(luò)排查指引
網(wǎng)絡(luò)云排查工具安裝指引
網(wǎng)絡(luò)云排查工具是微信支付推出的幫助商戶(hù)定位和解決網(wǎng)絡(luò)問(wèn)題的輔助工具。
傻瓜式的操作,使用門(mén)檻幾乎為“0”,可視化的示圖,清晰展現(xiàn)網(wǎng)絡(luò)問(wèn)題。趕快來(lái)體驗(yàn)下吧!
工具傳送路徑:商戶(hù)平臺(tái)(www.tg885.com)-數(shù)據(jù)中心-網(wǎng)絡(luò)云排查工具。 需登錄商戶(hù)賬號(hào)
【工具安裝】進(jìn)入商戶(hù)平臺(tái)后,參照安裝指引,下載并安裝工具:
【工具使用】● 工具安裝后大約5分鐘,選擇日期、出口IP、設(shè)備ID后,點(diǎn)擊查詢(xún)即可看到網(wǎng)絡(luò)曲線
注意:只能查詢(xún)7天內(nèi)的網(wǎng)絡(luò)情況,且查詢(xún)?nèi)掌诓荒茉缬谀惆惭b工具的時(shí)間
● 網(wǎng)絡(luò)問(wèn)題主要是三個(gè)方面的原因:DNS解析、TCP連接、網(wǎng)絡(luò)請(qǐng)求,通過(guò)網(wǎng)絡(luò)工具可以清晰看到這三個(gè)方面的耗時(shí)情況(如圖中6所示),如需幫助,可以查看我們的幫助文檔(如圖中4所示)。
注意:圖中5所示的告警功能目前還在內(nèi)測(cè)中,暫未發(fā)布,具體發(fā)布時(shí)間,請(qǐng)關(guān)注微信支付商戶(hù)平臺(tái)公告。
常見(jiàn)網(wǎng)絡(luò)超時(shí)問(wèn)題定位
1. 手工定位
1.1 確認(rèn)商戶(hù)服務(wù)器出口IP
① 通過(guò)curl myip.ipip.net命令獲取
② 瀏覽器訪問(wèn)http://myip.ipip.net/獲取
1.2 通過(guò)ping確認(rèn)延時(shí)和丟包情況
Linux: ping api.mch.weixin.qq.com -c 100
Windows: ping api.mch.weixin.qq.com -n 100
1.3 通過(guò)trace確認(rèn)對(duì)應(yīng)的路由節(jié)點(diǎn)
Linux: traceroute api.mch.weixin.qq.com
Windows: tracert api.mch.weixin.qq.com
1.4 通過(guò)mtr確認(rèn)對(duì)應(yīng)的路由節(jié)點(diǎn)丟包情況
mtr -4 -i 1 api.mch.weixin.qq.com
1.5 curl測(cè)試
curl -o /dev/null -4 -v -s -w %{time_namelookup}:%{time_connect}:%{time_starttransfer}:%{time_total}"\n" 'https://api.mch.weixin.qq.com/orderquery'
**這里的輸出需要確認(rèn)有一列的時(shí)間超過(guò)3s才有參考意義
2. 自動(dòng)化工具定位
2.1 運(yùn)行工具命令:
./wxpaymonitor -t
2.2 工具運(yùn)行輸出結(jié)果:
2.3 自動(dòng)化工具定位說(shuō)明:
◆ 工具最優(yōu)接入IP建議
從ping測(cè)延時(shí)的結(jié)果會(huì)按照延時(shí)最低到最高的排序,其中最優(yōu)IP需要與RemoteIp能匹配。如果IP的耗時(shí)為9999.999ms則表示該IP不通,同時(shí)會(huì)有i/o timeout的條目提示。如果商戶(hù)測(cè)試的RemoteIp與該條目錄一致,則可以確認(rèn)存在網(wǎng)絡(luò)異常。
◆ LocalDns相關(guān)的配置建議
從工具測(cè)試的結(jié)果,UserIp與LocalDns以及RemoteIp需要屬于同運(yùn)營(yíng)商,具體IP運(yùn)營(yíng)商歸屬商戶(hù)側(cè)可以通過(guò)http://ip.138.com查詢(xún)
◆ 接口耗時(shí)說(shuō)明
Duration:表示此次請(qǐng)求接口總耗時(shí)
Lookup duration:表示此次請(qǐng)求通過(guò)DNS解析域名耗時(shí),如果此耗時(shí)比較高,建議確認(rèn)DNS解析是否正常
Connection duration:表示此次請(qǐng)求連接建立耗時(shí),如果此耗時(shí)超過(guò)1s,表示網(wǎng)絡(luò)層面TCP連接建立時(shí)間長(zhǎng)
Request duration: 表示此次請(qǐng)求在業(yè)務(wù)層面處理的耗時(shí),如果此耗時(shí)超過(guò)3s則需要重點(diǎn)排查業(yè)務(wù)處理日志,建議商戶(hù)提供具體的單號(hào)確認(rèn)問(wèn)題。
總體來(lái)看請(qǐng)求耗時(shí)>連接耗時(shí)>DNS解析耗時(shí),且總體耗時(shí)不超過(guò)3s屬正常范圍。
附一:微信支付回調(diào)通知出口IP列表商戶(hù)側(cè)對(duì)商戶(hù)回調(diào)通知功能開(kāi)通白名單網(wǎng)段:
上海電信出口網(wǎng)段:101.226.103.0/25
上海聯(lián)通出口網(wǎng)段:140.207.54.0/25
上海CAP出口網(wǎng)段:121.51.58.128/25
深圳電信出口網(wǎng)段:183.3.234.0/25
深圳聯(lián)通出口網(wǎng)段:58.251.80.0/25
深圳CAP出口網(wǎng)段:121.51.30.128/25
香港出口網(wǎng)段:203.205.219.128/25
退款結(jié)果通知、分賬動(dòng)賬通知IP(新增):
175.24.214.208、175.24.211.24、175.24.213.135、109.244.180.23、114.132.203.119、43.139.43.69
常見(jiàn)問(wèn)題和注意事項(xiàng)
1. 服務(wù)器SSL版本說(shuō)明
由于低版本的SSL存在高危漏洞,需要確認(rèn)您系統(tǒng)所使用的SSL版本是否需要升級(jí),詳細(xì)說(shuō)明請(qǐng)見(jiàn)公眾平臺(tái)SSL安全策略說(shuō)明:http://mp.weixin.qq.com/cgi-bin/announce?action=getannouncement&key=1414562353&version=11&lang=zh_CN
Java開(kāi)發(fā)可以參考Oracle網(wǎng)站的說(shuō)明:[Oracle Java disable SSL3](https://www.oracle.com/java/technologies/javase/instructions-to-mitigate-the-ssl-v30-vulnerability.html)
2. IPV6相關(guān)
如果您的服務(wù)器開(kāi)啟了IPv6支持,由于當(dāng)前互聯(lián)網(wǎng)對(duì)IPv6支持不完整,導(dǎo)致在DNS解析時(shí)通常會(huì)碰到超時(shí)問(wèn)題;
建議在調(diào)用支付API時(shí),顯示指定使用IPv4解析.
PHP程序使用curl調(diào)用參考代碼如下:
if(defined('CURLOPT_IPRESOLVE') && defined('CURL_IPRESOLVE_V4'))
{
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
}
3. 無(wú)法連接微信服務(wù)器,訪問(wèn)api.mch.weixin.qq.com超時(shí)
a. 是否存在跨運(yùn)營(yíng)商訪問(wèn)的情況可以ping api.mch.weixin.qq.com查詢(xún)對(duì)應(yīng)的解析IP
通過(guò)訪問(wèn)ip.138.com獲取出口IP,也可以根據(jù)商戶(hù)側(cè)服務(wù)器的外網(wǎng)IP確認(rèn)
b. 確認(rèn)java程序使用的HttpClient的版本是否<=4.3.4
可升級(jí)HttpClient到4.3.6版本
c.如有疑問(wèn),請(qǐng)通過(guò)在線技術(shù)咨詢(xún)聯(lián)系我們;
4. 無(wú)法與api.mch.weixin.qq.com域名建立SSL鏈接
A: 使用 curl -v https://api.mch.weixin.qq.com/ 查看console輸出1. 看是否獲取到服務(wù)器端SSL證書(shū)?
2. 看獲取到的證書(shū)是否過(guò)期?
3. 檢查命中的IP的443端口是否能telnet通(檢查是否有DNS緩存)
B: 使用curl -o /dev/null -s -w %{time_namelookup}:%{time_connect}:%{time_starttransfer}:%{time_total}"\n" 'https://api.mch.weixin.qq.com/sandbox/orderquery' 來(lái)檢查HTTPS請(qǐng)求的各階段耗時(shí),排查定為異常的階段