我在 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 个问题
- 您离开了
-t nat
,所以它试图添加到表PREROUTING
中filter
不存在的链中。 - ‘不’(
!
)必须放在 之前-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