温馨提示×

怎样用debian iptables限速

小樊
49
2026-09-07 18:12:05
栏目: 智能运维

在 Debian 上使用 iptables 进行限速,通常结合 hashlimit 或 limit 模块来实现。下面按常见场景给你说明。


一、基本概念

iptables 本身不能直接限制带宽(如 1Mbps),它只能:

  • 限制连接速率(每秒/每分连接数)
  • 限制包速率(每秒包数)

如果你要限制真实带宽(如限速 100KB/s),需要配合 tc(traffic control)。


二、使用 limit 限制速率(简单)

1️⃣ 限制 ICMP(ping)速率

例如:每秒最多 5 个包,突发 10 个

iptables -A INPUT -p icmp --icmp-type echo-request \
  -m limit --limit 5/s --limit-burst 10 \
  -j ACCEPT

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

三、使用 hashlimit 按 IP 限速(推荐)

2️⃣ 限制每个 IP 的新连接速率(防 CC)

例如:每个 IP 每秒最多 10 个新连接

iptables -A INPUT -p tcp --syn \
  -m hashlimit \
  --hashlimit-name conn_limit \
  --hashlimit-mode srcip \
  --hashlimit-above 10/s \
  -j DROP

3️⃣ 限制每个 IP 的 HTTP 请求速率

iptables -A INPUT -p tcp --dport 80 \
  -m hashlimit \
  --hashlimit-name http_limit \
  --hashlimit-mode srcip \
  --hashlimit-above 20/s \
  -j DROP

四、限制上传 / 下载带宽(必须用 tc)

iptables 做不到真正的带宽限速,示例用 tc:

4️⃣ 限制 eth0 下载为 1Mbps

tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms

5️⃣ 删除限速

tc qdisc del dev eth0 root

五、开机自动生效

保存 iptables 规则

apt install iptables-persistent
netfilter-persistent save

六、常见组合建议

需求 推荐方案
防 ping 洪水 limit
防 CC 攻击 hashlimit
限制真实带宽 tc
限制单 IP 带宽 tc + ip
Docker 限速 docker --blkio / tc

如果你能告诉我:

  • 是 入站还是出站
  • 是 单 IP 还是整体
  • 想限制 连接数 / 包 / 带宽

我可以给你更精确的命令。

0 踩