閱讀607 返回首頁    go 阿裏雲 go 技術社區[雲棲]


NAT客戶端無法連接Server的解決方法

客戶端通過NAT連接上網,有的客戶端可以訪問server端,有的不可以,本文介紹了如何通過訪問固定請求的URL抓包排查和定位問題。

1、http contains "/frontend" 過濾出來客戶端請求的這個URL。
image

2、跟蹤一下流(follow stream),看請求是否正常。
image
image

3、打開客戶端的包,發現請求失敗的是重傳包,過濾一下 tcp.analysis.retransmission
image

可以看到有四次請求重傳
思考:
A、不是雲盾攔截,因為雲盾攔截是基於ip的
B、檢查係統內沒有雲鎖之類的軟件,iptables也沒開
C、檢查係統參數 system –p (-a打印所有)看到有timestamp

4、對比timestamp
失敗的截圖
image

成功的截圖
image

結論:
成功的timestamp都很大,修改net.ipv4.tcp_timestamps=0即可。
同時開啟timestamp(時間戳)和tw_recycle,會導致在一個MSL時間內隻響應timestamp遞增的請求,對於時間戳較小的請求都拋棄了。

最後更新:2017-06-14 18:31:37

  上一篇:go  【阿裏雲大學免費精品課】機器學習入門:概念原理及常用算法
  下一篇:go  DCL雙重加鎖檢查多線程不安全問題