如何讓 iptables NAT 所有封包(目標位址來自 192.168.254.0/24 子網路的封包除外)?
答案1
如果我很理解你,那麼使用帶有否定的選項應該會相當容易-d
。例如,這樣的規則:
$ iptables -A POSTROUTING ! -d 192.168.254.0/24 -j SNAT --to-source new_source_ip
當然,您可以根據您的需求更改規則。這會變更發送至指定子網路以外的任何目的地的所有資料包的來源 IP。
答案2
在我看來,以下 iptables 指令順序是可行的:
1. iptables -t nat -A POSTROUTING -s 192.168.254.0/24 -o eth0 -j RETURN
2. iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -o eth0 -j MASQUERADE
規則 1 將匹配您的網絡,並且不會偽裝規則 2 將偽裝所有網絡,但通常給出 0.0.0.0 通配符並不是一個好主意(我什至不確定它是否會起作用)。您應該有選擇地添加您想要偽裝的所有網絡,其餘的網絡將不會偽裝。