我有一个192.168.255.0和172.16.255.0之间的防火墙。 两个/ 24。 192.168.255.0 DNAT'd到代理服务器@ 172.16.255.5:8080。 我想这个继续,但是我有一个web服务器172.16.255.50,我想直接连接到testing。 我试过这个声明,但是当试图添加它的时候,iptables不断地发生错误
iptables -I PREROUTING -i eth1 -d \! 172.16.255.50 -p tcp --dport 80 -j DNAT --to-destination 172.16.255.5:8080
谢谢!!
这里有两个问题
-t nat ,所以它试图添加到filter表中的PREROUTING链中,而这个链并不存在。 ! )必须在-d之前。 工作scheme:
iptables -t nat -I PREROUTING -i eth1 \! -d 172.16.255.50 -p tcp --dport 80 -j DNAT --to-destination 172.16.255.5:8080
或者,另一种做这样的事情的方法是将一个规则放在与exceptionstream量相匹配的规则之前,并且不对其执行任何操作。 Iptables一旦遇到第一个匹配规则就停下来,所以它永远不会到达后面的规则。
iptables -t nat -A PREROUTING -i eth1 -d 172.16.255.50 -p tcp --dport 80 iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to-destination 172.16.255.5:8080