应用层被打和带宽被打,完全是两码事:前者是堵住门口盘查进出的人,后者是拆掉大厦旁的环形路给车流腾地方,处理思路一旦搞反,要么钱白花,要么网站依然卡成幻灯片。
很多站长第一次遇到攻击时,打开监控面板发现流量图飙高,第一反应就是“加带宽”,但仔细一想,如果是应用层攻击,带宽可能连10%都没用满,服务器却已经CPU满载、数据库连接数爆表,今天就把这两种攻击的处理逻辑拆开讲清楚,顺带回答“网站被DDOS攻击怎么办”这个老话题。
第一步:先分清你被打的是哪一层
看四个特征,一分钟定位攻击类型
- 看带宽曲线,带宽被打时,流量图是巨型脉冲,从正常值直接冲到几百G甚至上T,曲线呈陡峭的尖峰,应用层攻击的流量图则像锯齿,上下起伏但峰值往往只有几十M到几G。
- 看服务器负载,带宽攻击下,只要链路没被打满,服务器CPU和内存通常还算平静;应用层攻击则相反,CPU直接飙到90%以上,MySQL连接数疯狂增长,PHP进程堆积。
- 看请求日志,应用层攻击的日志里会频繁出现同一个URL、同一个UA(用户代理)、同一个来源IP段反复请求;带宽攻击的日志往往是半连接或者根本没有完整请求进入。
- 看业务表现,带宽被打,页面是“转圈圈然后超时”,因为数据进不来;应用层被打,页面能打开一部分,但交互很慢,比如登录按钮点了没反应,接口报502。
打个比方:一个是堵路,一个是堵门
带宽攻击是把你机房到运营商之间的路全部堵死,所有合法用户挤不进来特征是断连,应用层攻击是路是通的,但一大群人挤在商场门口反复推门、问询、占着通道不走,真正想买东西的顾客进不来特征是变慢。
你可以直接用netstat -ant看连接状态,如果大量SYN_RECV堆积,那是典型的SYN Flood,属于带宽层或网络层攻击;如果大量ESTABLISHED连接挤在某些页面路径上,久不释放,那多半是应用层在搞鬼。
带宽被打的处理思路:分流、稀释、清洗
拉黑IP不解决问题,关键是让流量“有处可去”
带宽攻击的体量远超单台服务器的吞吐能力,此时在源站做任何防护都是徒劳,行业共识是:把攻击流量引流到具备大带宽的清洗节点,清洗后再把干净流量回源。
主流做法是接入高防IP或高防CDN,原理不复杂:DNS解析先指向高防节点,高防机房通过BGP广播宣告你的IP,所有流量先经过它的流量清洗设备,丢掉攻击包后,再把正常请求转发给源站,这就要求高防节点的总带宽大于攻击峰值,否则照样被打穿。

操作路径:从裸奔到上盾
- 第一步,联系IDC服务商开通高防IP,配置转发规则,注意,高防IP需要把源站的IP隐藏起来,回源方式一般用TCP转发或HTTP回源。
- 第二步,如果你的业务有多个机房入口,建议开启智能DNS调度,把不同运营商的用户解析到不同线路的高防节点上,分散压力。
- 第三步,给高防设置防护阈值,现在主流高防产品支持弹性防护,比如基础防护20G,弹性上限300G,攻击没超过20G时按基础价计费,超过后触发弹性计费注意看账单,不少用户被攻击一次才发现弹性价格不菲。
- 第四步,切换域名解析TTL值调低到60秒,预留切换时间,多数高防CDN解析生效时间在5到10分钟,这个窗口期业务会中断。
高防服务器和普通服务器区别到底在哪
很多用户问“高防服务器和普通服务器区别”,核心就差在带宽冗余和清洗能力上,普通服务器租10M独享带宽,攻击一来立刻打死,高防服务器一般自带100G到500G的防御带宽,放在高防机房内,机房的整体出口带宽通常是T级,但高防服务器不是万能的如果攻击打到1T,机房整体扛不住,所有租户一起遭殃,此时只能依赖上游运营商的流量黑洞或跨地域调度。
应用层被打的处理思路:拦截、限速、蹲点
应用层攻击打的是“业务逻辑的七寸”
CC攻击、慢速攻击、HTTP Flood都属于应用层攻击,核心手法是模拟正常用户请求,让服务器产生高额计算开销,带宽不是瓶颈,处理能力才是瓶颈,这时候你拉再多的带宽,等于给一辆堵在胡同里的车再加两箱油根本没有意义。
第一道防线:在Web服务器层做手脚
以Nginx为例,limit_req_zone限流模块是基础手段,配置方式:
limit_req_zone $binary_remote_addr zone=perip:10m rate=30r/m;
server {
location / {
limit_req zone=perip burst=50 nodelay;
}
}
这会把单一IP的请求频率限制在每分钟30次,超出部分直接返回503,但真实攻击往往来自分布式的IP池(肉鸡),单IP限流根本拦不住所以需要更精细的策略。
第二道防线:根据请求指纹做特征封锁
- UA(用户代理)封禁:攻击者常使用统一的UA头,在Nginx里写
if ($http_user_agent ~ "python|curl|sqlmap") { return 403; }即可拦下相当一部分基础攻击。 - 路径封禁:持续观察access.log,如果某些API接口在短时间内被高频请求且参数异常,直接对该路径开启WAF规则。
- Cookie校验:合法的首次访问会拿到Set-Cookie,后续请求携带Cookie才算“人”,攻击脚本往往不处理Cookie,这是区分人和机器的重要信号。

方法适合处理零散的CC攻击,但如果是专业攻击者模拟完整浏览器行为,这些就都失灵了,需要上第三层。
第三道防线:WAF与托管防护
专业WAF产品可以根据行为模型判定访问者是否是真人,比如鼠标轨迹、键盘输入间隔、页面停留时间等特征,是纯脚本难以模拟的,目前的云WAF产品都支持“人机验证”页面当检测到访问频率异常时,自动弹出滑块验证或数学题验证,通不过的直接丢弃。
在业务侧,你必须做几件事:
- 给动态接口加频控,比如验证码接口限制单IP每分钟5次。
- 给数据库连接池设置上限,防止连接数被打满。
- 静态资源(图片、JS、CSS)全部迁到CDN或对象存储,让Web服务器只处理动态请求,大幅降低计算压力。
实战案例:一场典型的应用层围攻
一个电商老板,业务跑在4核8G的云服务器上,平时日请求量约5万,某天下午订单接口突然大量超时,监控显示CPU跑满,带宽只有不到3M,查看Nginx访问日志,发现一个传参goodsId=1的商品详情页每秒被请求200次,来源IP分散在几十个C段,这就是典型的CC攻击。
对应的处理:先用iptables封锁了请求频率最高的前20个IP,再对该接口的goodsId参数做数值逻辑校验(正常用户不会在一秒内多次刷新同一商品页),最后给该路径加了一层CDN缓存,3分钟内恢复,随后在云WAF上配置了CC防护策略,阈值调到正常峰值的2倍,整个过程没有加1M带宽。
容易被忽略的基础问题:预算与选型
攻击防护的价格分布
按行业公开报价,高防IP低配(20G防护)包年一般在几千元区间,配置越高价格越贵,百G级别的防护套餐年费通常在数万到十几万不等,游戏高防服务器因为需要同时扛并发和DDoS,价格更高,月租从几百到数千元,视机房线路和防护能力浮动。
一个务实的建议:没必要一开始就买顶配,先预估业务的正常峰值流量,然后买“基础防护+弹性防护”组合,把成本压到最低,等真的被打到弹性上限,再考虑升级或更换机房线路。
源站架构的冗余意识
无论带宽层还是应用层,单点部署都是大忌,源站尽量做负载均衡,至少部署两台服务器,以简米云为例,通过SLB分发流量,后端挂两台ECS,即使一台被打挂,另一台还能扛一阵,数据库和Web服务器分离,数据库走内网,避免被扫描到外网端口。

还有一个隐蔽但关键的细节:隐藏源站IP,如果源站IP暴露,攻击者可以直接绕过高防打源站,这时候高防再大也白搭,很多用户踩过的坑是:在SSL证书信息里泄露了源站IP,或者解析记录中遗留了历史A记录,排查方式是,使用dig命令查看目标域名的全部解析记录,确认没有源站IP直接指向公网。
当两种攻击同时到来时,先保什么
现实中,不少攻击是混合型的,先打带宽让你手忙脚乱,再趁你切换CDN时对源站发起CC攻击,处理顺序有讲究:
- 第一步,先保网络连通性,如果链路已经中断,一切免谈,立刻切换DNS到高防节点,优先恢复访问。
- 第二步,再保业务可用性,链路恢复后,打开WAF的CC防护和IP黑白名单,对非核心接口实施限流。
- 第三步,最后保数据一致性,将订单、支付等关键接口单独加一层鉴权(如Token二次校验),牺牲少量用户体验换取数据安全。
记住这个顺序背后最简单的逻辑:链路不通,什么都看不到;业务不响应,什么都做不了。
常见问题速答
网站被DDOS攻击怎么办?
先判断攻击类型,看带宽曲线是否超过正常峰值数倍,如果是则走流量清洗路线接入高防IP或高防CDN,调整DNS解析,如果是服务器CPU爆高但带宽正常,重点排查access.log中是否存在高频路径,结合WAF进行特征封禁和频率控制,两种场景都不要第一时间去拉带宽或重启服务器,因为治标不治本。
高防服务器和普通服务器区别包括哪些?
普通服务器的带宽资源用于日常业务,攻击流量一进来就会占满链路;高防服务器的带宽冗余较大但核心在于部署在高防机房,借助机房级的流量清洗设备过滤攻击包,实际使用中,高防服务器需要配置转发规则,隐藏源站IP,同时搭配WAF处理应用层威胁。
为什么加了高防还是有部分用户打不开网站?
排查顺序:确认DNS解析是否已生效,部分地区DNS缓存需要更长时间;确认高防产品的防护阈值是否低于实际攻击峰值,如果攻击流量超过了采购的高防能力,会被运营商黑洞路由直接丢弃;确认源站和回源线路的带宽是否充足,有些场景攻击流量被挡住,但回源链路的质量导致响应慢。
带宽层攻击讲究的是“扛得住、洗得净”,应用层攻击讲究的是“识别准、响应快”,方向对了,技术手段才有意义,遇到攻击时别急着拍脑袋加资源,先花10分钟看监控面板,分清层次,再动用对应的武器库,这才是不花冤枉钱、不浪费时间的最优解。