我有一个多WANnetworking。 默认网关是router0。 我在这里使用router1来连接受限制的networking。
WAN: 172.16.5.0/24 LAN: 192.168.1.0/24 router0: 192.168.1.1, [Internet], default gw [Internet] router1: 192.168.1.3(eth2), 172.16.5.6(eth0), default gw 172.16.5.254
我想为局域网用户转发WAN SSH服务器10.1.2.3:22到192.168.1.3:999。
广域网通过172.16.5.254提供从172.16.5.6到10.1.2.3的路由。
我在router1上设置这些iptables ,但它不起作用:
iptables -t nat -A PREROUTING -p tcp --dport 999 -i eth2 -j DNAT --to-destination 10.1.2.3:22:22 iptables -t nat -A POSTROUTING -p tcp -s 10.1.2.3:22 -j SNAT --to-source 192.168.1.3:999
我怎样才能做到这一点?
我不完全明白你的要求,但我认为你只是为了这个:
iptables -t nat -A PREROUTING -d 192.168.1.3 -p tcp --dport 999 -i eth2 -j DNAT --to-destination 10.1.2.3:22:22
当stream量通过盒子并通过不同的接口(eth0)离开盒子时,不需要任何其他规则,返回的数据包在盒子中传回时将被正确处理和修改。
请注意,服务器必须有一条path返回到始发客户端。 如果情况并非如此(服务器没有到客户端的路由),那么只需要SNAT,并且您可能需要传出接口地址作为源:
iptables -t nat -A POSTROUTING -d 10.1.2.3 -p tcp --dport 22 -j SNAT --to-source 172.16.5.6