我可以在 127.0.0.1 和 192.168.xx 上使用相同的連接埠嗎

我可以在 127.0.0.1 和 192.168.xx 上使用相同的連接埠嗎

我不太明白 localhost 與分配給每台機器的私人 IP 有何關係。

如果我在 localhost:8080 上執行伺服器,我可以在 192.168.xx:8080 上執行其他東西嗎?

更具體地說,如果我在 localhost:8080 上運行 python waitress 伺服器並使用 NGINX 進行反向代理,我可以讓 NGINX 監聽連接埠 8080 嗎?

答案1

如果我在 localhost:8080 上執行伺服器,我可以在 192.168.xx:8080 上執行其他東西嗎?

是的,同一連接埠上可以有不同的偵聽套接字,只要它們綁定到不同的本機位址(即根據位址:連接埠組合追蹤套接字)。

(但避免將特定address:port偵聽器與「任何位址」0.0.0.0:port[::]:port偵聽器混合。通常這也是允許的,但有更嚴格的要求,例如,如果兩個程式具有不同的UID,我認為Linux 不允許這樣做。

我不太明白 localhost 與分配給每台機器的私人 IP 有何關係。

事實並非如此。名稱「localhost」專門解析為位址 127.0.0.1 和 [::1],僅此而已。它從不使用您的實際 LAN 位址。

答案2

localhost翻譯為127.0.0.1, 所以localhost:8080127.0.0.1:8080是同一件事。

192.168.x.x是不同的IP位址,因此可以重複使用相同的連接埠。您可以在127.0.0.1:8080上運行不同的伺服器192.168.0.1:8080,如果您有更多 IP 位址,您甚至可以繼續使用例如:192.168.0.2:8080192.168.0.3:8080

相關內容