![iptables:DNAT 之前过滤](https://linux22.com/image/801535/iptables%EF%BC%9ADNAT%20%E4%B9%8B%E5%89%8D%E8%BF%87%E6%BB%A4.png)
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
第一条规则不起作用,因为 nat 在过滤之前进行处理。有什么办法可以绕过它吗?
答案1
DNAT 之前不需要过滤任何内容。你问错了问题。
你应该看看手册 iptables-extensionsconntrack
特别是带有选项的模块--ctstate DNAT
、、--ctorigdst
和--ctorigdstport
。
答案2
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