INPUT 链中的 IPTables 数据包计数与子链不匹配

INPUT 链中的 IPTables 数据包计数与子链不匹配

在我的服务器上,为简单起见,我有三条规则:

iptables -t mangle -N RATE-LIMIT
iptables -t mangle -A RATE-LIMIT -m hashlimit --hashlimit-mode srcip --hashlimit-upto 100/sec --hashlimit-burst 20 --hashlimit-name conn_rate_limit -j RETURN
iptables -t mangle -A RATE-LIMIT -j DROP
iptables -t mangle -A INPUT -p tcp --dport 25565 ! -i lo -j RATE-LIMIT

这对我来说应该是可行的,但我对以下详细输出感到疑惑:

Chain INPUT (policy ACCEPT 11M packets, 921M bytes)
 pkts bytes target     prot opt in     out     source               destination
5699K  264M RATE-LIMIT  tcp  --  !lo    *       0.0.0.0/0            0.0.0.0/0            tcp dpt:25565

...

Chain RATE-LIMIT (1 references)
 pkts bytes target     prot opt in     out     source               destination
3060K  158M RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: up to 100/sec burst 20 mode srcip
84990 3882K DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0

第一条规则匹配来自特定源 IP 的每个低于 100 pps 的数据包,如果低于,则应RETURN返回INPUT并继续。第二条规则只是丢弃超过此限制的每个数据包,并且基本上应充当此链的默认策略。

INPUT链中,大约有 5.700k 个数据包跳入了我的RATE-LIMIT链中。但如果我将RATE-LIMIT链中的两个规则加在一起,我得到的数字就会小得多。据我了解,它们加起来应该为 5.700k。

为什么这两个数字不相等?

相关内容