HTTP慢速攻击如何用极低速率耗尽连接池?,原理是什么

HTTP慢速攻击的本质是“以慢取胜”攻击者用极低速率发送畸形的HTTP请求,让服务器为永远等不到完整的请求而挂起大量连接,连接池被占满后,正常用户就再也挤不进去了。

先拆穿HTTP慢速攻击的把戏

HTTP慢速攻击不像传统DDoS那样用海量流量砸门,更像一个没有礼貌的客人进了餐厅,坐下来点菜,但半天说不清楚要吃什么,服务员只能一直陪着干等,服务器为了响应一个HTTP请求,需要先收到完整的请求头、请求体,攻击者把请求拆成碎片,每隔几十秒才挤一个字节过来,服务器不知道对方是不是网络慢,只能老老实实保持连接等待超时,一个连接占用的内存和线程不算多,但连接池有上限,当成千上万个“慢吞吞”的连接同时占坑,新来的正常请求就找不到空位了。

持续更新!DDOS攻击技术系列之HTTPSLOW慢速DDoS攻击示例
加载中
持续更新!DDOS攻击技术系列之HTTPSLOW慢速DDoS攻击示例
云
云黑客
688--
原视频地址

HTTP慢速攻击原理:极低速率如何骗过服务器

服务器判断一个连接是否存活,依赖超时机制,普通情况下,TCP连接建立后发送数据,服务器会重置计时器,慢速攻击卡在这个机制上它发送数据,但发送速率低于服务器设定的最小超时阈值。

举个例子,一台nginx服务器的client_header_timeout通常设置为60秒,攻击者发一个HTTP请求头,第一行发送完毕后,停50秒再发第二行,服务器一看,连接还没断,数据还在传,只能继续等,等到连接数攒到几千个,worker进程的并发连接数就满了,nginx默认的worker_connections是1024,意味着一个worker最多同时处理1024个连接,其中几百个被慢速请求占据,剩余的那几百个根本扛不住正常的访问流量。

行业共识认为,这类攻击最阴险的地方在于它“合法”,攻击流量和正常流量在网络层几乎无法区分,没有异常的大包,没有畸形协议标志,就是正常的TCP握手和数据传送,只是节奏慢得令人发指,传统流量清洗设备看到的是字节数极少的“健康”流,很难触发阈值告警。

HTTP慢速攻击和DDoS有什么区别

很多站长会把慢速攻击和DDoS混为一谈,实际上两者从原理到防御思路都截然不同:

  • 攻击目标不同:DDoS攻击打的是带宽和网络设备的转发能力;慢速攻击打的是应用层的并发连接上限。
  • 流量特征不同:DDoS是“洪水”,每秒几十GB很常见;慢速攻击是“滴灌”,单个攻击连接每秒可能只有几字节到几十字节。
  • 检测难度不同:DDoS一打就能从流量监控上看到断崖式异常;慢速攻击打两三天,带宽曲线依然平得像一条直线,但网站就是越来越卡。
  • 防御成本不同:抗DDoS需要硬抗流量,加带宽或上高防;防慢速攻击主要靠调参数和应用层限流,纯软件层面就能处理大部分场景。

搞清楚了区别,你就能明白为什么慢速攻击在2026年依然是中小站点的噩梦成本低、见效快、溯源难,一个攻击者用一台破电脑就能拖垮一台性能不错的服务器。

服务器是怎么被“慢请求”一点点拖垮的

连接池耗尽的完整链路可以拆成三步。

第一步:攻击者建立大量半连接或慢速连接

攻击者用工具(比如经典的Slowloris或是Slowhttptest)批量发起TCP请求,每个连接只发一部分HTTP数据就停住,为了让服务器认定连接是“活着”的,工具会在超时前补发一个字节,比如一个空格或一个换行符,把计时器不断重置,服务器层面,这些连接的状态停留在ESTABLISHED,既没有完成请求,也没有超时断开。

第二步:系统资源被长期占用

每一个挂起的连接都会占用一个文件描述符、一块接收缓冲区内存、一个线程或协程,在内核层面,net.ipv4.tcp_max_syn_backlog和somaxconn参数决定了半连接队列和全连接队列的长度,当慢速连接把全连接队列塞满,新到的TCP握手就会被内核直接丢弃,这时候你会看到很多SYN_RECV状态的连接,正常的用户访问表现为连接超时或白屏。

第三步:应用层连接池彻底枯竭

以Java应用为例,Tomcat默认的maxThreads是200,200个线程全被慢请求占住后,线程池会触发拒绝策略,新增请求直接抛出异常,以PHP-FPM为例,pm.max_children耗尽后,后续请求进入队列,队列满了就返回502 Bad Gateway,就算你没有写业务代码,服务器层面配置再合理,只要连接池被占住,服务就是瘫的。

业内专家指出,很多中小项目的崩溃点不在代码性能,而在连接池设计默认参数给得太宽松,又没有做连接级的速率限制,等于把后门打开了一半。

怎么判断网站是不是遭受了慢速攻击

网站变慢不一定是被打了,但有几个特征能帮你快速锁定慢速攻击的嫌疑。

  • 带宽占用极低但网站响应极慢:这是慢速攻击最典型的特征,去流量监控面板看一眼就能排除流量型攻击。
  • 连接数暴涨且大量处于ESTABLISHED状态:用命令ss -s或者netstat -an | grep ESTABLISHED | wc -l查看,正常情况下连接数应该是平稳曲线,如果突然涨了几十倍且长时间不回落,大概率有问题。
  • 日志里出现大量超时记录:nginx的error.log里会刷出“client timed out”之类的信息,Apache则会出现“Request exceeded the limit”报错。
  • 个别IP的连接数异常集中:执行netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -20,能直接看到哪些IP在疯狂占连接,慢速攻击虽然会换源IP,但早期阶段往往还是有迹可循的。

如果你确认了是慢速攻击,那“网站被慢速攻击了怎么办”就有了明确答案,往下看防御部分。

服务器防慢速攻击的实战配置

防御慢速攻击不需要花哨的硬件设备,把服务器和应用层参数调好,90%的慢速攻击都能被挡在外边。

调整超时时间,缩短挂起周期

核心思路是让服务器别那么“耐心”,nginx里这几个参数建议结合业务实际情况收紧:

client_header_timeout 10s;   # 请求头超时,默认60秒太宽松
client_body_timeout 10s;     # 请求体超时,防慢POST
keepalive_timeout 15s;       # keepalive连接超时
send_timeout 10s;            # 响应超时,防慢读

Apache用户对应修改下面的指令:

RequestReadTimeout header=10-20,MinRate=500
RequestReadTimeout body=10-20,MinRate=500

Java应用(Spring Boot)可以在配置里调整Tomcat的connection-timeout:

server.tomcat.connection-timeout=10000

这几个配置等于告诉服务器:你只有10秒时间把请求头发完,超过了直接断开,合法的宽带用户不受影响,因为正常请求都在几百毫秒内就完整发送了。

限制单IP连接数,从源头掐断

光调超时还不够,攻击者可以反复重连,更好的做法是限制单IP的并发连接数,nginx用limit_conn模块:

http {
    limit_conn_zone $binary_remote_addr zone=perip:10m;
    limit_conn perip 20;
    limit_conn_zone $server_name zone=perserver:10m;
    limit_conn perserver 200;
}

这样单个IP最多只有20个并发连接,一个攻击者就算换了多个IP,要攒够几千个连接也需要庞大的IP池,攻击成本直接翻倍。

应用层漏洞修复,根治Slow POST和Slow Read

针对慢POST攻击,重点加校验请求体的最小传输速率,nginx使用client_body_in_file_only和nginx_http_limit_req_module配合自定义规则,或者更简单在server层级开启:

client_body_buffer_size 1k;
client_max_body_size 1m;

请求体超过1M直接拒绝,很多小流量慢速攻击直接失效,Slow Read攻击则需要通过iptables限制单IP的并发和速率:

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 -j REJECT

这条命令限制了每个IP到80端口的并发连接数,超过20个的新建连接全部被拒。

上WAF或专用防护,省心但费钱

自建防护毕竟需要运维精力,预算充足的情况下,云WAF是个省心选项,国内主流云厂商的WAF都内置了慢速攻击检测规则,价格通常在几千到几万元每年,根据QPS和域名数量不同浮动,如果你用的是裸金属服务器又不想买WAF,可以自己部署开源方案,比如ModSecurity配合OWASP核心规则集,虽然没有商业WAF那么智能,但对付基础慢速攻击绰绰有余。

防御慢速攻击的常见误区

加了CDN就等于防了

CDN能隐藏源站IP,但如果攻击者已经拿到了源站IP,CDN的加速节点反而可能变成慢速攻击的放大器攻击者把请求发到CDN节点,CDN节点会保持到源站的长连接,源站一样被拖垮,所以CDN要搭配源站连接超时调优,双管齐下。

只要网速够大就没事

这是把慢速攻击和流量型攻击混为一谈了,慢速攻击走的是应用层连接池,跟带宽没半点关系,就算你有100G的带宽,连接池只有1024,照样几分钟就能被填满。

频繁调整超时时间到极致就能解决

超时时间设得太短(比如2秒)确实能防住慢速攻击,但也会误伤正常用户移动网络下的用户弱网访问,HTTP请求头传2秒很常见,建议先将超时调到10秒左右,同时配合最低速率限制(比如nginx的limit_rate)来平衡可用性和安全性。

Q&A:关于HTTP慢速攻击原理和防御,你常问的三个问题

问:HTTP慢速攻击能打到HTTPS站点吗?

能,HTTPS建立TLS握手后,攻击者依然可以在应用层以极低速率发送加密后的HTTP数据,服务器完成TLS解密才能拿到明文请求,这个解密过程本身还要消耗额外的CPU资源,更麻烦的是,HTTPS握手阶段无法用明文检测规则匹配,所以很多WAF对HTTPS慢速攻击的识别能力会打折扣。

问:服务器被慢速攻击打崩了,紧急恢复应该先做什么?

第一步不是调防御参数,而是先手动清掉已挂起的连接,可以在服务器上执行nginx -s reload快速重置所有worker进程,或者用tcpkill工具按源IP批量杀掉恶意连接,紧接着修改超时配置、加connlimit限制再重启服务,这个操作顺序能让你在几分钟内恢复服务,而不是在页面打不开的情况下慢慢调配置。

问:慢速攻击只针对HTTP吗?HTTPS和HTTP/2有没有什么区别?

HTTP慢速攻击原理不仅适用于HTTP/1.x,对HTTP/2同样有效,HTTP/2引入了多路复用,多个请求复用同一个TCP连接,这意味着一个慢速请求挂住的连接会拖累其他并行的请求,影响面更大,但HTTP/2的SETTINGS_MAX_CONCURRENT_STREAMS参数可以限制单连接内的并发流数,部分攻击面会被天然收紧,HTTP/3基于UDP的QUIC协议在连接迁移和超时机制上不同,降低了慢速攻击的成功率,但部署率仍未完全普及,慢速攻击本质上针对的是“服务器等待完整请求”这个流程,只要应用层还有等待,攻击就有机可乘,每一层协议都收紧超时和速率限制,才是根治慢速攻击的正确姿势。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/787831.html

赞 (0)
上一篇 2026年11月8日 02:44
下一篇 2026年11月8日 02:46

相关推荐

  • jquery 3.1.1.min cdn 下载,jquery 3.1.1 官方 cdn 地址

    在2026年的Web开发环境中,jQuery 3.1.1.min CDN依然是保障老旧系统稳定运行、降低首屏加载延迟的高性价比方案,尤其适用于对现代框架兼容性要求不高且追求极致加载速度的传统企业官网,尽管Vue、React等现代前端框架占据主流,但jQuery凭借其轻量级特性和广泛的浏览器兼容性,在存量市场仍具……

    2026年5月26日
    4300
  • 服务器安装哪个系统不占内存系统?低配服务器装什么系统流畅

    针对服务器安装哪个系统不占内存系统的终极诉求,Alpine Linux以裸机仅需30MB内存的极致表现稳居榜首,Debian 12无桌面环境版以128MB紧随其后,轻量化系统选择的核心在于剔除图形界面与冗余服务组件,2026年轻量级服务器操作系统内存占用全景解析为什么内存占用成为2026年服务器选型的核心指标……

    2026年4月23日
    7600
  • 服务器安全需求有哪些?企业如何防御黑客攻击

    2026年服务器安全需求的核心在于构建“零信任+AI自适应”的纵深防御体系,从被动拦截转向主动免疫,以应对量子计算与AI双重驱动的混合型威胁,2026服务器安全威胁演进与需求痛点威胁态势:AI与量子计算的双重降维打击根据Gartner 2026年最新预测,超过70%的网络攻击将利用AI生成多态恶意代码,传统基于……

    2026年4月24日
    6000
  • CDN JS加载慢怎么办?如何优化JS加载速度

    CDN JS加载优化的核心在于通过智能调度、代码分割与缓存策略,将首屏资源加载时间压缩至毫秒级,从而显著提升用户体验与搜索引擎排名,在2026年的互联网生态中,网页速度已不再是单纯的技术指标,而是决定用户留存率的关键变量,当用户点击链接的那一瞬间,如果脚本加载卡顿,他们可能已经关闭了页面,业内专家指出,加载延迟……

    2026年5月31日
    3900
  • 免费cdn网站加速,免费cdn网站加速怎么设置

    2026年使用免费CDN网站加速是实现低成本高并发访问的最优解,但需严格匹配业务场景以规避隐性限制,在数字化转型进入深水区的2026年,随着全球网络流量结构的重组,静态资源加载速度已成为影响用户留存率的核心指标,对于中小企业及个人开发者而言,选择免费CDN不仅是技术决策,更是成本控制的关键一环,免费服务并非“无……

    2026年7月3日
    810
  • CDN站点是什么,CDN加速原理

    CDN站点通过全球边缘节点分布式缓存技术,将静态资源就近分发,显著降低服务器负载并提升用户访问速度,是2026年保障高并发业务稳定性的核心基础设施,在数字化转型进入深水区的2026年,网络延迟已不再仅仅是技术指标,而是直接决定用户留存率与转化率的关键变量,传统中心化服务器架构在面对海量瞬时流量时显得捉襟见肘,而……

    2026年7月12日
    16700
  • 亚马逊cdn国内速度慢怎么解决?亚马逊cdn国内加速方案

    亚马逊CDN在国内访问速度极慢且不稳定,因为AWS未在中国大陆持有ICP牌照,其全球节点无法直接服务于国内用户,建议通过阿里云或腾讯云等国内服务商提供的跨境加速方案来解决,亚马逊CDN国内访问慢的根本原因解析合规性与牌照限制亚马逊云科技(AWS)作为全球领先的云服务提供商,其核心优势在于遍布全球的节点网络,在中……

    2026年6月26日
    72210
  • cdn服务方案有哪些?cdn加速服务怎么选

    2026年CDN服务方案的核心结论是:企业应优先选择具备“边缘计算+AI智能调度”能力的混合云架构,以应对高并发场景下的毫秒级延迟挑战,同时通过按需付费模式将带宽成本降低30%-50%, 2026年CDN技术演进与选型逻辑随着5G-A(5.5G)的普及和AI大模型的边缘化部署,传统的静态内容分发已无法满足需求……

    2026年6月22日
    2800
  • 大模型本地精调到底怎么样?大模型本地精调效果好吗

    大模型本地精调在特定场景下具备极高的应用价值,尤其是对于数据隐私安全要求严苛、具备一定算力基础的企业或开发者而言,它是构建差异化AI能力的必经之路,但对于普通个人用户或缺乏运维团队的中小企业来说,其技术门槛、硬件成本与维护难度往往被低估,综合投入产出比可能不如直接调用API,简而言之,这是一项“上限高、下限低……

    2026年4月8日
    10800
  • 服务器客户端是啥意思?客户端和服务器端到底有啥区别

    服务器和客户端本质上是分工明确的“提供服务者”与“请求服务者”,两者通过标准网络协议协同工作,共同构成了互联网应用运行的底层交互架构,核心概念:谁是服务器,谁是客户端?在数字世界的运转逻辑中,服务器与客户端并非高深莫测的玄学,而是一套严密的请求-响应模型,理解它们,只需抓住两者的角色定位,客户端(Client……

    2026年4月23日
    4900

发表回复

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