直播平台被混合攻击带宽打满怎么办?答案只有四个字:先保可用。 就是放弃“硬扛”思路,立刻封禁境外流量、强制切走攻击流量、启用高防资源,先让直播间不卡顿,再谈清洗和溯源。
当“带宽打满”成为常态,我们到底在和谁打仗?
很多平台运营者会陷入一个误区:以为带宽被打满就是服务器带宽不够,于是连夜升级带宽,结果发现,升级到100G照样被打穿,这不是带宽的问题,是攻击模型发生了变化。
近年来,混合攻击已经成为国内直播平台最常见的“死法”,所谓混合,不是指DDoS和CC同时来,而是指攻击者会精准抽取你防御架构里最薄弱的环节,先用大流量UDP Flood堵死你的入口带宽,再穿插应用层CC攻击打你的源站API,你如果只防了其中一种,另一种就会立刻把服务拖垮。
行业共识认为,这类攻击的峰值流量动辄几百G,甚至上T,对于普通体量的直播平台来说,根本不可能靠自建机房硬接,救场的核心原则不是“堵”,而是“绕”和“拆”。
直播平台被混合攻击带宽打满怎么办?先按这个顺序执行
第一步不是找防护,而是止损。 很多技术负责人在慌乱中喜欢先重启服务,这是最浪费时间的动作,面对带宽被打满,哪怕你关掉服务,攻击流量依然会占用物理带宽,机房交换设备依然会过载,正确的顺序应该是:
- 立即在防火墙或CDN控制台封禁海外IP段:国内直播平台的用户主体是境内用户,混合攻击里相当一部分是来自境外僵尸网络,直接封掉全部境外IP,能瞬间砍掉至少一半的垃圾流量,具体操作路径:登录高防IP管理后台 -> 防护设置 -> IP黑白名单 -> 导入海外IP段库,各大云厂商都有现成的IP库文件。
- 开启“攻击流量丢弃”模式:多数高防服务商支持在清洗节点上直接丢弃特定协议报文,如果你看到监控面板上UDP流量占绝对大头,就在高防上开启UDP丢弃策略,只允许TCP 80/443或自定义端口通过。
- 手动压低WebSocket并发数:直播互动靠长连接,但CC攻击也爱打长连接,在Nginx配置里,把
worker_connections参数临时从65535降到10240,同时把keepalive_timeout从默认的65秒调到10秒,这个操作会让“正常观众”重新握手时稍微卡一下,但能直接把刷连接的僵尸请求挡在门外。
第二步,立刻切换流量解析路径。

直播平台和普通网站最大的不同在于,它的播放域名和Web管理域名往往是分开的,你在DNS服务商那里,把播放域名的解析直接CNAME到高防IP或者高防CDN,不要解析到源站IP,操作路径:DNS解析控制台 -> 找到直播播放域名 -> 修改记录类型为CNAME -> 填入服务商提供的防护别名指向。
直播平台高防CDN和裸奔对比,正确选型才不白花钱
别急着买最贵的高防套餐,直播流量和网站流量不一样,带宽占用是持续性的,不是突发性的,很多直播平台在救场时犯的最大错误,是买了一堆“高防IP”,结果发现带宽还是被拉满因为高防IP清洗的是源站IP,不负责CDN分发。
这里需要做一个高防CDN和裸奔的对比:
- 裸奔状态(未接入任何防护):带宽跑满,主播推流断断续续,观众端黑屏转圈,运维看着流量监控图从10G直线冲上50G,然后机房打电话通知你“账号欠费或流量超限”,因为机房不是你家开的,不会帮你免费扛攻击。
- 接入了高防CDN:所有播放请求先打到CDN边缘节点,节点自己就能抗下几百G的带宽攻击,攻击流量被分散在上百个边缘节点上,每个节点只承担几G压力,源站压力几乎为零。
那具体怎么选?记住一个本质:如果攻击类型主要是大流量DDoS,选“带宽型高防CDN”,国内主流云厂商的这类产品起步带宽就是300G以上;如果攻击类型包含大量CC,选“并发型高防CDN”,这类产品对动态请求的转发能力和缓存策略更强。 价格方面,直播平台高防方案价格按“保底带宽+弹性峰值”计费,保底带宽一般买10G足够日常使用,弹性峰值按天结算,别贪便宜买纯静态加速CDN,那种产品遇到WebSocket长连接会直接断流。
接入高防CDN后,别忽略这两个配置细节
光是CNAME解析过去还不够,直播平台要特别注意:
- 回源端口自定义:默认高防CDN只转发80/443端口,但直播服务通常用RTMP推流(1935端口)和WebSocket(比如8080端口),一定要在CDN控制台的“回源配置”里,添加对应端口映射规则,配置路径:内容分发网络 -> 域名管理 -> 回源设置 -> 端口配置 -> 添加,否则你会出现“网页能看但直播间进不去”的诡异故障。
- URL鉴权必须开:不开鉴权的CDN等于把你的直播流地址裸奔在公网上,别人拿到你的播放地址,可以随意盗播,还能伪装成你的域名去申请高防资源,最终把账单算在你头上。

带宽被打满之后,源站服务器的“拆流”自救
即使前端接好了高防CDN,如果源站服务器本身还在裸奔,攻击者一旦绕过CDN直接打源站IP,你照样会崩,源站侧也要做联动操作。
核心动作:把推流和拉流彻底隔离。 很多平台在架构上是推流和拉流共用一台服务器或一组交换机,这在平时没问题,被打的时候就是致命的,推流占用的带宽虽然不大,但推流协议(RTMP)握手频繁,攻击者最爱打这个环节。
实操步骤:
- 在源站防火墙(如iptables)上,设置规则只允许CDN回源IP段的访问,规则示例:
iptables -A INPUT -s 高防CDN回源网段 -p tcp --dport 1935 -j ACCEPT,然后加上一条iptables -A INPUT -p tcp --dport 1935 -j DROP,把其余所有直连的1935请求全部丢弃。 - 观察服务器负载,如果源站CPU已经跑满,不要尝试去排查日志,直接重启流媒体服务进程,优先保证新的推流连接能建立。
- 临时关闭转码功能,很多直播平台的转码模块非常吃CPU,被打时转码集群会先挂掉,在管理后台把“清晰度转码”从“自动”改为“原画直转”,释放掉这部分压力。
备用链路:别等到被打满才想起拉一条专线
杭州有家做秀场直播的平台,之前被同行的恶意竞争“照顾”过一阵子,他们的救场方式不是硬防,而是提前拉了一条挂载在另一个运营商机房的备用专线,被打满后,直接把域名权威DNS的生效时间(TTL)从600秒降到60秒,然后把流量切换到了备用线路。
不用等攻击结束,只要备用链路的带宽还有富余,直播就能继续,攻击流量只会追着你的“主IP”打,不会自动换目标。
救场结束后的复盘检查清单,避免下次再被打穿
别把打满带宽当成一次孤立事件,混合攻击是有试错成本的,攻击者会记录你这次的反应速度,下次会换一种打法,救完火之后要做这几件事:
检查你的高防套餐是否配错了地域
地域词是个容易犯的错,你买的高防IP节点如果在北京,而你服务器在广州,跨地域的延迟会拖垮直播体验,更关键的是,高防机房的清洗能力是和当地运营商骨干网挂钩的,业内专家指出,江苏、浙江、广东这几大省份的骨干网带宽资源最充裕,高防节点在这些地方的抗攻击上限更高。 曾经有广州的客户买了上海的高防IP,结果攻击从广东方向打过来,在上海清洗完,回源到广州,一来一回延迟多了20毫秒,直播声音和画面出现了可感受到的错位。

核查“弹幕/聊天”系统的连接策略
很多混合攻击中的CC,瞄准的不是视频流,而是弹幕网关,视频流可以走UDP或HTTP-FLV,但弹幕消息走的是WebSocket,每次连接都要经过证书验证和鉴权,攻击者一旦摸到你的弹幕网关地址,随手就能发起几十万个连接。
救场操作:如果你发现WebSocket连接数暴增,在网关服务器的/etc/sysctl.conf里,调整两个参数:net.ipv4.tcp_max_syn_backlog=2048,net.ipv4.tcp_synack_retries=1,缩短半连接存活时间,这个操作很管用,但要注意,它也会让弱网用户发送弹幕失败,属于丢卒保车。
三个最终需要确认的数据指标
- 攻击峰值是否收敛到保底带宽的60%以内,如果是,说明高防扛住了大部分流量。
- 回源带宽是否小于5Mbps,回源带宽高说明CDN缓存命中率低,可能有人在偷你的源站资源或者动态请求没走缓存。
- 主播推流是否从RTMP切换到了SRT协议,SRT协议自带前向纠错,在丢包严重的网络环境下比RTMP稳定得多,也更能抵抗一定程度的网络抖动。
最后说一句实在话:没有永不被打满的直播平台,只有备好预案的快反应团队。 每次带宽被打满,都是一次真实的压力测试,把刚才说的这些操作存成一份SOP文档,下次再遇到类似情况,照着做就行,别临场发挥。
直播平台被混合攻击带宽打满”的常见问答
问:是不是把所有流量都切到高防CDN,就不用管源站了?
高防CDN解决的是“带宽”层面的问题,解决不了“计算”层面的问题,如果攻击者手握你的源站IP,直接发起几十万QPS的HTTP请求,你的源站CPU照样被打满,切完CDN之后,一定要在源站上配置好IP白名单,只允许CDN回源段的访问,这是防止源站IP泄露后的兜底动作。
问:高防IP和高防CDN能不能只用其中一个?
可以,但要清楚自己的短板,如果你是纯直播播放业务,所有观众都在看流,没有复杂的登录交互,高防CDN就够了,价格也相对划算,如果你的直播平台还带复杂的PK、送礼、评论区实时刷新,这些动态请求CDN缓存不了,必须回源,这时候就得在高防IP后面再挂一层源站,否则CDN一回源,源站扛不住动态请求,照样“秒黑”,直播平台高防方案价格不是靠省出来的,是靠算出来的。