如何限制单IP10个并发连接

限制新连接数(预防性控制)

通过防火墙规则限制单个IP的连接数,防止资源滥用:

# 使用更现代的nftables(示例:限制SSH连接)
sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0; }
sudo nft add rule inet filter input tcp dport 22 ct count over 5 reject

适用场景:防御DDoS攻击或防止单个IP耗尽资源。


通过Web服务器配置限制连接

针对Nginx/Apache等服务的连接控制:

  • Nginx配置(修改nginx.conf):

    http {
        limit_conn_zone $binary_remote_addr zone=perip:10m;
        server {
            location / {
                limit_conn perip 5;  # 每个IP最多5个连接
            }
        }
    }

    重启服务:sudo systemctl restart nginx

  • Apache配置(需启用mod_ratelimit):

    <IfModule mod_ratelimit.c>
        <Location "/">
            SetOutputFilter RATE_LIMIT
            MaxRate 100   # 每秒最多100个连接
        </Location>
    </IfModule>

强制关闭现有连接

使用网络工具断开已建立的连接:

  1. 查找目标连接(以SSH为例):
    sudo ss -tpn dst :22  # 查看所有SSH连接(含PID和IP)
  2. 关闭连接
    • 通过进程ID终止:
      sudo kill -9 <PID>   # 结束对应进程
    • 使用tcpkill(需安装dsniff包):
      sudo tcpkill -i eth0 host 192.168.1.100  # 断开指定IP的所有连接

调整系统级连接参数

修改内核参数优化连接管理:

# 降低TIME_WAIT状态连接的回收时间(秒)
sudo sysctl -w net.ipv4.tcp_fin_timeout=15
# 限制半连接队列大小(防御SYN Flood)
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=2048
# 持久化配置:将参数写入/etc/sysctl.conf
echo "net.ipv4.tcp_fin_timeout=15" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

注意事项

  1. 操作风险:强制断开连接可能导致用户数据丢失,生产环境需谨慎。
  2. 性能影响:过度限制连接数可能误伤正常流量,建议监控后调整(工具:netstat, ss, nload)。
  3. 安全原则:优先通过防火墙或服务配置预防问题,而非事后处理。
  4. 备份配置:修改关键文件前备份(如cp /etc/nginx/nginx.conf ~/nginx.conf.bak)。

引用说明

  • Linux内核参数文档:man tcp(终端查看)
  • iptables官方指南:netfilter.org
  • Nginx连接限制模块:nginx.org/docs
  • 系统工具手册页:man ss, man sysctl, man tcpkill

重要提示:本文方法需root权限操作,建议在测试环境验证后再部署到生产服务器,对于复杂攻击场景,建议结合专业防火墙(如Cloudflare)或安全团队协作处理。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5411.html

(0)
酷番叔酷番叔
上一篇 2025年6月23日 13:02
下一篇 2025年6月23日 13:33

相关推荐

  • Linux VPS如何设置每天定时重启?

    在Linux VPS管理中,定期重启是保障系统稳定性的常见操作,尤其对于长时间运行的服务器,重启可以释放被占用的系统资源(如内存、文件句柄等),清理临时缓存,修复潜在的服务异常,避免因长时间运行导致的性能下降或崩溃,本文将详细介绍如何设置Linux VPS实现每天定时重启,涵盖环境检查、脚本创建、定时任务配置……

    2025年9月8日
    2400
  • Linux如何配置Qt开发环境?

    安装前准备更新系统sudo apt update && sudo apt upgrade # Debian/Ubuntusudo dnf update # Fedora安装编译工具链sudo apt install build-essential libgl1-mesa-dev # OpenGL……

    2025年7月29日
    2800
  • AppImage如何轻松运行于任何电脑?

    Linux QQ登录详细指南在Linux系统中登录QQ,目前主要有三种可靠方式:官方原生版本、Wine兼容方案和第三方开源客户端,以下是具体操作步骤及注意事项:官方原生QQ for Linux(推荐首选)适用系统:Ubuntu/Debian、Arch、Fedora等主流发行版优势:腾讯官方维护,安全性高,无兼容……

    2025年7月1日
    4700
  • Linux终端中查看文件时如何实现翻页操作?

    在Linux操作系统中,翻页操作是日常使用中非常频繁的需求,无论是查看长文本文件、浏览命令输出结果,还是阅读日志信息,掌握翻页技巧都能显著提升操作效率,Linux中的翻页操作主要涉及命令行工具、文本编辑器以及终端模拟器自带功能,下面将从多个场景详细说明具体实现方法,使用less和more分页查看输出在Linux……

    2025年9月23日
    1800
  • Linux防火墙关闭了吗怎么查

    在 Linux 系统中,防火墙是保护网络安全的关键组件,不同发行版使用不同的防火墙管理工具(如 iptables、firewalld 或 ufw),因此检查方法需根据系统配置选择,以下是详细操作指南:通用检查方法查看默认防火墙服务运行以下命令确认系统使用的防火墙工具: sudo systemctl list-u……

    2025年7月7日
    5000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信