本文由财富云计算提供,我们提供高防服务器、CDN 防护与 NAT 型云服务器,无独立公网 IP 价格比独立 IP 省一半以上,大促防护方案提前咨询排期。
一、为什么大促期间必须提前防
攻击者也在「过节」——大促是你的峰值,也是他的窗口期:
| 时机因素 | 攻击者的算盘 |
|---|---|
| 你流量暴涨 | 攻击混在正常流量里,难区分、误杀成本高 |
| 你不敢关站 | 关一分钟损失真金白银,勒索议价力强 |
| 你团队疲惫 | 半夜被叫醒响应慢 |
| 你临时扩容 | 新机器没加固,漏洞窗口 |
| 活动有截止 | 打你一小时活动就废 |
大促防护的核心思想:活动前把所有能提前做的做完,活动当天只做「切换」和「观察」,不做「配置」。
二、T-14 天:架构准备
2.1 防护能力就位
# 检查清单:这些必须在大促前完成并测试
□ 高防/CDN 接入并跑通(不是买了就行,是切过流量测过)
□ 防护档位按预估峰值 ×2 准备(不够提前升,别当天升)
□ 源站回源白名单生效(切过流量验证过)
□ HTTPS 证书全覆盖(含 CDN 侧,别活动当天证书过期——见 SSL 篇)
□ WAF 规则观察模式跑过一周,误杀清单清零2.2 源站加固
# Nginx 配置检查(照 Nginx 进阶防护篇全配)
nginx -t && systemctl reload nginx
# iptables 规则生效(默认 DROP,只放行业务端口)
iptables -L -n | head -20
# 内核参数(SYN Cookie 等)
sysctl -a | grep -E 'syncookies|somaxconn|max_syn_backlog'
# fail2ban 运行中(防半夜爆破)
systemctl status fail2ban2.3 压测:知道自己的极限
# 用压测工具摸清各接口极限(示例 wrk)
wrk -t8 -c200 -d60s https://你的域名/api/xxx # 接口级
wrk -t8 -c500 -d60s https://你的域名/ # 首页级
# 记录:每个接口的 QPS 上限、CPU/内存拐点
# 大促预估流量的 1.5 倍 < 接口极限 = 安全压测注意事项:先和商家报备(否则可能触发防护被封)、从低到高、避开业务高峰、压完看恢复。
2.4 容量规划
按容量规划篇算:预估并发 × 安全系数 → CPU/内存/带宽。大促扩容是提前扩容,活动当天早上临时买机器 = 自找麻烦(配置、安全、部署全要时间)。
三、T-7 天:预案与演练
3.1 分级响应预案
| 级别 | 现象 | 响应动作 | 决策人 |
|---|---|---|---|
| P0 致命 | 全站不可用 > 5 分钟 | 切静态维护页 + 全员响应 + 商家工单 | 技术负责人 |
| P1 严重 | 核心链路(下单/支付)受损 | 关非核心功能保核心 + 切 CDN | 值班负责人 |
| P2 中度 | 部分接口慢/限流触发 | 观察 + 调限流阈值 | 运维 |
| P3 轻度 | 扫描/少量爆破 | fail2ban 自动处理 | 无人值守 |
3.2 降级开关预埋
大促前把「关功能的开关」做好,活动当天一键降级:
# 大促降级配置(提前写好,按需启用)
# /etc/nginx/conf.d/promo-degraded.conf
# 级别 1:关搜索(吃数据库的接口先关)
location = /api/search {
return 503 '{"code":503,"msg":"搜索维护中"}';
}
# 级别 2:关推荐/个性化
location ~ ^/api/recommend {
return 503;
}
# 级别 3:只读模式(关发帖/评论/上传)
location ~ ^/api/(post|comment|upload) {
return 503 '{"code":503,"msg":"高峰期限流"}';
}
# 级别 4:全站静态页
# location / { return 503; } # 配 root 指到静态维护页# 启用哪个级别就 mv 对应文件 + reload,10 秒完成3.3 演练
T-3 天做一次桌面演练:
- 模拟「凌晨 2 点全站 503」——谁起床、登哪、敲什么命令、多久恢复
- 模拟「支付接口被打」——降级到哪级、谁通知客服
- 模拟「CDN 扛不住」——切高防的完整流程走一遍
没演练的预案 = 没有预案。演练发现的问题(密码找不到、命令抄错、没人有商家电话)活动前修掉。
四、T-1 天:最终检查
□ DNS TTL 已调短(300s,切流准备)
□ 监控告警测试过(发条测试消息,确认能收到)
□ 备份全部完成(数据库 + 文件 + 快照)
□ 值班表确认(几点到几点谁在,手机号互存)
□ 商家工单渠道确认(高防/CDN 的紧急联系方式存好)
□ 降级开关文件就位(mv 就能用)
□ 静态维护页做好(P0 时顶上)
□ 团队公告模板写好(被攻击时的对外话术)五、活动当天:值守节奏
5.1 监控看板(值班盯着这几个)
# 一屏看完核心指标(写个脚本每分钟刷新)
watch -n 60 '
echo "=== $(date +%H:%M:%S) ==="
ss -s | grep -E "TCP:|UDP:"
tail -1000 /var/log/nginx/access.log | awk "{print \$9}" | sort | uniq -c | sort -rn | head -5
free -h | grep Mem
uptime
'| 指标 | 正常 | 预警 |
|---|---|---|
| established 连接 | 基线 ±50% | 超基线 3 倍(慢速/CC) |
| 5xx 比例 | < 0.1% | > 1%(被打崩或过载) |
| 单 IP 请求 | 分散 | 某 IP 一柱擎天 |
| CPU/内存 | < 70% | > 85%(扩容或降级) |
| 带宽 | 按预估 | 超预估 2 倍(DDoS) |
5.2 小时级巡检
每小时过一遍:错误率、慢接口 Top10、连接数、磁盘(日志暴涨是大促常见事故——提前扩 logrotate 频率)。
5.3 被攻击时的响应流程
发现异常 → 定级(P0-P3)
↓
P3 → fail2ban 处理,记录
P2 → 调限流 + 观察 10 分钟
P1 → 启用降级开关(保核心)+ 切 CDN + 通知
P0 → 静态维护页 + 全员 + 商家 + 公告
↓
任何级别:记录时间线(取证 + 复盘)大促中的决策原则:保交易链路,牺牲体验。搜索慢就关搜索,评论卡就关评论——下单支付流程一分钟都不能断。
六、典型场景处置
场景 1:凌晨 3 点,带宽打满,全站 503
- 定级 P0,起床
ping+ss -s确认大流量(不是应用问题)- 域名切 CDN(TTL 短,10 分钟生效)或切高防
- 若已在高防上:看后台攻击类型,联系商家确认清洗状态
- 通知值班群 + 准备对外公告
- 攻击结束:恢复 + 复盘
场景 2:下午 2 点,短信接口被刷,话费飞涨
mv promo-degraded-sms.conf熔断短信接口(10 秒)- 查日志:哪个接口、什么 IP、什么 UA
- 该接口加图形验证 + 严格限流(CC 变种篇)
- 恢复接口,观察
- 查是否有漏刷的已发短信(业务层处理)
场景 3:晚 8 点高峰,CPU 100%,但没被攻击(真实流量过载)
- 别慌,这不是攻击——扩容(云控制台热升级)或启用降级
- 关掉最贵的接口(搜索/推荐)
- 事后:这是容量规划失误,复盘压测数据
区分「被攻击」和「被挤爆」很重要:前者看日志形态(异常请求),后者看业务指标(QPS 涨但请求正常)。搞错了响应全错——被挤爆你去买高防,被攻击你去扩容,都是白花钱。
七、活动后:复盘三件套
攻击或过载过去 24 小时内:
- 数据复盘:峰值 QPS、攻击量级、降级了几级、恢复了多久
- 预案更新:这次哪个开关没预埋、哪个命令现场查了、哪个人联系不上——补进预案
- 防护调整:攻击量级 > 当前档位 → 升档;误杀多 → 调 WAF 规则;容量不足 → 扩容常态化
每次大促都让预案进化一次——第三次活动时,你的响应应该像排练过的一样(因为排练过)。
八、预案模板(直接抄)
# XX 活动防护预案(2026-XX-XX)
## 值班表
- 00:00-08:00 ___ / 08:00-16:00 ___ / 16:00-24:00 ___
- 技术决策人:___(任何 P0/P1 直接打电话)
## 关键信息
- 源站 IP:___ 高防 IP:___ CDN CNAME:___
- 商家紧急工单:___
- DNS 管理后台:___
## 降级开关(按严重度从轻到重)
- L1 关搜索:mv /etc/nginx/conf.d/promo-degraded.conf.d/S1 ./
- L2 关推荐:___
- L3 只读模式:___
- L4 静态维护页:___
## 切 CDN 流程
1. 确认 TTL=300
2. DNS 改 CNAME:___
3. dig 验证 + 多地 ping
4. 源站确认回源白名单含 CDN 段
## 公告模板
「尊敬的用戸,本站于 X 时遭遇网络攻击,已启动防护,您的数据安全,预计 X 时恢复。详情见群/客服。」九、监控告警的具体配置
值守不是盯着屏幕靠眼力,告警要自动化。最小可用配置:
# 1. 网站可用性(外部探测,Uptime Kuma 或自建)
# 每 1 分钟探测首页 + 支付接口,失败 2 次告警
# 2. 服务器资源(本机脚本,每分钟)
cat > /usr/local/bin/promo-monitor.sh << 'EOF'
#!/bin/bash
WEBHOOK="你的企业微信/钉钉/飞书机器人URL"
TS=$(date +%H:%M:%S)
# 连接数
CONN=$(ss -tn state established | wc -l)
[ "$CONN" -gt 500 ] && curl -s "$WEBHOOK" -H 'Content-Type: application/json' -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"[$TS] established 连接 $CONN 异常\"}}"
# 5xx 比例(最近 1000 条日志)
ERRS=$(tail -1000 /var/log/nginx/access.log | awk '$9>=500' | wc -l)
[ "$ERRS" -gt 50 ] && curl -s "$WEBHOOK" -H 'Content-Type: application/json' -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"[$TS] 5xx 错误 $ERRS/1000\"}}"
# CPU
CPU=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d% -f1)
[ "${CPU%.*}" -gt 85 ] && curl -s "$WEBHOOK" -H 'Content-Type: application/json' -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"[$TS] CPU ${CPU}%\"}}"
EOF
chmod +x /usr/local/bin/promo-monitor.sh
echo "* * * * * root /usr/local/bin/promo-monitor.sh" > /etc/cron.d/promo-monitor告警渠道的选择:企业微信/钉钉/飞书机器人免费且手机能收到——别用邮件,凌晨没人看邮箱。阈值宁低勿高:误告一次的成本是「看一眼」,漏告一次的成本是「站挂一小时没人知道」。
日志聚合和可视化(Loki + Grafana)见Loki 日志体系,大促期间的流量曲线是复盘的硬材料。
十、小结
大促防护 = T-14 天架构就位 + T-7 天预案演练 + T-1 天最终检查 + 当天分级值守。核心原则三条:活动前做完所有配置(当天只切换)、保核心交易链路(牺牲边缘体验)、分得清攻击和过载(响应完全不同)。预案的价值不在文档漂亮,在于凌晨三点被叫醒时,你闭着眼都能执行——因为演练过。
相关阅读:
本文由财富云计算整理,我们提供高防服务器、CDN 防护与 NAT 型云服务器,无独立公网 IP 机型价格比独立 IP 省一半以上,大促/活动防护方案请提前排期咨询。更多教程见端口速查表。
延伸阅读
- 高防误区与避坑清单:25 个坑+下单前必问 14 问+到货验货流程
- DNS 攻击防护专题:劫持、隧道、投毒、放大四类攻击与 DNSSEC
- 源站真实 IP 隐藏完全指南:六大暴露面排查+NAT 型终极方案
- 日志分析找攻击源:Nginx 日志三维度分析法与证据固定
- 攻击应急响应手册:六阶段响应流程,从确认到复盘的照做清单
- iptables 抗 DDoS 配置模板:状态过滤+SYN 防护+防扫描+游戏服版
- OpenResty Lua 自研 WAF:动态限流+攻击特征检测+Redis 黑名单
- Nginx 进阶防护:连接层、请求层、行为层三层生产级配置

[...]netsh advfirewall firewall add rule name="GameRange" dir=in action=allow protocol=UDP localport=26901-26903完整的 Windows 环境准备(远程桌面连接、运行库安装、SteamCMD 用法、开机自启、8 个常见坑)见:《Windows 云服务器开服通用前置教程》→ htt[...]
2026-10-21 回复