
NAT 的工作原理如下嗎?
我的電腦 192.168.1.5 在連接埠 5555 上發送請求(例如),該請求發送到我的路由器 194.564.23.67(公共 IP),然後 NAT 更改端口並轉發請求和端口,並等待來自目標 IP 的響應港口。
有沒有辦法從我的電腦 192.168.1.5 決定路由器正在哪個連接埠等待回應。
答案1
請注意,對於 TCP 和 UDP 會話,有兩個連接埠。來源連接埠和目標連接埠。因此,當您提到正在發送的連接埠時,討論 NAT 會更容易到和正在發送的端口從。
例如,當您向網頁伺服器發送請求時,它會從臨時連接埠(在連接期間開啟的連接埠)傳送至連接埠 80,該連接埠高於 1024。 。當該電腦仍處於活動狀態時,無法從該電腦上的該來源連接埠建立其他連線。
通常,Web伺服器會在連接埠80上接收請求,並發送回复到埠 5555,以及從端口 80。
當涉及 NAT,特別是 PAT(連接埠位址轉換)時,許多設備必須共享一個公共 IP 位址,每個設備使用的原始連接埠不能被認為是唯一的 - 兩台電腦可以使用連接埠 5555 作為其來源端口,並且因此,一旦回覆封包從網路伺服器返迴路由器,就不清楚將其發送到哪裡。
因此,除了在 NAT 期間將來源 IP 位址變更為路由器的公共位址之外,還將來源連接埠變更為從路由器角度來看唯一的連接埠。這是在狀態表中維護的。任何回复資料包將從網路伺服器發送到路由器選擇的端口,然後 NAT 將被撤消並使用其打開的端口傳遞到內部設備。
很少有國產路由器會讓你看到狀態表。在 Cisco 路由器上,您可以執行下列操作
show ip nat trans
這將顯示所有有效 NAT 的清單。
唯一的其他方法是檢查來自路由器的傳出連接 - 這將要求流量通過您控制的設備,這在家庭環境中又不太可能。