我想知道當您位於同一網路(NAT 後面)時 tcp/udp 打洞是否仍然有效,以及資料包的路徑是什麼。
在同一網路上使用打洞時會發生的情況是,它將發送具有相同目標和來源位址的資料包。只有來源連接埠和目標連接埠會有所不同。我想啟用 NAT 環回的路由器將按其應有的方式處理此問題,但其他路由器呢?他們會丟棄資料包,還是來自 ISP 的路由器(第一個?)會將資料包彈回並處理好?
我很想知道,因為我正在考慮使用這種技術來規避網絡中對等點之間的阻止(例如學校網絡,客戶端只能訪問互聯網,但彼此之間的任何聯繫都被阻止)。唯一的其他選擇是使用中間人作為代理(隧道?)。這樣做的缺點是,您必須擁有一台比僅進行打孔的伺服器具有更多頻寬的伺服器。延遲也會顯著增加。
答案1
這就是所謂的 NAT Hairpinning。即使兩個對等體位於同一 NAT 中,支援 Hairpinning 的 NAT 也可以進行轉換。
答案2
只有當目標網路與發送網路不同時,路由器才會「路由」。
因此,如果來源電腦的 IP 位址為 10.1.1.5,遮罩為 255.255.255.0,而目標位址為 10.1.1.50,則 NAT 路由器將忽略它,只有交換機會處理它。
如果目的地是 10.2.1.50 那麼您會需要路由器,但根據路由器配置,路由可能仍然不會到達 NAT 部分,因為您通常不會在內部網路上進行 NAT。 NAT 會增加您不想要的開銷和問題,並且您永遠不應該在內部需要 NAT。
所以你的建議是行不通的。
事實上,如果點對點流量被阻止,這可能是由於某種透明過濾器而發生的。
解決這個問題的唯一方法是找到一個管道做在對等點之間工作,然後在此之上運行加密通道。
最後,由於點對點連接被阻止,請嘗試繞過該阻止將要違反您的服務條款 - 您將被踢出網絡,可能被開除(從學校),甚至面臨刑事起訴 - 真的不值得!設定您自己的 WiFi 網路來代替點對點流量。