在 Debian 下使用 iptables 限速,通常要结合 tc(Traffic Control) 或使用 iptables 的 limit / hashlimit 模块。下面按常见场景说明。
iptables -A INPUT -p icmp --icmp-type echo-request \
-m limit --limit 1/s --limit-burst 5 \
-j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
说明:
--limit 1/s:每秒最多 1 个包--limit-burst 5:突发最多 5 个iptables -A INPUT -p tcp --dport 22 \
-m conntrack --ctstate NEW \
-m limit --limit 3/min --limit-burst 3 \
-j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
iptables -A INPUT -p tcp --dport 80 \
-m hashlimit \
--hashlimit-name http_limit \
--hashlimit-mode srcip \
--hashlimit-above 10/min \
--hashlimit-burst 5 \
-j DROP
参数说明:
srcip:按源 IP 限速10/min:每分钟最多 10 个新连接burst:突发允许数量✅ 推荐用于 单 IP 限速
iptables 不能直接限制带宽大小,只能限制包/连接速率。
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
tc qdisc del dev eth0 root
iptables -A OUTPUT -t mangle -p tcp --dport 80 -j MARK --set-mark 10
tc qdisc add dev eth0 root handle 1: htb
tc class add dev eth0 parent 1: classid 1:10 htb rate 1mbit
tc filter add dev eth0 parent 1: protocol ip handle 10 fw classid 1:10
| 需求 | 推荐方式 |
|---|---|
| 防 ping / 防爆破 | iptables limit |
| 单 IP 限速 | iptables hashlimit |
| 带宽限制 | tc |
| 精细控制 | iptables + tc |
如果你能说明:
我可以给你 直接可用的完整规则。