如何将每个NAT客户端的stream量绑定到外部IP地址?

我有一个NAT路由器有2个IP地址,可以说222.222.222.222222.222.222.222与接口eth0eth0:1相关联。

我有两台通过tap0 (OpenVPN客户端)连接到此NAT网关的服务器,IP为10.0.0.110.0.0.2 。 我希望他们冒充每个NAT路由器的IP地址。

到目前为止,我做了以下的iptables规则:

 iptables -A PREROUTING -d 111.111.111.111/32 -i eth0 -j DNAT --to-dest 10.0.0.1 iptables -A PREROUTING -d 222.222.222.222/32 -i eth0 -j DNAT --to-dest 10.0.0.2 

这是将所有传入连接路由到正确的服务器。 而且,传出连接仍然使用相同的IP地址访问网页。 如何创build一个规则来强制这些本地服务器的所有传出stream量使用其各自的外部IP地址,并实现我想要的模拟效果?

好吧,我最终自己弄明白了,但是我的问题是,这个规则必须添加在-A POSTROUTING -o eth0 -j MASQUERADE

 iptables -t nat -A POSTROUTING -s 10.0.0.1/32 -o eth0 -j SNAT --to 111.111.111.111 iptables -t nat -A POSTROUTING -s 10.0.0.2/32 -o eth0 -j SNAT --to 222.222.222.222 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE