Iptables

通過與預設網關不同的網關進行 NAT?

  • July 24, 2017

我在 Synology NAS 上進行了一些棘手的設置:

  1. 有一個 VPN 隧道啟動並執行,它也作為預設網關(tun0,GW:10.129.15.229)。這是有意的並且應該保持這樣,以便在 NAS 上啟動的所有內容都通過 VPN。
  2. 我現在想在我的本地網路上使用 NAT(由私有網路 192.168.2.0/24 中的其他電腦啟動,使用本地網關 192.168.2.1)。

只需使用這樣的 iptables 規則打開 NAT modprobe iptable_nat iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to-source 192.168.2.20

似乎干擾了 1 中命名的預設 GW(沒有任何反應/不起作用)。

有什麼想法可以設置嗎?我可以以某種方式用 iptables 標記這些包,然後為這些標記的包明確設置到 192.168.2.1 的路由嗎?

非常感謝!

結果是這樣的:

iptables --append FORWARD --in-interface eth1 -j ACCEPT
iptables --append FORWARD --in-interface eth0 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface tun0 -j MASQUERADE

echo 10 vpn >> /etc/iproute2/rt_tables
ip rule add from 192.168.2.0/24 lookup vpn
ip route add default via 192.168.2.1 table vpn

192.168.2.1 是我要路由的本地網關,192.168.2.X 我的本地網路。

引用自:https://serverfault.com/questions/863050