可以的,CentOS 下的 iptables 本身可以做限速(流量控制/限流),但能力有限,通常结合 iptables + tc(traffic control) 使用效果更好。下面分情况说明。
iptables 可以通过 limit / hashlimit 模块实现限速或限连接。
limit 模块(限制包速率)适合防止洪水攻击、限制请求频率。
# 每秒最多 10 个包,突发 20 个
iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/s --limit-burst 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
⚠️ 注意:
hashlimit(按 IP 限速)更适合“每个 IP 限速”。
# 每个 IP 每秒最多 20 个包
iptables -A INPUT -p tcp --dport 22 -m hashlimit \
--hashlimit-mode srcip \
--hashlimit-above 20/sec \
--hashlimit-name ssh_limit \
-j DROP
也可以限制连接数:
# 每个 IP 最多 5 个 SSH 连接
iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 5 -j DROP
如果你要的是 “限制某个 IP / 端口的带宽(如 1Mbps)”,iptables alone 不够,要用 tc(Traffic Control)。
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
tc qdisc add dev eth0 root handle 1: htb
tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.1.100 flowid 1:1
limit、hashlimit、connlimit)| 需求 | 推荐方案 |
|---|---|
| 限制请求频率 | iptables limit / hashlimit |
| 限制连接数 | connlimit |
| 限制带宽(MB/s) | iptables + tc |
| 精细 QoS | tc(HTB / HFSC) |
如果你能告诉我:
我可以直接给你一份可复制的配置文件。