在 Debian 系统中,可以使用 iptables 结合 流量匹配模块来实现流量限制。常见需求包括:限制每秒包数(PPS)、带宽速率、连接数等。下面按常见场景给你一些实用示例。
iptables -A INPUT -p icmp --icmp-type echo-request \
-m limit --limit 1/second --limit-burst 5 \
-j ACCEPT
iptables -A INPUT -p icmp -j DROP
含义:
iptables -A INPUT -p tcp --syn \
-m limit --limit 10/second --limit-burst 20 \
-j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
iptables -A INPUT -s 192.168.1.100 \
-m limit --limit 5/second --limit-burst 10 \
-j ACCEPT
iptables -A INPUT -s 192.168.1.100 -j DROP
iptables -A INPUT -p tcp --dport 22 \
-m limit --limit 3/min --limit-burst 5 \
-j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
⚠️ iptables 不能直接限制带宽(如 1Mbps)
需要配合 tc(Traffic Control) 使用。
tc qdisc add dev eth0 root tbf \
rate 1mbit burst 32kbit latency 400ms
查看:
tc qdisc show dev eth0
删除:
tc qdisc del dev eth0 root
iptables -A INPUT -p tcp --dport 22 \
-m connlimit --connlimit-above 10 \
-j REJECT
apt install iptables-persistent
netfilter-persistent save
否则重启后规则会丢失。
iptables -L -n -v
iptables -L INPUT -v
| 需求 | 方法 |
|---|---|
| 限制包速率 | -m limit |
| 限制连接数 | -m connlimit |
| 限制带宽 | tc |
| 防攻击 | iptables + limit |
| 长期生效 | iptables-persistent |
如果你能说明 具体场景(如:限制某个 IP、限制下载速度、限制 Docker、限制某个端口),我可以给你更精确的配置方案。