Linux系統不響應SYN包的解決辦法

2021-05-28 13:01:13 字數 670 閱讀 1295

關於syn為什麼沒有回應的問題真是鬱悶了好久。

現象就是在客戶端發出syn包的時候,伺服器端對客戶端的syn包不做任何回應。

在網上逛了逛,終於找到有人也發生了這樣的情況,發生的原因解釋如下:

當客戶端發出的syn包帶有時間戳的情況下,經過nat轉換後,如果使用的埠被之前使用過,而且時間戳大於本次syn包中的時間戳。系統將會直接丟棄。造成本次鏈結無法正常完成tcp/ip的3次握手。【該功能和rfc1323有關,後面有鏈結】

解決的方法很簡單,分為兩種:

在客戶端:關閉rfc1323

在服務端:設定sysctl.conf裡面tcp_timestamps=0也可以只用命令sysctl -w net.ipv4.tcp_timestamps=0

收集到的幾種客戶端的rfc引數位置

linux:和伺服器端的基本相同

微軟為登錄檔方式,位置為【hklm\system\currentcontrolset\services\tcpip\parameters\tcp1323opts】:

windows xp:預設值為3

windows 7 家庭版:預設值為1

windows 7 旗艦版:沒有找到這個鍵值

關於本文提到的技術解釋:

tcp1323opts:

rfc1323:

最早看到解決這個問題的文章:

vue 資料不響應的問題排除 解決

資料不響應,可能是用法有問題使用者名稱 使用者性別 if userinfo.officialaccount export default methods 1.將本來要新增的屬性提前在data中定義好data 2.直接替換掉userinfothis.userinfo 3.使用vue.setimport...

為何不響應WM CHAR訊息的解釋理解

wm char必須由wm keydown經過translatemessage得到,如果你當前擁有焦點的控制項無法進行輸入,則收不到wm char訊息 然wm keydown訊息是當乙個非系統鍵被按下時該訊息傳送給具有鍵盤焦點的視窗。也就是說具有焦點的視窗才能響應 keydown mfc基礎對話方塊的...

Android3 1 後廣播不響應的問題

在做android開發時,很多應用由於各種目的,希望在機器啟動時被喚醒,一般的做法是寫乙個broadcastreceiver,接收對應的boot action,當然別忘了在manifest中新增permission android.permission.receive boot completed ...