據我了解,0.0.0.0
是指該主機的所有網路介面(包括127.0.0.1
)。
假設我有三個接口192.0.2.40
,203.0.113.150
並且127.0.0.1
在伺服器(作業系統linux)上。
在 上192.0.2.40:777
,我有 ServerA。在 上 203.0.113.150:777
,我有 ServerB。伺服器將如何處理請求0.0.0.0:777
?我的意思是當同一個連接埠(777
)正在不同的介面上偵聽時。還是我理解的一切都是錯的?
答案1
伺服器將如何處理對 0.0.0.0:777 的請求
它不會 - 你不能向 0.0.0.0 發送請求,就這樣。
這意味著主機將對每個請求(在連接埠 777 上)做出反應,無論使用什麼 IP 位址。顯然伺服器必須配置IP位址,但這意味著伺服器進程不會做任何額外的過濾。
答案2
0.0.0.0
並127.0.0.1
在內部使用。0.0.0.0
用於指定所有接口,並127.0.0.1
指定環回接口。它們與傳入流量無關。
如果客戶端需要連接到您的伺服器,他們將需要指定介面的實際 IP 位址,例如192.0.2.40:777
或203.0.113.150:777
。這就是您的 Linux 機器如何知道哪台伺服器應該服務該請求。 (如果客戶端嘗試連接到127.0.0.1
或0.0.0.0
,他們將連接到他們自己的系統,不是你的。