Iptables
通過與預設網關不同的網關進行 NAT?
我在 Synology NAS 上進行了一些棘手的設置:
- 有一個 VPN 隧道啟動並執行,它也作為預設網關(tun0,GW:10.129.15.229)。這是有意的並且應該保持這樣,以便在 NAS 上啟動的所有內容都通過 VPN。
- 我現在想在我的本地網路上使用 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 我的本地網路。