使用 iptables 對封包進行選擇性 NAT

使用 iptables 對封包進行選擇性 NAT

如何讓 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 通配符並不是一個好主意(我什至不確定它是否會起作用)。您應該有選擇地添加您想要偽裝的所有網絡,其餘的網絡將不會偽裝。

相關內容