
是否可以從專用網路存取公共伺服器(即具有公用 IP 位址的伺服器)而無需 NAT?換句話說,如果我給伺服器提供公網位址,提供內部網路主機私人位址,那麼內網是否可以提供公共服務呢?
答案1
不。
專用網路很可能能夠將封包傳送到公用 IP 位址(假設專用網路有正確配置的路由器,該路由器具有公共網際網路和專用內部網路上的介面)。但是公共互聯網上的伺服器將無法將回復發送回未經過 NAT 處理的專用網絡,原因很簡單,因為伺服器不知道將該回應資料傳送到哪裡。
對於要在網路上相互進行 IP 對話的計算機,它們必須知道正在對話的其他人的 IP 位址,以及取得該 IP 位址的下一步是什麼。如果 IP 位址位於同一子網路中,則您的電腦將只詢問本機子網路上“誰有 IP 位址 wxyz”,然後直接與回應的電腦對話。如果 IP 不在同一子網路中,則電腦將遵循其路由表中的說明(通常,將封包傳送至 IP 設定中列為「預設閘道」的本機路由器)。
接收資料包的每個網路間節點(此時通常是路由器)將查看目標 IP 位址,並做出類似的決定,確定誰是將資料包傳送到最終目的地的鏈中的下一跳。如此周而復始,直到最終到達它應該到達的地方。
但這一切都依賴封包標頭中列出的目的地(按照 IP 協定的要求),而網關和路由器知道如何將資料傳送到 IP 所屬的網路。如果您有一個未經 NAT 處理的私人 IP 位址,那麼這些路由器將不知道如何傳遞封包,並且會丟棄它。它變成了電子版的“死信”,永遠消失了。
NAT 的作用是使用公用 IP 位址(或位址英語)作為中間人來代理您的專用網路的通訊。當它看到出站流量時,它會更改標頭的“在該位址回复我”部分以使用自己的公共 IP; NAT 設備保存一個查找表,記錄正在為誰中繼通信,以便當響應到來時,他可以將它們轉發到專用網路上的正確 IP。如果沒有位址轉換功能,專用網路上的電腦就無法與公共互聯網上的電腦進行 TCP/IP 通訊。
答案2
除了頂部的“否”之外,@Ruscal 的答案是正確的,但不完整。
答案是非常合格的「是的,有時,能力有限,取決於它的設定方式」。
至少有 2 個解決方法 -但所有這些都需要一個可以透過私有IP存取但又可以存取互聯網的系統,例如具有公共IP的第二個接口- 這在路由器上很常見,在伺服器上也並非聞所未聞(但並不常見)
在上述情況下,解決方法包括:
- 使用該系統作為代理。
- 在該系統和外部系統之間設定 VPN,然後使用 VPN 或隧道穿過該系統。