重定向 iptables 的例外情况

重定向 iptables 的例外情况

如何做出例外以不重定向到 localhost:port?

iptables -t nat -A OUTPUT -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:8000

答案1

两种变体:

变体 1:在规则中排除本地主机目标:

iptables -t nat -A OUTPUT -p tcp -m tcp ! -d 127.0.0.1 --dport 80 -j DNAT --to-destination 127.0.0.1:8000

这是一个快速、简单、有效但有限的解决方案。

变体 2:在此规则之前创建一条不重定向的规则。它将匹配并完成此链的处理,因此以下规则将不会被执行,包括您的重定向:

iptables -t nat -A OUTPUT -p tcp -m tcp --dport 80 -d 127.0.0.1 -j ACCEPT
iptables -t nat -A OUTPUT -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:8000

这种变体更为通用,适用于您有一长串无法在单个规则中一起表达的例外情况。

答案2

你能解释一下你想做什么吗?如果我没记错的话,你的规则只对本地主机有效!?

要想有“例外”,只需在它前面添加相同的行并进行更改,-j ACCEPT当然还有例外的条件。

相关内容