21 10 月 2026
本文由财富云计算提供,我们提供高防服务器与 CDN 防护服务,NAT 型无独立公网 IP 价格比独立 IP 省一半以上,需要 CDN + 源站防护组合方案的见文末。

一、CDN 为什么能防护:三个机制

1.1 分布式节点摊薄攻击

单台源站的带宽是固定的(比如 10Mbps),DDoS 打满就挂。CDN 有几十上百个节点分布各地,攻击流量被分散到多个节点——每个节点扛的是总攻击的一小部分。攻击者要打瘫你的站,得先打瘫整个 CDN 网络,成本高几个数量级。

直接打源站:100G 攻击 → 你的 10M 带宽瞬间蒸发
打了 CDN:  100G 攻击 → 分散到 50 个节点,每节点 2G,节点扛,源站 0 压力

1.2 缓存挡住大部分请求

静态资源(图片/CSS/JS)命中节点缓存,请求根本到不了源站。CC 攻击刷你的首页?如果首页可缓存,刷的都是节点缓存,源站服务器闲得喝茶。

1.3 节点自带基础清洗

主流 CDN 节点都有 SYN Flood / UDP Flood 的基础清洗(这是节点机房的标配),七层还有 CC 防护规则。这就是「免备案小站套个 CDN 也能扛小攻击」的原因。

CDN 防不了什么(要有预期):

  • 针对你回源 IP 的定向打击(所以必须做回源白名单,见第四节)
  • 大流量 DDoS(超过 CDN 免费/套餐防护上限还是会黑洞——这时上高防,见对比篇)
  • 慢速精细 CC(需要 WAF 规则配合,见CC 变种)

二、选 CDN:防护向的挑选标准

加速向的选 CDN 看节点数量,防护向看这些:

指标说明
防护带宽单域名/单 IP 的 DDoS 防护上限,免费档通常 10–30G,付费档 100G+
CC 防护能力有没有智能 CC 防护(频率限制 + 人机识别),还是只有基础的 IP 限流
WAF 支持Web 攻击规则(SQL 注入/XSS/路径扫描),付费功能
回源协议是否支持 HTTPS 回源、回源 HOST 改写
精准访问控制IP/UA/Referer/地域黑白名单
告警与日志攻击时通知、访问日志可下载(事后溯源)

防护向的推荐组合(不写具体价格,只说能力档位):

  • 小站/个人:主流 CDN 免费额度(国内需要域名备案)+ 源站 Nginx 限流
  • 小生意:CDN 付费防护套餐(50–100G 级)+ WAF 基础包
  • 电商/游戏官网:高防 CDN(200G+)+ 自定义 WAF 规则 + 源站隐藏全套

三、配置实战:把防护真正打开

CDN 买完不配置 = 白买。按这个清单逐项检查:

3.1 接入与解析

  1. 域名 CNAME 到 CDN 提供的地址
  2. TTL 设为 600 秒(攻击时改解析能快速切流量,平时也够用)
  3. CDN 控制台确认「节点已生效」(多地 ping 看是否调度到节点)

3.2 缓存策略(防护的关键)

缓存 hit 率越高,源站越安全:

资源类型缓存建议
图片/字体/视频缓存 30 天,URL 带版本号(style.v2.css)
CSS/JS缓存 7–30 天
HTML 首页短缓存 1–5 分钟或不缓存(内容频繁更新)
API 接口不缓存,走动态加速

首页不缓存的站怎么防 CC? 靠 CC 规则 + 人机识别(3.3),别指望缓存。

3.3 CC 防护规则(核心)

在 CDN 控制台开启并调细:

  1. 频率限制:单 IP 每秒请求数超过 N 次 → 弹验证码或 503(先松后紧,误杀了放宽)
  2. 智能 CC:基于行为分析(请求节奏、UA 一致性)识别机器流量——比死板的频率限制误杀低
  3. UA 过滤:拦掉空 UA、已知攻击工具 UA(curl/python-requests 直接拦会误杀 API 调用,慎重)
  4. 地域限制:业务只服务国内就拦海外流量(外贸站反之)
  5. Referer 防盗链:图片被别站盗刷也是流量杀手

3.4 WAF 开启

至少开「观察模式」跑一周,看拦截日志里有没有误杀,再切「拦截模式」。规则包选「严格」还是「宽松」看误杀情况调(WAF 规则实战有详细调法)。

3.5 HTTPS 与回源

  • 全站 HTTPS(CDN 节点到用户 TLS,节点到源站也 TLS)——配置见SSL 完全指南
  • 开启 HSTS,防 SSL 剥离攻击
  • 回源 HOST 设为你自己的域名(防 Host 头攻击)

四、源站隐藏:CDN 玩家的命门

CDN 用了但源站 IP 暴露 = 裸奔。攻击者直接打源站 IP,CDN 完全绕过。完整防护四步:

4.1 查:你的源站暴露了没有

攻击者找源站的常用手段,你全查一遍:

# 1. DNS 历史解析记录(暴露以前用过的 IP)
# 浏览器查:domainwatch / 微步在线等,输入你的域名

# 2. 证书透明度日志(crt.sh)
curl -s "https://crt.sh/?q=z0w.cn&output=json" | python3 -m json.tool | grep -o '"[0-9.]*"' | sort -u

# 3. 邮件服务器 MX 记录(邮件服务器常和源站同 IP 或同段)
dig MX z0w.cn +short
dig A mail.z0w.cn +short

# 4. 子域名爆破(dev./test./admin. 常没套 CDN)
for sub in www mail admin test dev api app; do
    echo "$sub: $(dig +short $sub.z0w.cn | tr '\n' ' ')"
done

子域名是最常见的漏点:admin.z0w.cn 没套 CDN,IP 直接暴露,而它和主站同机——源站就这么被挖出来了。

4.2 堵:回源白名单

源站 Nginx 只允许 CDN 回源 IP 段:

# /etc/nginx/conf.d/cdn-whitelist.conf
# CDN 回源 IP 段(在 CDN 商家文档里查,每家不同)
geo $cdn_allow {
    default 0;
    1.2.3.0/24 1;      # 示例:替换成你 CDN 的真实回源段
    5.6.7.0/24 1;
}

server {
    listen 80;
    server_name z0w.cn;
    
    if ($cdn_allow = 0) {
        return 444;    # 非 CDN 回源直接断连(444 是 Nginx 特有:不响应直接关)
    }
    
    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}
# iptables 兜底(双保险)
iptables -A INPUT -p tcp --dport 80 -s 1.2.3.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP

注意:444 回源白名单上线前先「观察模式」(记日志不拦截),确认 CDN 回源段没漏——漏一个段,你的站对所有用户 444。

4.3 断:历史 IP 与证书泄露处理

  • 历史解析 IP:换过服务器的老 IP,联系 CDN 商家或自己确认老 IP 已回收。云服务器的 IP 释放后会给别人,但攻击者的扫描记录里还留着你的域名-IP 对应关系
  • 证书暴露:源站用 CDN 签发的证书(回源 HTTPS 时源站也要证书),crt.sh 一查全暴露。解法:源站证书用自签名(回源 TLS 不在乎证书是否可信,CDN 到源站是私有链路)或者内网 CA
  • 邮件分离:邮件服务器别和源站同 IP,用第三方企业邮箱

4.4 藏:NAT 型源站(终极方案)

源站本身没有公网 IP——CDN/高防回源到网关的端口映射,攻击者扫遍全网也找不到你的机器在哪。NAT 型云服务器做源站,是性价比最高的隐藏方案(迁移实操第六节有完整配置)。

五、被打了怎么办:CDN 玩家的应急动作

已经套了 CDN 还被打,按这个顺序:

  1. 看 CDN 监控:是打 CDN 节点(攻击流量、命中率掉)还是打源站(源站带宽/CPU 异常)?
  2. 打节点:节点的事 CDN 商家扛,联系商家确认防护状态;同时收紧 CC 规则频率
  3. 打源站:源站 IP 暴露了,立刻执行第四节全流程;临时应急可关站等回源白名单生效
  4. 切换预案:CDN 扛不住 → 域名切到备用(高防 IP 或静态页「攻击恢复中」公告页),TTL 短的话 10 分钟生效
  5. 取证报警:下载 CDN 日志(攻击源 IP、UA、节奏),攻击量大或勒索的直接报警(应急手册)

六、进阶:多层防护架构

站做大了,单层 CDN 不够,上组合:

用户 → 高防 CDN(全站加速 + CC/WAF)
         ↓ 回源(只放 CDN 节点 IP)
       高防服务器(流量清洗兜底,防大流量打源站)
         ↓ 内网
       源站(无公网 IP,NAT 型)

每一层只干自己擅长的:CDN 管应用层和加速,高防管流量层,源站只管业务。这套架构下,打任何一层都伤不到核心——成本也比「全堆高防」低得多(方案对比)。

七、回源白名单的观察模式上线

直接上 deny all 太危险——漏一个 CDN 回源段,你的站对部分用户直接 444。正确上线姿势是「先观察后拦截」:

# 阶段 1:观察模式(跑 24-48 小时)
# 记录「非回源段的访问」但不拦截
map $cdn_allow $honeypot_log {
    default 1;
    0 "";   # 不允许的才记特殊日志
}

server {
    if ($cdn_allow = 0) {
        access_log /var/log/nginx/non-cdn-access.log security;   # 单独日志
    }
    # 不 return,正常放行
    location / { proxy_pass http://127.0.0.1:8080; }
}
# 观察期结束后分析:非 CDN 段的访问都是什么?
awk '{print $1}' /var/log/nginx/non-cdn-access.log | sort | uniq -c | sort -rn | head -20

# 如果里面除了扫描器、你的办公 IP、监控探测——没有正常用户
# 说明 CDN 回源段列表完整,可以上第二阶段
# 阶段 2:拦截模式(确认无正常用户后)
server {
    if ($cdn_allow = 0) {
        return 444;   # 或 403(想给用户看错误页的话)
    }
    location / { proxy_pass http://127.0.0.1:8080; }
}

观察期要覆盖一个完整的业务周期(至少含一个白天高峰)——夜间的正常用户少,只看夜间数据会漏判。这个方法适用于所有「白名单类」规则:iptables 回源过滤、地域限制、IP 黑名单——先记录后拦截,是防误杀的铁律。

八、小结

CDN 防护的三板斧:分布式节点摊薄攻击、缓存挡请求、基础清洗。但 CDN 的命门在源站——IP 一暴露全盘皆输。所以 CDN 玩家的必修课是「回源白名单 + 子域名检查 + 证书/邮件分离」,进阶方案是 NAT 型源站。防护没有银弹,只有一层层把攻击者的成本堆上去。


相关阅读:


本文由财富云计算整理,我们提供 CDN 防护、高防服务器与 NAT 型云服务器,无独立公网 IP 机型价格比独立 IP 省一半以上,需要「CDN + 高防 + NAT 源站」组合方案的欢迎咨询。更多教程见端口速查表。
延伸阅读
  1. 高防误区与避坑清单:25 个坑+下单前必问 14 问+到货验货流程
  2. DNS 攻击防护专题:劫持、隧道、投毒、放大四类攻击与 DNSSEC
  3. 电商大促防攻击预案:T-14 到当天的分级响应与降级开关
  4. 源站真实 IP 隐藏完全指南:六大暴露面排查+NAT 型终极方案
  5. 日志分析找攻击源:Nginx 日志三维度分析法与证据固定
  6. 攻击应急响应手册:六阶段响应流程,从确认到复盘的照做清单
  7. iptables 抗 DDoS 配置模板:状态过滤+SYN 防护+防扫描+游戏服版
  8. OpenResty Lua 自研 WAF:动态限流+攻击特征检测+Redis 黑名单
更多阅读
  1. 上一篇:高防清洗中心工作原理:流量牵引、分层清洗、回源回注全链路拆解
  2. 下一篇:高防 CDN 和单机高防怎么选:按协议分流,一张决策图+三套方案
发表评论 9