Linux 路由表、隧道和 iptables

Linux 路由表、隧道和 iptables

我試圖弄清楚所有這些組件是如何協同工作的。

我的主要目標是將流量(連接埠 80,443)從本機主機(Windows 7)網路路由到遠端網路上的遠端主機。意思是,我想存取 10.50.1.2:80 並存取遠端主機(連接埠 4111)。

第一步,我嘗試使用以下命令新增至本機 Windows 主機的路由:

route ADD “10.50.1.0” MASK “255.255.255.0” “remote public ip”. 

這不起作用。誰能解釋為什麼?

然後嘗試將位址路由到本地Linux伺服器

route ADD “10.50.1.0” MASK “255.255.255.0” “192.168.10.78”

比我在預路由中使用 iptables 和 DNAT 將資料包發送到遠端公共 IP

iptables -t nat -A PREROUTING -d 10.50.1.2 -dport 80 -j DNAT --to-destination publicIP:80

流量確實到達了 192.168.10.78(透過 tcpdump 驗證),但沒有到達遠端主機。誰能解釋為什麼?我什至嘗試在後路由中使用偽裝。

然後我開始搜索並發現了隧道。

誰能解釋為什麼第一次和第二次嘗試不起作用以及隧道如何提供幫助?

答案1

你的第一次嘗試: route ADD “10.50.1.0” MASK “255.255.255.0” “remote public ip”

這將為網路 10.50.0/24 設定一條路由,可透過 存取該路由remote public ip。私人 IP 通常不會在互聯網上路由,您可能會明白為什麼這不起作用。

你的第二次嘗試: route ADD “10.50.1.0” MASK “255.255.255.0” “192.168.10.78”

透過主機 192.168.10.78 設定 10.50.1.0/24 網路的路由,如果該主機未配置為路由該網路的流量,則該網路將無處可去,甚至無法到達遠端電腦。您說您確實配置了 NAT/DNAT,這將使機器能夠執行此操作,但我不確定正確的配置是什麼。如果您只對網路流量感興趣,可以考慮使用代理程式嗎?

至於隧道,它是將原始請求封裝在另一個連線中的過程。但你必須更具體地說明你在什麼情況下使用它,因為可能會有一些細微差別,從而產生巨大的差異。

相關內容