Ubuntu
出站 TCP 連接是否會阻止埠綁定以進行偵聽?
我正在執行一個試圖監聽埠的應用程序
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 會話在隨機選擇的埠上啟動。 作業系統真的會阻止綁定到它隨機選擇的那個埠嗎? 還是我解釋錯了?似乎有一些邏輯可以將會話移動到不同的埠。我無法想像這將是一個罕見的事件。
作業系統真的會阻止綁定到它隨機選擇的那個埠嗎?
如果一個埠正在使用中,那麼它正在使用中。不管它是隨機分配的還是明確選擇的,重要的是它正在使用中。建議您不要將服務綁定到臨時埠範圍內的埠,因為那樣就可能發生這種情況。