調用互聯網API接口(騰訊、阿里)等出現"未知名稱或服務(Name or service not known)"


一、問題

開發反饋程序調用api.mch.weixin.qq.com時,時不時出現"[Errno -2] Name or service not known"錯誤。

二、排查

1、DNS地址配置為114.114.114.114,偶發出現解析慢的現象

2、可能原因

CentOS 6/7的DNS解析器在解析地址時會同時發出解析ipv4和ipv6的請求,且使用同一個socket接口,當只收到一個ipv4的解析響應時,socket出於“等待”狀態,等待ipv6的解析響應,因此會導致解析緩慢;

3、優化方法

cat /etc/resolv.conf
options timeout:1 attempts:1 rotate single-request-reopen
nameserver 210.22.70.3
nameserver 114.114.114.114

timeout:查詢一個nameserver的超時時間,單位是秒。系統缺省是5,最大可以設為30;
attempts:這個是查詢的整個都嘗試一遍的次數;
rotate:隨機選取一個作為查詢的dns server,默認為按照順序從上往下;
single-request-reopen:超時時可以重新打開一個新的socket接收ipv6的解析響應,而不影響ipv4的解析響應。

4、問題

應用還是偶發出現問題,發現ping解析出來的ipv6地址同樣會出現“Name or service not known”錯誤

 

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM