21
10
月
2026
本文由财富云计算提供,我们提供高防服务器与 CDN 防护服务,NAT 型无独立公网 IP 价格比独立 IP 省一半以上,紧急情况可直接联系我们协助处置。
〇、一分钟速查(被攻击时先看这)
| 阶段 | 动作 | 用时 |
|---|---|---|
| 1. 确认 | ping + SSH + 看日志,判断攻击类型 | 2 分钟 |
| 2. 止损 | 应用层先限流;流量层先引流(切高防/CDN) | 5 分钟 |
| 3. 通知 | 用户/玩家/内部,公告「预计恢复时间」 | 3 分钟 |
| 4. 引流 | DNS 切高防/CDN(TTL 提前调短过) | 10 分钟 |
| 5. 恢复 | 攻击结束,全功能验证,复盘 | 30 分钟 |
总目标:15 分钟内业务止血,1 小时内基本恢复。
一、阶段 1:确认攻击(别慌乱操作)
被攻击时最大的风险是瞎操作把情况搞更糟。先确认:
1.1 三连问
# ① 带宽层还是应用层?
ping 你的域名 # 不通 = 带宽/协议层;通 = 应用层
curl -o /dev/null -w "%{http_code} %{time_total}\n" https://你的域名/
# ② SSH 能连吗?
ssh user@服务器 # 能连 = 还有救,别急着重装
# 不能连 = 大流量攻击或黑洞了
# ③ 什么请求在打?
ss -s # 连接总数
tail -500 /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head1.2 攻击类型判定表
| ping | SSH | 带宽/CPU | 日志形态 | 结论 |
|---|---|---|---|---|
| 不通 | 不能 | 带宽 100% | 连不上看不到 | 大流量 DDoS → 引流 |
| 通 | 卡但能进 | 带宽不高,半开连接多 | SSH 日志新连接暴涨 | SYN Flood → 限流+SYN Cookie |
| 通 | 正常 | CPU 高、PHP 进程满 | 单 IP 或全站请求暴涨 | HTTP CC → Nginx 限流 |
| 通 | 正常 | CPU 正常、连接数中等 | established 多但日志冷清 | 慢速攻击 → 收紧超时 |
| 通 | 正常 | 正常 | 大量 404 扫路径 | 扫描器 → 别管它,fail2ban 会封 |
| 通 | 正常 | 短信费暴涨 | /sms 接口异常 | 精准打计费接口 → 接口限流 |
1.3 截图留证(顺手做)
# 攻击证据:后续报警/找商家/复盘都要用
ss -s > /tmp/attack-$(date +%F-%H%M)-ss.txt
netstat -s > /tmp/attack-netstat.txt
tail -5000 /var/log/nginx/access.log > /tmp/attack-access.txt
dmesg > /tmp/attack-dmesg.txt二、阶段 2:止损(按攻击类型分流程)
2.1 大流量 DDoS(ping 不通)
普通机器扛不住,别在服务器上折腾,直接引流:
- 域名 TTL 是否已调短(提前做过的话 10 分钟生效)?现在改也来得及,下次生效
- DNS 切到 CDN 或高防 IP(HTTP 业务切 CDN;游戏直连高防)
- 没有高防?联系云商家「遭受 DDoS 攻击,申请临时防护/引流」——主流商家都有基础防护,超出部分黑洞但比裸奔强
- 通知用户攻击情况
2.2 SYN Flood / 协议层
# 本机三板斧(能 SSH 的情况下)
sysctl -w net.ipv4.tcp_syncookies=1 # 开 Cookie
sysctl -w net.ipv4.tcp_max_syn_backlog=8192 # 队列加大
sysctl -w net.ipv4.tcp_synack_retries=2 # 快速释放半开
# iptables 限流(没配过的话现在加)
iptables -N SYN_FLOOD
iptables -A INPUT -p tcp --syn -j SYN_FLOOD
iptables -A SYN_FLOOD -m limit --limit 50/s --limit-burst 100 -j RETURN
iptables -A SYN_FLOOD -j DROP(详见SYN Flood 专题)
2.3 CC / HTTP Flood
# Nginx 紧急限流(30 秒生效)
cat > /etc/nginx/conf.d/emergency.conf << 'EOF'
limit_req_zone $binary_remote_addr zone=emergency:10m rate=10r/s;
server {
location / {
limit_req zone=emergency burst=20 nodelay;
limit_req_status 429;
}
}
EOF
nginx -t && systemctl reload nginx如果是打某个具体接口,单独给那个 location 上更狠的限流(CC 变种篇第三节)。
2.4 慢速攻击
# 收紧超时
sed -i 's/client_header_timeout .*/client_header_timeout 5s;/; s/client_body_timeout .*/client_body_timeout 5s;/; s/keepalive_timeout .*/keepalive_timeout 15s;/' /etc/nginx/nginx.conf
nginx -t && systemctl reload nginx2.5 精准打接口(短信/登录/搜索)
# 接口级熔断:直接返回维护中(保命优先)
location = /api/sms/send {
return 503 '{"code":503,"msg":"服务繁忙"}'; # 短信接口关掉,话费保住了
}
location = /login {
limit_req zone=emergency rate=5r/m burst=2 nodelay;
proxy_pass http://backend;
}短信接口被刷时,第一动作是熔断接口,不是防攻击——每一秒都是真金白银。
2.6 疑似入侵(不只是 DDoS)
攻击有时是掩护。同时检查(详细见应急响应完全手册):
# 可疑登录
last -50
lastb | head -20 # 失败登录记录
grep "Accepted" /var/log/secure /var/log/auth.log 2>/dev/null | tail -20
# 可疑进程
ps aux --sort=-%cpu | head -20 # 挖矿特征:CPU 100% 的陌生进程
ps aux --sort=-%mem | head -10
# 可疑定时任务(挖矿/后门常驻)
crontab -l; ls -la /etc/cron.*; cat /var/spool/cron/crontabs/* 2>/dev/null
# 后门端口
ss -tlnp | grep -v -E ':(22|80|443)\b'三、阶段 3:通知与公告
别让用户比你先知道。按对象准备不同公告:
| 对象 | 渠道 | 内容要点 |
|---|---|---|
| 玩家/用户 | 群/站内公告 | 「遭受网络攻击,防护已启动,数据安全,预计 X 小时恢复」 |
| 内部 | 工作群 | 攻击类型、当前动作、预计恢复、需要谁配合 |
| 商家 | 工单/电话 | 「遭受 X 类型攻击,峰值 X,申请牵引/临时防护」 |
| 上游 | 如有 | 支付/短信服务商异常要同步 |
公告的禁忌:
- ❌ 别写「被黑客攻击」引发恐慌——「网络攻击」中性
- ❌ 别承诺「马上恢复」——攻击时长不可控,写「正在处置」
- ❌ 别沉默——用户自己发现站打不开 + 你不吭声 = 信任危机
四、阶段 4:引流与架构切换
4.1 HTTP 业务切 CDN(最快 10 分钟)
# 前提:TTL 提前调短过(没调过这次改了下次生效)
# 1. DNS 把 A 记录改为 CDN CNAME
# 2. 验证解析生效
dig +short 你的域名 # 应变成 CDN 节点 IP
# 3. 多地验证(用在线 DNS 探测工具)CDN 切过去,应用层攻击(CC)大部分被节点消化。
4.2 切高防(HTTP + 非 HTTP)
按迁移实操篇走五阶段——但攻击中可以简化:先引流止血,细节后补:
- 高防加回源(源站 IP + 端口)
- 源站加回源白名单(必须先做,否则切了流量源站全拒)
- DNS 切高防 IP(或游戏直连信息改高防 IP + 端口)
- 通知玩家新地址(游戏服没有域名,要群发)
4.3 降级预案(业务优先于完美)
| 业务类型 | 降级姿势 |
|---|---|
| 电商 | 关搜索/推荐接口,保下单和支付 |
| 社区/论坛 | 关注册/发帖,只读模式 |
| 游戏服 | 关公开服务器选项(不被列表收录),好友口令进 |
| API 服务 | 关非核心端点,保核心链路 |
| 全站 | 静态维护页「攻击恢复中」+ 联系方式 |
五、阶段 5:恢复与验证
攻击停止(高防后台「攻击已结束」或流量回落)后:
# 1. 服务状态
systemctl status nginx php-fpm mysql redis
# 2. 全功能验证(重点路径)
# 首页、登录、支付/下单、上传、API、管理后台——逐个点一遍
# 3. 数据完整性(被攻击时可能写入损坏)
mysqlcheck -u root -p --all-databases --auto-repair # MySQL 修复
# 游戏服:世界文件大小是否异常、启动有无报错
# 4. 日志里的真实 IP 恢复(切过高防/CDN 的)
tail -20 /var/log/nginx/access.log # 应该看到真实用户 IP(real_ip 配置过的话)
# 5. 限流策略回松(紧急限流调太紧会误伤)
# emergency.conf 的 rate 从 10r/s 逐步调到业务正常值恢复顺序:先核心业务(钱相关),再完整功能,最后调优。别一次性全放开——攻击者可能回头(多数会)。
六、阶段 6:复盘(攻击后 24 小时内)
| 复盘项 | 记录内容 | 产出 |
|---|---|---|
| 攻击画像 | 类型、峰值、时长、源分布 | 防护档位依据 |
| 响应耗时 | 发现→止血→恢复各多久 | 找出流程瓶颈 |
| 暴露面 | 怎么被盯上的(新服宣传?竞对?勒索?) | 运营改进 |
| 防护表现 | 误杀?黑洞多久?告警及时? | 续费/换商家依据 |
| 业务损失 | 掉线时长、用户/订单损失 | 预算申请依据 |
| 预案改进 | 这次慌乱在哪 | 更新 SOP |
把复盘点写进团队文档——第二次被攻击时,这份文档就是你的预案(大促预案篇)。
七、工具与资源速查
# 攻击中常用命令合集
ss -s # 连接总览
ss -tn state syn-recv | wc -l # 半开连接(SYN Flood)
ss -tn state established | wc -l # established(慢速攻击)
netstat -s | grep -iE "syn|drop|prune" # 内核计数器
tail -f /var/log/nginx/access.log | awk '{print $1}' | uniq -c # 实时请求来源
tcpdump -i eth0 -c 100 -nn # 抓包(eth0 按实际网卡)
dmesg -T | tail -50 # 内核日志(OOM/防火墙日志)
iptables -L -v -n # 规则命中统计
fail2ban-client status # 封禁状态八、预案模板(抄这个改成你的)
# XX业务 网络攻击应急预案
## 联系人
- 技术负责人:___ 手机:___
- 云商家工单:___
- CDN/高防值班:___
## 资产清单
- 主站:域名___ 源站IP___
- 备份站:___
- 游戏服:IP___ 端口___
## 分级响应
- 小攻击(限流能扛):运维处理,不升级
- 中攻击(CC 变种):切 CDN + 收紧规则,通知负责人
- 大攻击(带宽层):切高防 + 公告,全员待命
## 切换步骤
1. TTL 调短(___)
2. DNS 切 CDN(操作人:___)
3. 源站白名单(操作人:___)
4. 公告模板:___
## 回滚步骤
1. ___
2. ___九、小结
应急响应六阶段:确认(2 分钟判定攻击类型)→ 止损(按类型分流:引流/限流/熔断)→ 通知(用户和内部同步)→ 切换(DNS 切 CDN/高防)→ 恢复(核心功能优先验证)→ 复盘(24 小时内更新预案)。核心原则:流量层攻击别在服务器上挣扎(引流),应用层攻击先熔断贵接口(止损),全程保留证据(日志/截图),攻击后 24 小时内必须复盘(攻击者会回头)。把第六节的预案模板填好存在团队文档里——被攻击时不翻文档,靠的就是肌肉记忆和它。
相关阅读:
本文由财富云计算整理,我们提供高防服务器、CDN 防护与 NAT 型云服务器,无独立公网 IP 机型价格比独立 IP 省一半以上,攻击中需要紧急技术协助的联系我们。更多教程见端口速查表。
延伸阅读
- 高防误区与避坑清单:25 个坑+下单前必问 14 问+到货验货流程
- DNS 攻击防护专题:劫持、隧道、投毒、放大四类攻击与 DNSSEC
- 电商大促防攻击预案:T-14 到当天的分级响应与降级开关
- 源站真实 IP 隐藏完全指南:六大暴露面排查+NAT 型终极方案
- 日志分析找攻击源:Nginx 日志三维度分析法与证据固定
- iptables 抗 DDoS 配置模板:状态过滤+SYN 防护+防扫描+游戏服版
- OpenResty Lua 自研 WAF:动态限流+攻击特征检测+Redis 黑名单
- Nginx 进阶防护:连接层、请求层、行为层三层生产级配置

[...]# POST 请求 awk '$6 ~ /POST/ {print $1, $7}' access.log | sort | uniq -c | sort -rn | head十、小结日志分析三段论:粗筛(IP/URI/UA 三维度看轮廓)→ 细筛(时段曲线 + 单 IP 画像 + 状态码)→ 转化(封 IP、调限流、加防护)。两个前提:CDN 场景必须 real_ip 还原真实 IP[...]
2026-10-21 回复
[...]echo " * root /usr/local/bin/promo-monitor.sh" > /etc/cron.d/promo-monitor告警渠道的选择:企业微信/钉钉/飞书机器人免费且手机能收到——别用邮件,凌晨没人看邮箱。阈值宁低勿高:误告一次的成本是「看一眼」,漏告一次的成本是「站挂一小时没人知道」。日志聚合和可视化(Loki + Grafa[...]
2026-10-21 回复
[...]# 短信/微信能收到 = 出事时你收得到五个测试全过再签收。哪个不过,当天开工单——刚买的机器商家处理最快,拖过售后期你就是求人的那方。另外记录一个「体检基线」:平时的延迟、QPS、连接数——被攻击时对比基线,才知道「异常」是不是攻击(还是你自己过载)。九、小结高防避坑的核心认知:你买的不是「防护带宽数字」,是「清洗能力 + 架构支持 + 告警响应 + 售后稳定性」的组合。宣传页的数字会骗人(共享[...]
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 回复