服务器被 DDoS 攻击后怎么恢复

2026-10-28更新于 2026-11-02故障处理约 7 分钟

被攻击之后的恢复,不只是「等它停」。处理不当会留下后遗症:数据损坏、IP 被拉黑、玩家流失。

这篇按时间线讲,从攻击中到攻击后。

攻击还在进行时

1. 先保业务,再查原因

很多人第一反应是分析攻击来源、抓包取证。但业务正在流血,先止血。

  1. 切流量。如果域名解析到源站,立刻切到防护节点或 CDN。这一步最快见效。
  2. 换 IP。如果攻击是直接打 IP,且没有防护,联系机房换一个新 IP(注意:新 IP 很快会被重新发现,只是临时缓解)。
  3. 关非核心服务。排行榜、公告、活动页面这些先关掉,把资源留给核心玩法。
  4. 发公告。告诉玩家发生了什么、预计多久恢复。沉默比掉线更伤玩家信任。

2. 记录证据

边处理边记录,这些后面有用:

  • 流量监控截图(攻击开始时间、峰值、持续时间)
  • 服务器负载截图(CPU、连接数)
  • 攻击源 IP 列表(从日志提取)
  • 机房/云厂商的告警通知

如果后续要报警或者向服务商申诉,这些是必要材料。

攻击停止后

1. 验证数据完整性

这一步最容易被跳过,但最重要。

攻击期间数据库可能被写入脏数据,或者有未完成的事务。检查:

  • 玩家账号是否完整(有没有凭空消失的)
  • 充值记录是否对得上
  • 物品/装备数据有没有异常
  • 数据库表有没有损坏(用 CHECK TABLE)
重点:有些攻击是「声东击西」——用 DDoS 吸引你注意力,同时尝试入侵数据库。所以攻击停止后一定要检查有没有异常登录、有没有被植入后门。

2. 检查服务器是否被入侵

  1. 看登录日志,有没有陌生 IP 的 SSH/RDP 登录
  2. 看进程列表,有没有不认识的进程
  3. 看计划任务/crontab,有没有可疑的定时任务
  4. 看网站目录,有没有新增的可疑文件(webshell 通常是 .php/.aspx 小文件)
  5. 检查数据库账号,有没有新增的陌生账号

3. 清理攻击痕迹

  • 封禁攻击源 IP 段(在防火墙层面)
  • 清理日志里的垃圾请求(可选,主要是为了后续分析方便)
  • 如果 IP 被 Google/百度 标记为恶意,提交解封申请

4. 恢复玩家信任

这个比技术恢复更难:

  • 补偿。按掉线时长给补偿,这是行业惯例
  • 透明。公告说明原因,别含糊其辞
  • 承诺。说明后续会怎么防,给玩家信心

长期:避免再次发生

1. 源站 IP 彻底隐藏

这是根本。被攻击过一次的服务器,会被记在攻击者的名单里,后面还会反复被试探。

具体做法:

  • 客户端不直连源站,走节点接入
  • 源站防火墙只放行防护节点的回源 IP
  • 子域名、测试环境、后台系统也要处理,别留后门

2. 建立监控告警

监控项告警阈值
入向带宽超过基线 3 倍
CPU 使用率持续 5 分钟 > 80%
连接数超过正常峰值 2 倍
单接口 QPS超过基线 5 倍
数据库连接数超过 80%

告警要能推到手机上,别只发邮件。

3. 准备应急预案

提前写好「被打时怎么办」,包括:

  • 谁负责决策(切流量、关服务)
  • 服务商的紧急联系方式
  • 备用 IP、备用节点
  • 玩家公告模板

真出事的时候,慌乱中做的决定通常是错的。

4. 定期备份

这是最后一道防线。要求:

  • 每天自动备份数据库
  • 备份文件存到不同服务器(别和被攻击的机器放一起)
  • 定期验证备份能否恢复(很多人备份了但恢复不了)

一个真实教训

见过一个案例:服务器被打了两小时,流量攻击本身没造成数据损失。但攻击者在攻击期间通过一个未修补的漏洞进了数据库,把玩家表清空了。

等发现的时候,备份是三天前的。三天内的充值记录全没了,玩家闹翻天。

教训是:DDoS 只是表面,真正的风险是它掩护下的入侵。

小结

阶段要做的事
攻击中切流量、关非核心、发公告、记证据
刚停止查数据完整性、查是否被入侵、清痕迹
恢复期补偿玩家、透明沟通
长期隐藏源站 IP、建监控、备预案、每日备份

关于怎么隐藏源站 IP,可以看 游戏盾能破吗 那篇里的六条泄露途径。

想先验证线路质量?不限时长的免费调试实例,规格与个人版一致,不自动转正、不产生费用。
领取调试实例