本文由财富云计算提供,我们提供高防服务器与 CDN 防护服务,NAT 型无独立公网 IP 价格比独立 IP 省一半以上,慢速攻击的防护要点在超时配置,文末有完整方案。
一、慢速攻击:最「节能」的攻击方式
其他 DDoS 靠量(烧攻击者带宽),慢速攻击靠占——用极低的流量把服务器的「连接资源」耗光。
HTTP 协议有个特点:请求可以分很多次发。攻击者利用这点,把一次请求拆成「几秒一个字节」,服务器就一直等着请求完成——连接不敢关(协议上还没超时)、资源不敢放(请求没处理完)。
正常请求: [完整HTTP请求] ─── 100ms ───> [服务器处理] → [响应]
慢速请求: [G] [E] [T] [ ] [/] [a] [p] [i] ... 每隔10秒一个字节,永不完成
↑ 服务器一直等,连接一直被占攻击者的成本:几百个连接 × 几字节/分钟 = 几 KB 流量。你的损失:连接池占满,正常用户全部 503。这是网络安全里最不对称的攻击之一。
二、三种慢速攻击形态
2.1 Slowloris(慢速发请求头)
打法:发一半 HTTP 头,停住,每隔一段时间补一个字节——连接保持「半完成」状态。
GET / HTTP/1.1\r\n ← 正常发到这里
Host: victim.com\r\n ← 然后停 30 秒
X-Padding: AAAA... ← 每 30 秒加几个字节,永远不发 \r\n\r\n(头结束标志)效果:Nginx 的 worker 被这些「没写完头」的连接占住。默认 client_header_timeout 60 秒——攻击者每 30 秒喂一口,连接永不过期。100 个慢速连接就能打瘫默认配置的 Nginx。
识别:
# 连接数异常多,但 access log 里这些 IP 请求很少(请求没完成,不记日志)
ss -tn state established '( sport = :80 )' | wc -l # 几百个 established
tail -1000 access.log | awk '{print $1}' | sort -u | wc -l # 但活跃 IP 很少
# Nginx status(如果开了 stub_status)
curl -s localhost/nginx_status | grep -E 'Reading|Writing|Waiting'
# Reading 数量高且不下降 = 有人在慢速发头2.2 RUDY(慢速 POST body)
打法:POST 请求,声明 Content-Length: 10000,然后 body 部分几秒发一个字节。
POST /api/comment HTTP/1.1
Content-Length: 100000
(然后每 5 秒发 1 字节的 body,永远发不完)效果:服务器为这个 POST 分配了接收 buffer,等着收完 10 万字节——等到天荒地老。专打有表单/上传的站。
识别:和 Slowloris 类似,但连接有 POST 特征:
ss -tn state established '( sport = :80 )' | wc -l
# tcpdump 看:连接建立了,数据流极小但有(不是完全静默)
tcpdump -i eth0 'tcp port 80 and greater 100' -c 50 # 包都小得可怜2.3 慢速读(Slow Read)
打法:连接正常建立,请求也发了,但把 TCP 窗口缩到极小,一次只读几个字节的响应——服务器为了把响应发完,长时间挂着这个连接。
效果:反向消耗服务器连接和内存(响应没发完要 buffer 着)。
识别:ss -tn 里大量连接 Recv-Q 大、Send-Q 也大,长时间不变。
2.4 慢速攻击的变形组合
- HashDoS 配合:慢速 POST 大量参数名(Hash 碰撞),CPU 也吃满
- 分布式慢速:几千个 IP 每个一个慢速连接——IP 封禁也没用
- 混合打击:先慢速占连接,再 UDP Flood 打带宽——双管齐下
三、防护核心:超时收紧(Nginx 配置)
慢速攻击的解药简单得惊人——所有超时调到短。攻击者的连接喂不饱超时时间,自然断。
# /etc/nginx/nginx.conf http 块或 server 块
server {
# 1. 头部超时:10 秒发不完整个头 = 慢速攻击,断
client_header_timeout 10s;
# 2. body 超时:10 秒传不完 body = 断(大上传业务单独放宽,见下)
client_body_timeout 10s;
# 3. keepalive 空闲超时:连接空闲 30 秒回收
keepalive_timeout 30s;
# 4. 发送超时:响应 10 秒发不完 = 断(防慢速读)
send_timeout 10s;
# 5. 超时连接发 RST 强制释放(不TIME_WAIT 干等)
reset_timedout_connection on;
# 6. 请求体缓冲(防 RUDY 占内存)
client_body_buffer_size 16k;
client_max_body_size 10m; # 按业务调
}大文件上传例外(别误杀正常业务):
location /upload {
client_body_timeout 300s; # 上传慢是正常的
client_body_buffer_size 1m;
proxy_request_buffering on;
}调完必须重载并验证:
nginx -t && systemctl reload nginx
# 验证:正常业务没被误杀(上传大文件、慢网络用户还正常吗)Apache 用户的对应配置
# httpd.conf
Timeout 10
KeepAliveTimeout 30
RequestReadTimeout "header=10 body=10"四、第二层:连接数限制
超时之外,限制单 IP 连接数——就算攻击者维持连接,也占不满总池:
# http 块定义
limit_conn_zone $binary_remote_addr zone=perip:10m;
server {
location / {
limit_conn perip 20; # 单 IP 最多 20 连接
limit_conn_status 503;
limit_conn_log_level warn;
}
}# 全站 worker 连接调大(扛正常突发,也拖住攻击生效时间)
events {
worker_connections 10240;
multi_accept on;
}五、第三层:iptables 兜底
# 单 IP 新建连接速率限制(配合 limit 模块防新建洪泛)
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 30 -j DROP
# 半开连接快速回收(配合内核参数,见 SYN 篇)
sysctl -w net.ipv4.tcp_synack_retries=2完整 iptables 模板见抗 DDoS 配置。
六、为什么慢速攻击必须 CDN/高防兜底
上面三层都是「源站自保」,有天花板:
| 问题 | 源站的极限 |
|---|---|
| 分布式慢速(几千 IP 各 1 连接) | 单 IP 连接限制形同虚设 |
| 精确卡着超时线喂(9 秒一个字节) | 超时 10s 也拦不住,得调到 5s——正常用户误杀 |
| 混合流量攻击 | 源站要同时防慢速 + Flood,资源不够分 |
CDN 怎么治慢速攻击:
- 节点超时更激进:CDN 节点和源站之间是内网/专线,超时可以压到 3–5 秒不误杀
- 连接在节点终止:慢速连接占用的是 CDN 节点资源,源站无感
- 全局视角:一个 IP 在全国各节点搞慢速,CDN 汇总识别直接封
所以慢速攻击的完整防线是:源站超时收紧(基础)+ CDN 节点终结慢速连接(主力)(CDN 防护)。
七、监控与验证:怎么知道防护生效
自测(拿慢速工具打自己,看防护)
# 安装 slowhttptest(Kali/部分发行版有,或编译)
apt install slowhttptest
# Slowloris 测试:500 连接,慢速发头
slowhttptest -c 500 -H -i 10 -r 200 -t GET -u https://你的域名/ -x 24 -p 3
# 看结果:如果 "service available" 一直是 YES = 防护生效测试自己的服务不违法,但先确认商家 TOS 允许压测——大部分云商家要求提前报备,否则测试流量可能触发防护被误封。
持续监控
# 慢速攻击监控脚本(每分钟)
#!/bin/bash
# established 连接超过阈值告警
COUNT=$(ss -tn state established '( sport = :80 )' | wc -l)
if [ "$COUNT" -gt 200 ]; then
echo "警告:established 连接 $COUNT,疑似慢速攻击" | your-notify-bot
fi日常基线记录:你的站正常时 established 连接是多少(通常 50–200)——超过基线 3 倍且带宽/CPU 正常,就是慢速攻击特征。
八、被慢速攻击打了的应急
- 确认:
ss -tn state established | wc -l暴增、带宽 CPU 正常、网站 503 → 实锤 - 收紧超时(如果之前没配):10s → 5s,观察恢复
- 单 IP 连接限制降到 5:误伤正常用户也认了(攻击时保命优先)
- CDN 切流:域名切 CDN,慢速连接被节点吸收(TTL 600 的话 10 分钟生效)
- 极端情况:源站前挂一层 Nginx 反向代理(代理只做连接终结,超时极短),后端应用被隔离
九、小结
慢速攻击是「穷人核武器」:几 KB 流量打瘫一个站,因为它攻击的是连接保持能力而非处理能力。防护三板斧按顺序上:超时收紧(10 秒发不完就断)、单 IP 连接限制、CDN 节点终结。识别记住一个组合信号:established 连接暴增 + 带宽/CPU 平静 + access log 冷清。日常把超时配置好,被攻击时你会发现:最节能的攻击,怕的只是最不起眼的一行配置。
相关阅读:
本文由财富云计算整理,我们提供高防服务器、CDN 防护与 NAT 型云服务器,无独立公网 IP 机型价格比独立 IP 省一半以上,慢速攻击防不住的咨询我们。更多教程见端口速查表。
延伸阅读
- 高防误区与避坑清单:25 个坑+下单前必问 14 问+到货验货流程
- DNS 攻击防护专题:劫持、隧道、投毒、放大四类攻击与 DNSSEC
- 电商大促防攻击预案:T-14 到当天的分级响应与降级开关
- 源站真实 IP 隐藏完全指南:六大暴露面排查+NAT 型终极方案
- 日志分析找攻击源:Nginx 日志三维度分析法与证据固定
- 攻击应急响应手册:六阶段响应流程,从确认到复盘的照做清单
- iptables 抗 DDoS 配置模板:状态过滤+SYN 防护+防扫描+游戏服版
- OpenResty Lua 自研 WAF:动态限流+攻击特征检测+Redis 黑名单

[...]# 5. 敏感路径 444(见 4.2)完整的 anti-CC + anti-scan 模板和逐行注释在基础篇和CC 变种篇,配合iptables 模板和OpenResty 篇构成源站防护全家桶。九、小结Nginx 防护的三层:连接层(超时收紧 + 连接限制,防慢速和连接耗尽)、请求层(分级限流 + 接口保护,防 CC 和精准打击)、行为层(UA/路径/地域过滤,防扫描和爬虫)。配 Nginx 防[...]
2026-10-21 回复
[...]2. ___九、小结应急响应六阶段:确认(2 分钟判定攻击类型)→ 止损(按类型分流:引流/限流/熔断)→ 通知(用户和内部同步)→ 切换(DNS 切 CDN/高防)→ 恢复(核心功能优先验证)→ 复盘(24 小时内更新预案)。核心原则:流量层攻击别在服务器上挣扎(引流),应用层攻击先熔断贵接口(止损),全程保留证据(日志/截图),攻击后 24 小时内必须复盘(攻击者会回头)。把第六节的预案模板填[...]
2026-10-21 回复
[...]netsh advfirewall firewall add rule name="GameRange" dir=in action=allow protocol=UDP localport=26901-26903完整的 Windows 环境准备(远程桌面连接、运行库安装、SteamCMD 用法、开机自启、8 个常见坑)见:《Windows 云服务器开服通用前置教程》→ htt[...]
2026-10-21 回复