IPTABLES PREROUTING 子网内所有流量透明地发送给代理,除了

IPTABLES PREROUTING 子网内所有流量透明地发送给代理,除了

我在 192.168.255.0 和 172.16.255.0 之间有一个防火墙。两个 /24。192.168.255.0 被 DNAT 到代理服务器 @ 172.16.255.5:8080。我希望这种情况继续,但我有一个 Web 服务器 172.16.255.50,我想直接连接到它进行测试。我试过这个语句,但 iptables 在尝试添加它时一直出错

iptables -I PREROUTING -i eth1 -d \! 172.16.255.50 -p tcp --dport 80 -j DNAT --to-destination 172.16.255.5:8080

谢谢!!

答案1

这里有 2 个问题

  1. 您离开了-t nat,所以它试图添加到表PREROUTINGfilter不存在的链中。
  2. ‘不’(!)必须放在 之前-d

工作解决方案:

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


或者,另一种方法是将一条规则放在匹配异常流量的规则之前,但不执行任何操作。一旦遇到第一个匹配的规则,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

相关内容