如何防止連接埠被其他服務佔用?

如何防止連接埠被其他服務佔用?

我有多個服務在限制範圍(1024+)內的連續連接埠上運行(偵聽它們)。有時我需要重新啟動這些服務,並且其中一個服務正在使用其他服務的連接埠作為本地連接埠來連接到資料庫。結果,其他服務抱怨無法偵聽現在繁忙的連接埠。我需要使用 netstat 手動確定服務,以透過重新啟動該服務來強制連接埠更改,以便連接埠現在可以由正確的其他服務自由使用。

有沒有辦法阻止連接埠被用作開啟並只允許以偵聽模式開啟?

系統:Linux

目前使用的連接埠範圍為 9000-9100

答案1

通常這些連接埠應該已經在「臨時」連接埠範圍之外(這與非特權連接埠不同)。該範圍由net.ipv4.ip_local_port_range 系統控制,在我的系統上預設顯示 32768–60999。

如果 local_port_range 足夠高,則表示連接埠 9000 永遠不應該自動選擇為來源連接埠(儘管它不會阻止程式從明確地綁定到此連接埠)。

您也可以將連接埠新增至net.ipv4.ip_local_reserved_portssysctl(透過 /etc/sysctl.d);此選項採用空格分隔的各個連接埠號碼清單。

相關內容