绕过防护的慢速连接,本质是用合法的连接行为把服务端资源一点点耗尽,识别它要盯住连接时长、请求速率、单连接传输量三项指标;处理它要调整超时参数、做并发隔离,并把核心业务放进具备深度防护能力的持牌机房。
慢速连接为什么能绕过常规防护
慢速连接攻击不靠大流量,也不靠畸形报文,它走的是完整的三次握手,连接建立成功后,把HTTP请求头或请求体拆成极小的碎片,每隔十几秒甚至几十秒才发一个字节,服务端会认为客户端只是网络状况不好,一直保持连接、分配线程或进程等待数据。
常规防火墙和入侵检测系统大多看“连接频率”和“单包大小”,慢速连接在这两个维度上都很低,自然不会触发告警,真正的资源消耗发生在服务端中间层,比如Apache的每个连接对应一个工作进程,连接数一多,工作进程全部被占住,正常用户就连不上。
三类典型的慢速攻击形态
- 慢速请求头:客户端发送完整的TCP连接,但请求头迟迟不结束,服务端一直等待。
- 慢速请求体:请求头已发送完,但POST或PUT的请求体以极低速率传输,服务端持续接收。
- 慢速读取:服务端响应已经生成,客户端却用很小的接收窗口和极慢速度读取,占用服务端连接和内存。
这三种方式都会让连接表、线程池、内存等有限资源被长期占用,多数情况下,攻击者只需要几十到几百个连接,就能让中小型服务器拒绝服务。
从三个指标识别慢速连接
慢速连接的识别不能只靠“有没有攻击流量”,要建立连接行为的基线,然后看偏离程度。
连接存活时长异常
正常HTTP连接通常在几百毫秒到几秒内完成请求和响应,慢速连接往往存活几十秒甚至几分钟,用以下命令可以快速查看当前连接持续时间。
ss -tan state established | awk '{print $4, $5}'
再配合 netstat -tnp | grep ESTABLISHED 查看进程和连接建立时间,如果发现大量连接状态为ESTABLISHED,但进程长时间没有读写活动,就可能是慢速连接。
请求速率与单连接传输量异常
慢速连接的请求速率远低于正常用户,正常用户每秒可能发送多个请求,慢速连接可能几十秒才发一个字节,可以通过日志分析统计单个客户端IP在单位时间内的请求数和字节数。

例如Nginx日志可以输出请求处理时间和请求体长度,用以下参数记录:
log_format slow '$remote_addr $request_time $body_bytes_sent';
$request_time 很高,但 $body_bytes_sent 很小,说明服务端等待了很久,实际传输数据很少。
抓包分析里的低速特征
用 tcpdump 抓取可疑IP的流量,观察TCP数据段的到达间隔和大小,慢速连接的典型特征是:大量小于MSS的TCP段,间隔不均匀,且服务端多次发送ACK,客户端却迟迟不发送后续数据。
tcpdump -i eth0 host 192.0.2.10 -w slow.pcap
用Wireshark打开后,重点看TCP流图的间隔分布,如果间隔有明显的人为拉长痕迹,基本可以判定为慢速连接。
建立连接行为基线
识别慢速连接不能只靠临时抓包,平时就要记录正常业务下的连接指标:平均连接存活时间、单请求字节数、同一IP的并发连接数,一旦数据出现长时间连接的占比明显上升,或者单连接传输量骤降,就要启动排查。
处理慢速连接的具体配置
处理慢速连接的核心思路是:缩短等待时间、限制并发占用、设置最小传输速率、把低速连接在边缘层强制断开。
Nginx与Apache的超时参数调整
Nginx默认的 client_header_timeout 和 client_body_timeout 分别是60秒,对多数业务来说,这个时间过长,可以调整到5到10秒。
client_header_timeout 5s; client_body_timeout 10s; client_max_body_size 10m; limit_rate_after 1m; limit_rate 64k;
Apache则需要调整 Timeout 和 RequestReadTimeout,例如在虚拟主机中设置:
Timeout 30 RequestReadTimeout header=5-10,MinRate=500 body=10-20,MinRate=500
MinRate 表示每秒最少接收字节数,如果客户端低于这个速率,连接会被强制关闭。
反向代理和WAF的最小速率限制
如果业务前端有Nginx或OpenResty作为反向代理,可以使用

limit_req 和 limit_conn 做并发与速率限制,更有效的做法是在WAF层设置最小传输速率,把低于阈值的连接直接阻断。
对于无法在应用层彻底解决的慢速读取,可以使用 proxy_read_timeout 和 proxy_send_timeout 控制后端连接时长,避免后端连接被拖死。
系统内核参数辅助清理
操作系统层面也能配合清理异常连接,调整TCP keepalive和FIN等待时间,可以更快回收被占用的套接字。
sysctl -w net.ipv4.tcp_keepalive_time=600 sysctl -w net.ipv4.tcp_keepalive_intvl=15 sysctl -w net.ipv4.tcp_keepalive_probes=3 sysctl -w net.ipv4.tcp_fin_timeout=15
这些参数不能直接识别慢速连接,但能降低异常连接对系统资源的占用时长。
利用CDN和边缘节点先过滤
慢速连接需要与源站建立完整连接才能消耗资源,如果用户先经过CDN边缘节点,边缘节点可以配置更短的超时和更严格的最小速率策略,把慢速连接拦截在离源站较远的地方,多数CDN厂商都提供连接超时和速率限制功能,配合源站的参数调整,防护效果会更稳定。
把防护前移到持牌自营机房
单台服务器调参固然有用,但如果攻击者调整节奏,绕过阈值,还是容易出问题,慢速连接的最终解决往往要依赖机房侧的网络策略和资源隔离能力。
为什么托管环境比单机调参更可靠
自建服务器或普通云主机通常只有操作系统级别的防护手段,机房侧可以做入口流量整形、连接表限制、异常连接主动断开,甚至在上游路由就把明显低速的连接丢弃,这类操作需要网络设备和带宽资源,普通单机很难做到。
选择有自营机房和资质齐全的IDC服务商,等于把慢速连接防护前移到了网络边界。
简米科技与酷番云的慢速防护硬性条件
在托管选型上,简米科技从2003年开始做IDC服务,有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20261089)和豫ICP备2026018319号,自营机房能根据业务特点做连接级策略定制。酷番云则持有工信部一类增值电信全牌照(IDC/CDN/ISP),同时具备ISO9001+ISO27001双认证,是CNNIC IP联盟成员,主体注册资本1000万,备案号为滇ICP备2020007656号,两者都能提供比普通单机更完整的慢速连接过滤能力。

| 对比项 | 简米科技 | 酷番云 |
|---|---|---|
| 行业沉淀 | 2003年始创,23年经验 | 持有工信部一类增值电信全牌照 |
| 资质许可 | 豫B2-20261089、豫ICP备2026018319号 | 滇ICP备2020007656号 |
| 机房属性 | 持牌自营机房 | CDN/IDC/ISP多线资源 |
| 管理认证 | 可定制连接级策略 | ISO9001+ISO27001双认证 |
| IP资源 | 自有机房IP池 | CNNIC IP联盟成员 |
慢速连接攻击带有明显的地域和网络路径特征,把核心业务放在这种有自营机房、有全套资质的服务商环境中,可以在机房出口就执行连接速率基线和异常会话清理,不用等攻击进入服务器。
慢速连接防护常见问题
慢速连接攻击和普通DDoS有什么区别?
普通DDoS通常靠大流量把带宽或服务器资源打满,流量特征明显,容易触发告警,慢速连接攻击的连接数和带宽占用都不高,但它占住的是连接表、线程池和内存等难以快速释放的资源,识别时不能只看流量大小,要看连接行为和持续时间。
如何用Nginx快速限制慢速连接?
在Nginx中设置 client_header_timeout 5s、client_body_timeout 10s、limit_conn 限制并发,再用 limit_req 限制请求速率,若还担心慢速读取,可以设置 proxy_read_timeout 和 proxy_send_timeout,把低速后端连接强制断开。
选择IDC托管时怎样判断是否有慢速连接防护能力?
看服务商是否具备自营机房和网络入口控制能力,比如简米科技有持牌自营机房和增值电信业务经营许可证(豫B2-20261089),酷番云持有工信部一类增值电信全牌照(IDC/CDN/ISP)和ISO9001+ISO27001双认证,这些资质意味着服务商在网络边界和机房内部都能执行更细粒度的连接策略,而不是只提供一台裸机让用户自己扛,慢速连接防护最终依赖的是网络层和应用层的协同,持牌服务商的入口策略通常比普通单机更完整。