
我在 LAN 內有一台伺服器 (S1),其中路由器不在我的控制範圍內。在伺服器上安裝了 openvpn,我可以使用 ssh 登入它。 LAN 上有另一台伺服器(S2),我想將 S2 上的連接埠轉送到連接埠 S1。
如果我做
sudo iptables -t nat -A PREROUTING -p tcp -m tcp -d S1 --dport 8001 -j DNAT --to-destination S2:80
然後嘗試從我的電腦連接 S1:8001 S1 的 LAN 介面:
IP **my_vpn_ip**.48174 > S2.80: Flags [S], seq 4243753453, win 14600, options [mss 1368,sackOK,TS val 89266048 ecr 0,nop,wscale 7], length 0
顯然它不起作用,因為 S2 沒有到我的計算機的路由,無法發送回复。是否可以欺騙 S1 上的來源來接收資料包,然後進行 NAT?
S2 上無法更改路由,因為它是功能非常有限的 IP 攝影機。
答案1
在您要連接的主機上設定 SNAT/偽裝。這樣您的來源位址就會被修改為顯示為來自 NAT 方塊的代理程式。
像這樣簡單的規則可能會滿足您的要求。
iptables -t nat -A POSTROUTING --destination S2 -j MASQ