讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在Linux中配置具体的系统网络连接限制策略

雨晨酱_1699

雨晨酱_1699

发布时间:2026-08-22 10:33:54

|

557人浏览过

|

来源于php中文网

原创

使用iptables connlimit模块限制单IP并发连接数,需在INPUT链中配合--syn匹配新建连接,指定端口和--connlimit-above阈值,如iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 -j REJECT;必须加--syn且置于-m connlimit前,否则会误拦已建立连接或语法错误。

如何在linux中配置具体的系统网络连接限制策略

connlimit模块怎么限制单IP并发连接数

用 iptables 的 connlimit 模块是最直接、最轻量的运行时连接数限制手段,适用于 Web、SSH、数据库等服务端口。它不依赖用户级配置,也不改内核参数,只在 Netfilter 层做连接计数拦截。

常见错误是把 --syn 漏掉或写错位置——不加 --syn 会匹配所有包(包括 ACK、FIN),导致误拦已建立连接;写在 -m connlimit 后面则语法报错。

  • 限制每个 IP 对 80 端口最多 10 个并发 TCP 连接:iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 -j REJECT
  • 限制 SSH(22 端口)每 IP 最多 3 个新连接,超限直接丢弃(不发 RST):iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j DROP
  • 若服务监听多个端口(如 80+443),需为每个端口单独加规则,connlimit 不支持端口范围写法(--dport 80:443 无效)

注意:该规则仅对 IPv4 生效;IPv6 需用 ip6tables 单独配置,且模块名相同、参数一致。

systemd 服务的文件描述符限制为什么总不生效

很多用户改完 /etc/security/limits.conf,ulimit -n 也显示正确,但 nginx 或 redis 进程的 Max open files 仍是 1024——根本原因是 systemd 完全不读 limits.conf,哪怕你给 root 写了硬限制也没用。

必须显式配置 unit 文件,否则服务启动时继承的是 systemd 默认的 LimitNOFILE=1024(CentOS/RHEL 8+ 和 Ubuntu 20.04+ 均如此)。

Computer Use Linux
Computer Use Linux

顶级 Linux 计算机使用技能,配套独立自举运行时,无需本地 Claude 安装、私有原生模块等。

下载
  • 全局设默认值(影响所有新启服务):sudo systemctl edit --full systemd-system.conf,加入 DefaultLimitNOFILE=65536
  • 单服务精准控制(推荐):sudo systemctl edit nginx.service,写入:
    [Service]
    LimitNOFILE=65536
  • 改完必须执行 sudo systemctl daemon-reload,再 sudo systemctl restart nginx,否则旧进程不会重读
  • 验证是否生效:cat /proc/$(pgrep -f "nginx: master")/limits | grep "Max open files",看 Soft Limit 和 Hard Limit 是否匹配

net.core.somaxconn 和 fs.file-max 有什么区别

net.core.somaxconn 控制的是单个 socket 的**监听队列长度**,即 accept 队列能暂存多少个已完成三次握手但还没被应用 accept() 的连接;而 fs.file-max 是系统级**所有进程能打开的文件描述符总数上限**,TCP 连接只是其中一种 fd 类型。

两者缺一不可,但作用层级不同:前者过小会导致高并发下连接被内核直接丢弃(客户端看到 connection timeout 或 connection refused);后者过小则进程 socket() 或 accept() 直接失败(日志里出现 “Too many open files”)。

  • 查当前值:sysctl net.core.somaxconn、cat /proc/sys/fs/file-max
  • 临时调大:sysctl -w net.core.somaxconn=32768、sysctl -w fs.file-max=2097152
  • 永久生效:写入 /etc/sysctl.conf,然后 sysctl -p
  • 注意:fs.file-max 建议设为内存 KB 数的 10% 左右(例如 32GB 内存 → ~3.2M),但不要盲目设到 10M 以上,可能引发 slab 内存碎片问题

为什么开了 connlimit 还被扫号工具打穿

因为 connlimit 只防“连接数”,不防“连接频次”。扫号工具常使用大量代理 IP 轮换,每个 IP 只建 1–2 个连接,绕过单 IP 限制;或者用短连接快速发请求,靠的是请求密度而非并发数。

这时候需要组合策略:

  • 用 limit 模块限制新连接速率(如每分钟最多 5 个 SYN 包):iptables -A INPUT -p tcp --syn --dport 22 -m limit --limit 5/min --limit-burst 5 -j ACCEPT
  • 配合 recent 模块封禁频繁试探的源 IP:iptables -A INPUT -p tcp --syn --dport 22 -m recent --name ssh --set + iptables -A INPUT -p tcp --syn --dport 22 -m recent --name ssh --rcheck --seconds 60 --hitcount 10 -j REJECT
  • 真正要防自动化攻击,得上 fail2ban 解析应用日志(如 Nginx access.log 中的 401/403),比 iptables 规则更准

最后提醒一句:所有 iptables 规则重启后丢失,记得用 iptables-save > /etc/sysconfig/iptables(RHEL/CentOS)或 iptables-persistent(Debian/Ubuntu)固化;systemd 的 LimitNOFILE 和 sysctl 参数也务必写进配置文件,否则 reboot 就回退。

热门AI工具

更多
立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

3730

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3233

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2313

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

5590

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

5242

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3113

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2625

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2839

2023.07.25

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

0

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn