是否有可能在 iptables 中过滤预路由的数据包?

是否有可能在 iptables 中过滤预路由的数据包?

我有以下规则:

iptables -t nat -I PREROUTING -d 1.2.3.4 -p udp -m udp --dport 6881 -j DNAT --to-destination 10.11.12.6
iptables -N RTORR
iptables -I FORWARD -s 10.11.12.16 -p udp -m udp --sport 6881 -j RTORR
iptables -A RTORR -d 2.3.4.5 -j ACCEPT
iptables -A RTORR -j DROP

但过滤不起作用。看起来数据包没有达到 FILTER 规则。是否可以过滤预路由的数据包?

答案1

让我们分析一下你的规则。

-t nat -I PREROUTING -d 1.2.3.4 ... -j DNAT --to 10.11.12.16

这里,带有目的地址1.2.3.4 的 IP 地址经过 ​​DNAT 处理。这意味着目的地址将被替换为 10.11.12.16

-I FORWARD -s 10.11.12.16 ... -j RTORR

此规则匹配以下数据包源地址10.11.12.16。如果您希望通过第一条规则进行 DNAT 处理的数据包能够与该规则匹配……那么,请再想一想。

如你所见,第一条规则改变了目的地址,而此规则尝试匹配源地址

相关内容