iptables:在DNAT之前过滤

iptables -t filter -A OUTPUT -d 1.2.3.4 -j DROP iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner abc -j DNAT --to 127.0.0.1:121 

第一条规则不起作用,因为它是在过滤之前处理的。 任何方式绕过它?

您不需要在DNAT之前过滤任何东西。 你问错误的问题。

你应该看看man iptables-extensions特别是带有选项“–ctate DNAT , ctorigdst , and –ctorigdstport”的模块conntrack

 iptables -t nat -A OUTPUT -d 1.2.3.4 -j ACCEPT iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner abc -j DNAT --to 127.0.0.1:121