在 CentOS(使用 iptables) 中限制流量,常见手段有 限制连接数、限制速率(限速)、限制并发。下面按常用场景给你一个实用总结(含示例命令)。
iptables -A INPUT -p tcp --dport 80 -m limit \
--limit 10/sec --limit-burst 20 -j ACCEPT
含义:
✅ 常用于:
iptables -A INPUT -p icmp --icmp-type echo-request \
-m limit --limit 1/sec --limit-burst 5 -j ACCEPT
防止 ping flood。
iptables -A INPUT -p tcp --dport 22 \
-m connlimit --connlimit-above 3 -j REJECT
含义:
iptables -A INPUT -p tcp --dport 80 \
-m connlimit --connlimit-above 20 -j REJECT
⚠️ iptables 本身不能直接限制带宽,但可配合 tc(Traffic Control) 使用。
tc qdisc add dev eth0 root tbf \
rate 1mbit burst 32kbit latency 400ms
这是 Linux 流量整形,不是 iptables,但生产环境常用。
iptables -A INPUT -s 192.168.1.100 -p tcp --dport 80 \
-m limit --limit 5/sec -j ACCEPT
iptables -A INPUT -s 192.168.1.100 -p tcp --dport 80 -j DROP
iptables -L -n -v
iptables -L --line-numbers
iptables -D INPUT 3
CentOS 7 默认使用 firewalld,iptables 规则可能被覆盖。
✅ 建议:
systemctl stop firewalld
systemctl disable firewalld
yum install -y iptables-services
systemctl enable iptables
systemctl start iptables
✅ SSH 防护
iptables -A INPUT -p tcp --dport 22 \
-m limit --limit 3/min -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
✅ Web 防 CC
如果你愿意,可以告诉我:
我可以给你一套 可直接用的完整规则。