如何做出例外以不重定向到 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
当然还有例外的条件。