在CentOS系统中,使用iptables限制并发连接数可以通过设置连接跟踪模块(conntrack)的参数来实现。以下是一些示例规则,用于限制特定IP地址或端口的并发连接数。
# 限制每个IP地址的并发连接数为10
iptables -A INPUT -p tcp --syn --dport 80 -m conntrack --ctstate NEW -m recent --set --name LIMIT_IP
iptables -A INPUT -p tcp --syn --dport 80 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 10 --name LIMIT_IP -j DROP
这里,我们限制了每个IP地址在60秒内最多只能建立10个新的HTTP连接(端口80)。
# 限制端口80的并发连接数为20
iptables -A INPUT -p tcp --syn --dport 80 -m conntrack --ctstate NEW -m recent --set --name LIMIT_PORT
iptables -A INPUT -p tcp --syn --dport 80 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 20 --name LIMIT_PORT -j DROP
这里,我们限制了端口80在60秒内最多只能建立20个新的连接。
# 限制每个IP地址在端口80上的并发连接数为5
iptables -A INPUT -p tcp --syn --dport 80 -m conntrack --ctstate NEW -m recent --set --name LIMIT_IP_PORT
iptables -A INPUT -p tcp --syn --dport 80 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 5 --name LIMIT_IP_PORT -j DROP
这里,我们限制了每个IP地址在端口80上在60秒内最多只能建立5个新的连接。
注意:这些规则仅适用于TCP连接。如果你需要限制UDP或其他协议的连接数,你需要相应地修改规则。
最后,不要忘记保存iptables规则,以便在系统重启后仍然生效。可以使用以下命令保存规则:
service iptables save
或者
iptables-save > /etc/sysconfig/iptables