Ubuntu

出站 TCP 連接是否會阻止埠綁定以進行偵聽?

  • June 17, 2019

我正在執行一個試圖監聽埠的應用程序34002。當它嘗試這樣做時,它會收到錯誤:

Address already in use

當我使用lsof查找罪魁禍首時,我發現它是一個出站 TCP 連接:

sudo lsof -i | grep "some-process"
some-command 53344  some-process    7u  IPv4 344298      0t0  TCP <my-local-ip-redacted>:34002-><remote-ip-redacted>:https (ESTABLISHED)

這對我來說似乎很奇怪。出站 TCP 會話在隨機選擇的埠上啟動。 作業系統真的會阻止綁定到它隨機選擇的那個埠嗎? 還是我解釋錯了?似乎有一些邏輯可以將會話移動到不同的埠。我無法想像這將是一個罕見的事件。

作業系統真的會阻止綁定到它隨機選擇的那個埠嗎?

如果一個埠正在使用中,那麼它正在使用中。不管它是隨機分配的還是明確選擇的,重要的是它正在使用中。建議您不要將服務綁定到臨時埠範圍內的埠,因為那樣就可能發生這種情況。

引用自:https://serverfault.com/questions/971778