DDOS攻击通过控制大量傀儡机向目标服务器发送超出处理能力的请求,导致网站无法响应正常用户。这种攻击不入侵系统,而是耗尽带宽、连接数或计算资源,是互联网最常见的恶意流量冲击形式。

一、DDOS攻击的常见类型与表现
在着手防御之前,必须先弄清打过来的是哪一类流量。 volumetric 攻击以海量数据包塞满出口带宽,用户侧表现为网页完全打不开、ping 值飙到几千毫秒。这类攻击最直观,也最容易用流量图发现异常。
另一种常见的是协议型攻击,例如 SYN Flood,它利用 TCP 握手漏洞占满半连接队列,让合法用户的三次握手永远完不成。应用层攻击则伪装成正常请求,比如频繁刷新搜索接口,单看 IP 分散、速率不高,却能把数据库拖死。只有分清类型,才能选对清洗策略。
1.1 带宽耗尽型
此类攻击常来自僵尸网络,峰值可达数百 Gbps。小型机房根本无力承载,必须依赖上游运营商或云厂商的清洗中心。观察到外网入向流量远超业务日常值三倍且持续不落,基本可判定。
1.2 资源耗尽型
资源耗尽不一定伴随大数据量,可能只是大量慢速连接。用 netstat 看到 TIME_WAIT 或 SYN_RECV 状态堆积如山,就是典型征兆。此时服务器 CPU 可能不高,但新连接就是进不来。
二、遭受攻击时的紧急解决步骤
一旦发现网站不可达,第一动作是联系机房或云服务商开启流量清洗,同时把域名解析切到高防 IP。很多站长自己重启服务器,结果刚起来又被打挂,反而延长了中断时间。
紧急预案里应提前写好切换脚本,平时就把业务 IP 隐藏在 CDN 后面。攻击发生时,关闭源站直连端口,仅允许高防回源,这样傀儡机无法直接命中真实地址。如下表格列出常用应急手段对比:
| 手段 | 生效时间 | 适用规模 | 成本 |
|---|---|---|---|
| 高防IP牵引 | 5至30分钟 | 大流量 | 按防护峰值月付 |
| CDN隐藏源站 | 即时 | 中小流量 | 较低 |
| 本地防火墙限连 | 手动配置较慢 | 协议型小攻 | 一次硬件投入 |
2.1 联系服务商
若是云主机,后台通常有一键防护。工单写明攻击开始时间、现象截图,能加快审核。切勿隐瞒,因为共享机房可能波及其他租户,早报早隔离。
2.2 临时降级
攻击猛时可以暂时关掉图片、视频等大文件服务,只留核心 API,减少单请求资源消耗。用 Nginx 限制单 IP 并发与速率,能拦掉一部分粗放型应用层刷法。
三、长期防止被攻击的架构方案
靠临时救火总归被动。稳妥的防法是在架构之初就做分层:最外 CDN 做缓存与边缘拦截,中间高防做流量清洗,源站仅接收白名单回源。这样即便被打,也只影响边缘节点。
业务层也要写健壮代码,比如搜索接口加验证码与令牌桶限流,防止被当作攻击跳板。定期压测,清楚自己能扛多少 QPS,才知何时该扩容。下文给出具体组件搭配。
3.1 高防IP与CDN组合
把域名 CNAME 到高防,高防再回源 CDN,CDN 回源站。两层之间用私有协议,外部看不到真实拓扑。选购时看清洗能力是否覆盖历史峰值一点五倍,避免被击穿。
3.2 系统级加固
Linux 可开启 syncookies 应对 SYN Flood,调大 somaxconn。用 iptables 或 nftables 做连接数配额。这些不贵但常被忽略,却是协议层攻击的廉价防线。
四、日常监控与演练
防御不是配完就完事。需对流量基线告警,夜间突增立即短信通知。每季度做一次红蓝对抗,自己用压力工具打一波,验证切换流程是否顺手。
不少团队平时懒得演练,出事手忙脚乱。把应急手册写成 checklist,谁值班谁照做,能省下宝贵恢复时间。网站安稳,生意才不被流量洪水冲走。