温馨提示×

debian iptables如何限速下载

小樊
50
2026-10-25 06:29:27
栏目: 智能运维

在 Debian 上使用 iptables 进行“下载限速”,本质上是**限制入站流量(INPUT / FORWARD)**的速率。
注意:iptables 本身限速能力有限,更专业的是 tc(traffic control)+ htb,但 iptables 可以用 limit 或结合 hashlimit 做简单限速。

下面分几种常见场景说明。


一、用 iptables limit 模块(最简单,但不够精确)

1️⃣ 限制本机下载速度(整体)

例如:限制每秒最多 100 个包(粗略限速)

iptables -A INPUT -p tcp --dport 0:65535 -m limit --limit 100/s -j ACCEPT
iptables -A INPUT -p tcp -j DROP

⚠️ 缺点:

  • 按“包数”限速,不是按带宽
  • 容易被突发流量突破
  • 不适合精确限速

二、推荐方案:iptables + tc(真正限速)

场景:限制某 IP 下载速度(如 1Mbps)

1️⃣ 给网卡建立 HTB 队列

假设网卡是 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

2️⃣ 用 iptables 打标记

iptables -A INPUT -s 192.168.1.100 -j MARK --set-mark 10

3️⃣ tc 根据 mark 限速

tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 10 fw flowid 1:10

✅ 效果:

  • 192.168.1.100 下载速度被限制为 1Mbps

三、限制某个端口下载(如 80/443)

iptables -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 / 转发流量(FORWARD)

如果是 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

如果你愿意,可以告诉我:

  • Debian 版本
  • 网卡名
  • 要限速的是本机 / 局域网 / Docker / 某个 IP
  • 目标速度(如 5Mbps)

我可以给你一条直接能用的命令。

0 踩