在 Debian 上使用 iptables 进行“下载限速”,本质上是**限制入站流量(INPUT / FORWARD)**的速率。
注意:iptables 本身限速能力有限,更专业的是 tc(traffic control)+ htb,但 iptables 可以用 limit 或结合 hashlimit 做简单限速。
下面分几种常见场景说明。
例如:限制每秒最多 100 个包(粗略限速)
iptables -A INPUT -p tcp --dport 0:65535 -m limit --limit 100/s -j ACCEPT
iptables -A INPUT -p tcp -j DROP
⚠️ 缺点:
假设网卡是 eth0
tc qdisc add dev eth0 root handle 1: htb default 10
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit
# 限速类(1mbit)
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit ceil 1mbit
iptables -A INPUT -s 192.168.1.100 -j MARK --set-mark 10
tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 10 fw flowid 1:10
✅ 效果:
192.168.1.100 下载速度被限制为 1Mbpsiptables -A INPUT -p tcp --dport 80 -j MARK --set-mark 20
tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 20 fw flowid 1:20
如果是 Docker 或软路由:
iptables -A FORWARD -d 192.168.1.100 -j MARK --set-mark 30
tc qdisc del dev eth0 root
iptables -F
| 需求 | 推荐 |
|---|---|
| 精确限速 | ✅ tc + htb |
| 防爆破 / 扫描 | ✅ iptables hashlimit |
| 简单测试 | ⚠️ iptables limit |
如果你愿意,可以告诉我:
我可以给你一条直接能用的命令。