Apollo 技术文档Apollo 技术文档
指南
  • 架构概述
  • BigWorld 架构深度解析
  • BigWorld 进程架构与玩家生命周期
  • AOI九宫格系统详解
  • AOI广播与消息去重
  • Base 模块
  • Core 模块
  • Runtime 模块
  • Data 模块
  • Network 模块
  • /modules/actor.html
  • Game 模块
  • BigWorld 模块
服务器应用
API 参考
QA
GitHub
指南
  • 架构概述
  • BigWorld 架构深度解析
  • BigWorld 进程架构与玩家生命周期
  • AOI九宫格系统详解
  • AOI广播与消息去重
  • Base 模块
  • Core 模块
  • Runtime 模块
  • Data 模块
  • Network 模块
  • /modules/actor.html
  • Game 模块
  • BigWorld 模块
服务器应用
API 参考
QA
GitHub
  • MMORPG 架构 QA

Q90: 如何应对 DDoS 攻击?

核心结论

DDoS 防护不是应用层单独能解决的问题,它本质上是“分层削峰和隔离故障域”的能力建设。

更现实的思路通常是:

  • 上游网络层挡大流量
  • 接入层挡连接和协议滥用
  • 应用层挡高成本逻辑请求

如果希望单靠游戏服自己扛住大规模 DDoS,通常是不现实的。

一、先区分几类攻击

常见可以分成:

  • 容量型攻击:打满带宽
  • 协议型攻击:打满连接和内核资源
  • 应用型攻击:耗尽业务处理能力

对在线游戏来说,还经常会出现“伪正常行为”的攻击:

  • 登录洪峰
  • 假角色接入
  • 高频但看似合法的业务请求

二、为什么必须分层防

因为不同层的成本差别很大:

  • 越靠近上游,越便宜
  • 越靠近业务,越贵

所以最理想的处理顺序是:

  • 在网络和清洗层挡掉大流量
  • 在网关层挡掉异常连接和格式错误
  • 只有较可信的请求才进入业务服

三、网关层是关键防线

对游戏系统来说,网关层通常要承担:

  • 连接限速
  • 握手和协议校验
  • 基本鉴权
  • 早期丢弃无效请求

这层做得越稳,后端业务服越不容易被拖垮。

四、应用层也要防“低流量高成本”攻击

很多攻击并不追求超大流量,而是专门命中高成本路径,例如:

  • 登录验证
  • 匹配入队
  • 排行榜查询
  • 高频创建会话

这类问题更需要:

  • 接口限流
  • 缓存和降级
  • 高成本路径保护

五、降级策略必须提前准备

攻击期间,不是所有功能都必须保持完全正常。

更稳妥的做法通常是预先定义:

  • 哪些功能可以关闭或降级
  • 哪些路径必须优先保活
  • 哪些非核心功能暂时停用

例如:

  • 暂停部分排行榜实时更新
  • 限制注册和某些后台功能
  • 收紧高成本接口

六、观测和联动很重要

DDoS 防护不能只靠单机日志判断。

通常至少要联动观察:

  • 带宽与连接数
  • SYN / ACK 异常
  • 登录成功率
  • 网关拒绝率
  • 业务接口异常分布

这样才能判断攻击打到了哪一层。

七、工程上更稳妥的组合

常见做法是:

  • 上游高防或清洗服务
  • 网关层限速和连接保护
  • 应用层限流与降级
  • 关键业务接口加风控和缓存

这是一套体系,不是某一台机器或某一个中间件的能力。

八、常见误区

1. DDoS 主要是带宽问题

不完整。很多游戏系统真正先死的是连接资源和应用层高成本路径。

2. 有 CDN 或高防就够了

上游能挡很多流量,但应用层滥用和业务热点仍要自己处理。

3. 只有攻击时才需要想降级方案

真到攻击来了再设计,通常已经太晚。

参考资料

  • 高防、接入层限速和应用层降级实践资料
在 GitHub 上编辑此页
最后更新: 3/20/26, 6:06 AM
贡献者: cuihairu