网站、APP、小程序、软件、硬件定制开发,联系QQ:99605319

Linux服务器IP连接数限制配置


一、限制单个IP的同时连接数

使用connlimit模块限制同一IP的最大并发连接数:

iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT

参数说明:

--dport 80:针对HTTP服务,根据实际端口调整。

--connlimit-above 10:允许的最大并发连接数。

--connlimit-mask 32:针对单个IP(掩码32位)。


二、限制24小时内的总访问数

使用hashlimit模块限制每个IP在24小时内的新建连接数:

iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m hashlimit --hashlimit-name http_24h --hashlimit-mode srcip --hashlimit-above 100/day -j DROP

参数说明:

--state NEW:统计新连接请求。

--hashlimit-above 100/day:24小时内允许最多100次新连接。

--hashlimit-name http_24h:定义计数器名称(需唯一)。


三、验证并保存规则

测试规则:

使用工具(如ab、curl)模拟多连接和请求,观察是否被限制。

保存规则:

iptables-save > /etc/iptables/rules.v4  # Debian/Ubuntu
service iptables save                   # CentOS/RHEL


注意事项

时间窗口:hashlimit的/day基于滑动窗口(从首次请求计24小时),非自然日。

模块支持:确保内核支持connlimit和hashlimit模块。

规则顺序:将限制规则放在允许流量的规则之前。


可选:使用nftables(现代替代方案)

若系统使用nftables,规则如下:

nft add table ip filter
nft add chain ip filter input { type filter hook input priority 0 \; }
nft add rule ip filter input tcp dport 80 ct count over 10 reject # 并发连接数
nft add rule ip filter input tcp dport 80 ct state new meter http_24h { ip saddr limit rate 100/day } drop # 总访问数a


评论(0条)

请登录后评论
ziyuan

ziyuan Rank: 16

0

0

0

( 此人很懒并没有留下什么~~ )

首页

栏目

搜索

会员