我有以下规则:
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规则。 是否有可能过滤预先路由的数据包?
我们来分析一下你的规则。
-t nat -I PREROUTING -d 1.2.3.4 ... -j DNAT --to 10.11.12.16
这里, dest-address为1.2.3.4的报文是DNAT-ed。 这意味着dest-address将被10.11.12.16取代
-I FORWARD -s 10.11.12.16 ... -j RTORR
该规则匹配src-address为10.11.12.16的报文。 如果你期望第一条规则的DNAT-D匹配这个规则……好吧,再想一想。
正如你所看到的,第一条规则改变了dest-address ,而这个规则试图与src-address匹配。