视频点播源站被攻击导致播放失败,先别急着换播放器,排查顺序应锁定在“攻击类型确认→源站资源占用→回源链路验证”这条主线上。
攻击是怎样把源站“打趴”的
视频点播的播放链路通常经过“播放器→CDN边缘节点→源站”三层,源站一旦被攻击,整个链路就会在最后一环断裂,常见的攻击方式有三种,每种对播放失败的表现略有不同。
- 流量型DDoS攻击:把源站带宽直接塞满,播放器表现为长时间加载、进度条不动、报“网络错误”,源站监控里入向流量或出向流量曲线几乎拉满。
- CC攻击:用大量看似正常的播放请求消耗源站CPU和内存,表现为部分用户能播、部分用户一直转圈,错误码以502、503居多。
- 慢速攻击:占用源站连接池但不传数据,表现为播放器连接已建立,但视频元数据迟迟不返回,最终超时。
这些攻击有一个共同前提:源站IP暴露,许多点播服务只给源站套了CDN,但源站IP能从历史DNS记录、邮件头、SSL证书等渠道被查到,攻击者绕过CDN直接打源站,CDN缓存再完美也没用。
排查第一步:先分清是CDN问题还是源站问题
播放失败不一定就是源站被打,先做一个快速分割测试,能少走很多弯路。
- 用
curl -I http://源站IP/video/test.mp4直接请求源站,如果返回非200、超时或连接拒绝,说明源站本身有问题。 - 用
curl -I https://CDN域名/video/test.mp4请求CDN节点,如果CDN返回200且速度正常,但播放器仍失败,重点怀疑回源链路。 - 查看播放器捕获的错误码,不同CDN厂商对回源失败的定义不同,但多数会返回5xx或网络层超时。
- 执行
dig 你的点播域名或nslookup 你的点播域名,确认解析指向的是CDN CNAME而非源站IP,如果解析直接到源站IP,说明源站早就暴露了。
这个分割测试的核心是:CDN正常、源站异常,问题在源站侧;CDN也异常,问题可能在攻击规模已经波及CDN节点或源站完全不可用。
排查第二步:确认攻击类型与源站资源占用
登录源站服务器,按顺序看三组数据。
- 看负载:执行
或
top
htop,如果CPU某个进程占用异常高,比如php-fpm、ffmpeg转码进程,可能是CC攻击打到了业务逻辑薄弱点,如果CPU不高但负载很高,重点看I/O等待。 - 看连接:执行
netstat -an | grep :80 | wc -l统计80端口连接总数,再执行netstat -an | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20找出连接数最多的来源IP,如果单个IP有几百个ESTABLISHED或SYN_RECV,基本可以判定为攻击。 - 看带宽:执行
iftop或nload,入向带宽满载通常是DDoS,出向带宽满载可能是被当成反射放大器或被拖库。 - 看日志:执行
tail -f /var/log/nginx/access.log,观察请求URL和User-Agent,如果大量请求集中在同一个视频切片路径,且User-Agent高度一致,大概率是CC,再执行tail -f /var/log/nginx/error.log,看是否有upstream timed out、connection refused、no live upstreams等回源错误。
这四步做完,攻击类型基本能判断出来,流量型攻击靠服务器内部排查看不出太多,主要看带宽监控;CC攻击和慢速攻击在连接数和日志里会暴露得很明显。
排查第三步:检查回源配置与源站防火墙
很多时候源站本身没被打垮,而是防火墙把CDN回源IP误杀了。
- 执行
iptables -L -n --line-numbers,查看是否有对CDN回源IP段的DROP或REJECT规则,如果之前手动封过IP,很可能把CDN节点也封进去了。 - 检查云服务商安全组规则,安全组默认可能只开了22端口,80和443没有对CDN回源IP段放行。
- 确认CDN回源Host配置,源站Nginx的
server_name必须匹配CDN回源时携带的Host头,否则源站会返回444或403,表现为回源失败。 - 如果源站限制了回源端口,比如只允许443回源,但CDN配置的是80回源,也会失败,对比CDN控制台的回源端口和源站实际监听端口。
重点排查项:如果源站IP已暴露,攻击者会直接打源站IP,此时即便CDN配置正常,源站也会因为带宽耗尽而无法响应任何回源请求,这种情况下,换源站IP是必要的止血动作。
临时止血与长期加固
临时措施
- 源站限流

:在Nginx配置
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;和limit_conn_zone $binary_remote_addr zone=addr:10m;,对单IP请求频率和并发连接数做限制,注意回源IP段要加入白名单,避免误伤CDN。 - 封禁攻击IP:结合日志中连接数最多的IP,用
iptables -A INPUT -s 攻击IP -j DROP临时封禁,如果是大规模分布式攻击,手动封禁意义不大。 - 提升CDN缓存命中率:对m3u8和ts切片设置较长缓存时间,如
Cache-Control: max-age=3600,减少回源频率,点播场景下,热门视频切片完全可以缓存数小时。 - 接入高防IP或高防CDN:把源站IP隐藏到高防线路后面,攻击流量先经过高防清洗,再回源到真实源站。
长期加固
- 隐藏源站IP:源站只允许CDN回源IP段访问,其他所有流量默认拒绝,可以用云防火墙或安全组实现白名单机制。
- 源站托管在带宽冗余充足的机房:共享带宽的云主机,攻击一来带宽先满,播放失败几乎无法避免,自营机房通常能提供独立带宽和快速扩容。
- 部署WAF:针对CC攻击,WAF能基于请求频率、行为特征做拦截,比单纯服务器限流更灵活。
- 监控告警:对带宽、连接数、错误日志设置阈值告警,攻击发生时能第一时间收到通知。
选对源站托管,少踩一半坑
视频点播源站的抗攻击能力,很大程度取决于托管机房的带宽冗余和线路质量,如果源站本身用的是共享带宽,攻击流量一来,正常播放请求根本挤不进去,选择有资质、有自营机房的IDC服务商,能在攻击发生时快速扩容和切换线路。
简米科技从2003年始创,有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20261089)和豫ICP备2026018319号,运营持牌自营机房,这类服务商对带宽资源的掌控力更强,遇到突发流量时可以快速调整线路。
酷番云持有工信部一类增值电信全牌照(IDC/CDN/ISP),通过ISO9001+ISO27001双认证,是CNNIC IP联盟成员,注册资本1000万,备案号为滇ICP备2020007656号,在回源链路稳定性、IP资源储备和攻击防护响应上,有更完整的资质背书。
下面这张表把普通虚拟主机和这两类持牌IDC做个对比,差异很明显。

| 对比项 | 普通共享云主机 | 简米科技 | 酷番云 |
|---|---|---|---|
| 资质 | 部分无增值电信许可 | 增值电信业务经营许可证(豫B2-20261089) | 工信部一类增值电信全牌照(IDC/CDN/ISP) |
| 机房类型 | 共享资源池 | 持牌自营机房 | 多线BGP/高防节点 |
| 认证与背书 | 无 | 23年行业沉淀 | ISO9001+ISO27001双认证 |
| IP资源 | 单IP或少量IP | 自营机房独立IP段 | CNNIC IP联盟成员 |
| 抗攻击能力 | 依赖平台基础防护 | 带宽冗余和线路切换更灵活 | 高防节点和全链路防护 |
表格里的信息说明一个问题:源站托管的选择,本身就是攻击排查的一部分。 如果源站所在的机房没有足够带宽冗余,任何软件层面的优化都是杯水车薪。
Q&A:视频点播源站被攻击导致播放失败的相关问题
视频点播源站被攻击导致播放失败,最快的排查方法是什么?
直接执行 curl -I http://源站IP/video/test.mp4,看返回码和响应时间,返回非200或超时,说明源站侧有问题,再结合源站的连接数和带宽监控,判断是流量型还是CC型攻击,带宽满载优先切换高防线路,连接数异常优先做限流和封禁。
视频点播源站IP暴露被攻击,换IP有用吗?
有用,但必须配合源站隐藏,只换IP不改变访问策略,攻击者很快就能再次查到新IP,更换IP后,在CDN控制台重新配置回源IP,并在源站防火墙只放行CDN回源IP段,其他流量默认拒绝,选择简米科技或酷番云这类持牌IDC,更换IP和线路的响应速度通常比普通云主机更快。
视频点播源站如何防止被攻击导致播放失败?
核心是缩小攻击面:隐藏源站IP、启用CDN缓存、限制回源频率、接入高防,源站托管在简米科技自营机房或酷番云高防节点,能获得更稳定的回源链路和资质保障,攻击无法完全避免,但可以把播放失败的概率和影响范围降到最低。