说明:本文是旧文的重新整理版本,重点放在中小型网站能够提前准备和实际执行的措施。
DDoS 的现实边界是:源站无法仅靠几条系统参数抵挡超过接入带宽的流量。真正有效的工作,是在攻击前把服务拆成可保护、可降级、可切换的层次,并提前确定由谁负责检测、清洗和恢复。
一、先识别需要保护的对象
- 公网 IP、域名解析和权威 DNS;
- 网站、API、登录、支付回调等关键入口;
- 反向代理、应用服务器、数据库和缓存;
- 上游带宽以及云服务商提供的基础防护能力。
应为关键入口设定正常基线,包括请求量、并发连接、带宽、错误率和响应时间。没有基线时,很难区分业务高峰、程序故障和攻击流量。
二、攻击前要完成的准备
- 隐藏并限制源站:公网业务尽量通过 CDN、反向代理或清洗服务进入;源站防火墙只允许可信回源地址和管理网络。
- 减少不必要的暴露:关闭无关端口和服务,管理入口使用独立地址、访问控制和多因素认证。
- 为应用设置边界:配置连接超时、请求体大小、并发上限、接口限速和队列长度;对登录、查询、短信等高成本接口单独控制。
- 准备降级方案:明确哪些接口可以关闭、哪些页面可以静态化、哪些非核心任务可以暂停。
- 建立联络清单:记录主机商、带宽提供商、CDN 或清洗服务商的紧急联系方式和开通条件。
三、告警发生后的判断顺序
- 确认是否为发布故障、数据库阻塞或资源耗尽,避免把普通故障误判为攻击。
- 查看带宽、连接数、请求路径、状态码和来源分布,判断主要压力在网络层还是应用层。
- 先保护登录、支付通知和管理接口,再处理普通页面访问。
- 流量已占满链路时,尽快联系上游做牵引、清洗或黑洞处置;此时只调整源站参数通常没有意义。
- 保留时间线、流量图、日志摘要和处置操作,供后续复盘。
四、不要把单点措施当成完整防护
封禁少量 IP、临时修改内核参数、安装 WAF,都可能对特定情形有效,但无法单独解决所有 DDoS。网络层流量、连接耗尽和应用层高成本请求需要不同的检测和缓解手段。防护设计应同时考虑上游容量、源站隐藏、应用限流和业务降级。
五、复盘时关注什么
复盘不只统计峰值流量,还要记录首次告警时间、识别耗时、服务商响应时间、业务恢复时间、被误伤的正常用户以及日志是否完整。随后把临时措施转成长期配置,并至少进行一次演练。