記一次訪問Web服務偶爾不通問題解決過程
阿新 • • 發佈:2018-12-10
現象:我們部署的一個WEB服務,公司使用者在訪問過程中,時不時的遇到訪問超時,訪問失敗等問題
定位:通過抓包工具分析,發現client在傳送TCP SYN包後,Server沒有回覆SYN+ACK報文
問題原因:公司使用者通過無線網路或者有線網路,均是NAT網路。開啟tcp_tw_recycle對於服務端,同一個src ip,可能會是NAT後很多機器,這些機器timestamp遞增性無可保證,伺服器會拒絕非遞增請求連線。。一般在服務端都建議關閉此引數
解決方法一:關閉net.ipv4.tcp_tw_recycle即可
vi /etc/sysctl.conf net.ipv4.tcp_tw_recycle = 1 改為net.ipv4.tcp_tw_recycle = 0
tcp_tw_recycle原理可參考:http://blog.sina.com.cn/s/blog_781b0c850100znjd.html
解決方法二:關閉tcp時間戳
[[email protected] ~]$ cat /etc/sysctl.conf
net.ipv4.tcp_timestamps=0 新增
[[email protected] ~]$ cat /proc/sys/net/ipv4/tcp_timestamps
0