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。

為什麼這兩個數字不相等?

相關內容