
我在網關機器(192.168.0.1)上有以下 iptables 規則。我想將連接埠 192.168.0.1:80 轉送到 192.168.0.2:8080。但我需要維護原始來源ip,以便原始伺服器可以獲得客戶端ip。我有以下規則,但這會更改客戶端的來源 IP。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:8080
iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.2 --dport 8080 -j SNAT --to-source 192.168.0.1
在這種情況下還有其他規則可以使用嗎?
答案1
嘗試刪除包含 SNAT 規則的第二行。不需要這個規則。
另外你有多少張網卡?兩台機器192.168.0.2和192.168.0.1是否在同一個網路上?如果是這種情況,電腦 192.168.0.2 將使用什麼路由來轉送在 tcp 連接埠 8080 上收到的封包?它將如何路由這個資料包?