免费CDN推荐怎么筛选?按节点覆盖、流量限制与回源需求判断
“免费稳定的 CDN 有哪些推荐”不应先从商家名单开始,而应先判断三个条件:用户主要分布在中国大陆还是海外、每月和峰值流量是否落在免费额度内、源站是否适合被缓存。免费 CDN 的稳定性并不是固定属性,同一服务用于静态博客可能表现良好,用于大文件下载或高频接口却可能很快触及请求数、流量、带宽或回源限制。
实际筛选时,可以按“用户所在地 → 可缓存内容 → 流量与峰值 → 回源能力 → 超额处理方式”的顺序判断。中国大陆用户占多数时,优先核对是否有覆盖目标用户的大陆节点以及域名接入条件;海外用户占多数时,重点看目标国家或地区的节点覆盖和跨区域回源距离;国内外用户都存在时,不要只看“全球节点”这类描述,应分别测试两类用户的访问表现。
先把“免费稳定”拆成可验证目标
稳定不等于永久免费或没有故障
对 CDN 来说,稳定至少包含四个层面:
- 在业务主要用户所在地区能够正常访问;
- 缓存命中后,静态内容不会频繁回源;
- 免费额度足够覆盖正常流量和突发增长;
- 额度用尽、缓存失效或源站异常时,有明确的降级方式。
免费计划常见的限制包括月度流量、请求次数、带宽峰值、可接入域名数量、缓存规则数量、刷新次数、HTTPS 配置、单文件大小和源站请求数。有些计划超过额度后会停止加速,有些会限制请求速率,也有些会转为按量计费。即使月度流量看起来足够,如果免费计划对请求次数或峰值带宽限制较严,访问量集中时仍可能出现异常。
因此,筛选标准不应是“有没有免费套餐”,而应是:
免费额度能否覆盖预计用量,节点能否覆盖主要用户,缓存策略能否减少回源,超额后是否有可接受的风险。
“节点多”不等于“适合你的用户”
节点数量只能作为参考,不能直接推导出访问速度。更有价值的是看以下三点:
- 目标用户所在国家或地区是否有可用节点;
- 节点覆盖是否与主要访问时间和业务区域匹配;
- 从用户到 CDN、再到源站的整体路径是否合理。
例如,网站用户主要在中国大陆,但免费 CDN 的有效覆盖集中在海外,即使宣传范围很广,也不一定适合大陆访问。反过来,海外用户占比很高时,只看中国大陆节点数量同样没有意义。
中国大陆用户为主的业务,还应在接入前核对域名备案、接入审核、业务资质和节点使用条件等要求,具体以实际服务条款为准。海外用户为主的业务,则应重点确认目标国家或地区是否属于免费计划的覆盖范围,而不是只看“海外可用”这一概括性描述。
一、先拆分业务需求:谁访问、访问什么、从哪里回源
1. 按用户地区区分国内、海外和混合访问
可以先用近一个月的访问统计,得到国内与海外流量的大致比例。没有完整统计时,也可以使用业务定位做初步估算,但上线前仍要用实际访问位置验证。
| 用户分布 | 优先关注 | 常见选择倾向 | 主要风险 |
|---|---|---|---|
| 中国大陆用户超过约70% | 大陆节点覆盖、接入条件、静态资源命中率 | 偏向大陆用户覆盖明确的 CDN | 域名或业务接入条件不满足,或免费额度只覆盖少量请求 |
| 海外用户超过约70% | 目标国家或地区节点、跨区域回源、海外流量额度 | 偏向目标海外区域覆盖清晰的 CDN | “全球覆盖”描述宽泛,实际目标地区节点不足 |
| 国内外各占约30%至70% | 两类用户的延迟、缓存命中、配额分配 | 选择两侧都能单独验证的方案 | 某一侧表现尚可,另一侧回源距离过长 |
| 用户位置变化较大 | 覆盖范围、规则灵活性、超额处理 | 优先考虑配额和覆盖说明透明的方案 | 流量结构变化后,原有免费额度不再适用 |
这些比例只是筛选时的参考阈值,不是固定标准。一个海外用户占比只有40%的网站,如果海外用户贡献了80%的下载流量,也应按海外大流量业务核算。
2. 区分静态内容、动态页面和接口请求
CDN 最容易发挥作用的内容通常是:
- HTML 文档、CSS、JavaScript;
- 图片、字体、公开下载文件;
- 不包含用户私密数据的公开接口响应。
不适合直接套用静态缓存策略的内容包括登录后的页面、购物车、订单、个人资料和实时接口。此类请求即使经过 CDN,也通常需要设置不缓存、按请求回源或根据请求头区分缓存。如果免费方案的缓存规则不够细,可能出现缓存未命中、回源次数过多,甚至错误缓存个性化内容的风险。
因此,回源需求不只是“源站地址填什么”,还包括:
- 哪些 URL 可以缓存;
- 缓存多久;
- 查询参数是否参与缓存键;
- 带 Cookie 或授权信息的请求是否绕过缓存;
- 内容更新后能否及时刷新;
- 大文件是否支持分段或范围请求;
- 源站是否能承受缓存未命中时的并发回源。
3. 计算实际传输量,而不是只看访问次数
免费 CDN 的流量判断应以实际传输数据为主。一个简单估算方法是:
月度传输量 ≈ 日访问次数 × 单次平均传输量 × 当月天数
例如,一个文档站每天约有1,000次页面访问,每次页面及其静态资源合计约1 MB,按30天计算:
- 1,000 × 1 MB × 30 = 30,000 MB;
- 按十进制换算,约为30 GB/月。
如果每天只有1,000次访问,但每次会下载一个平均500 MB的文件:
- 1,000 × 500 MB × 30 = 15,000,000 MB;
- 约为15,000 GB,也就是15 TB/月。
这两类业务的访问次数相同,流量规模却完全不同。前者可能适合用免费额度做小型网站加速,后者通常不应把免费 CDN 当成长期生产方案。

还要单独估算峰值。月均带宽不能代表高峰需求。假设一个月传输900 GB,按30天计算:
- 900 GB × 8 × 1,000 ÷ 2,592,000秒;
- 月平均速率约为2.78 Mbps。
这个数值只是平均值。如果大部分访问集中在每天几个小时,实际峰值可能明显高于2.78 Mbps。免费计划若同时限制峰值带宽,仍可能在活动、文章发布或文件集中下载时触发限制。
二、筛选免费 CDN 时重点看三个变量
1. 节点覆盖:看用户分布,不看宣传范围
节点覆盖至少要核对以下内容:
- 是否明确列出中国大陆或目标海外地区;
- 免费计划是否与付费计划使用相同的覆盖范围;
- 覆盖范围是按国家、区域,还是仅作概括性描述;
- 国内和海外请求是否都能正常接入;
- 是否可以通过测试域名或正式域名进行实际验证。
国内业务不要只看“全球加速”四个字,应直接确认中国大陆用户的访问效果。海外业务也不要只看“海外节点丰富”,而要列出访问量较高的国家或地区逐项核对。
混合业务尤其容易误判。比如中国大陆用户占60%,海外用户占40%,但海外用户访问的是图片和下载资源,贡献了70%的流量。此时应分别核算两类用户的节点覆盖和配额,不能用一个总体比例掩盖差异。
2. 流量限制:同时看流量、请求数和超额结果
免费 CDN 的额度至少要看四项:
| 限制项 | 它限制什么 | 对业务的影响 |
|---|---|---|
| 月度流量 | CDN 向用户传输的数据量 | 图片、下载文件和视频类内容消耗较快 |
| 请求次数 | 用户向 CDN 发起的请求数量 | 小文件很多的网站可能先触发请求限制 |
| 峰值带宽或速率 | 单位时间内的传输速度 | 活动或集中访问时可能出现限速 |
| 回源或源站请求 | CDN 向源站发起的请求量 | 缓存命中率低时,源站压力上升 |
配额核算时,建议给预计用量留出余量。例如预计月度流量为30 GB,不应只寻找刚好30 GB的免费额度,可以优先考虑理论额度至少达到预计用量的1.5至2倍的方案。这个比例只是风险缓冲参考,还要结合业务是否有突发流量。
更重要的是核对超过额度后的处理方式:
- 是暂停 CDN 服务;
- 是限制访问速率;
- 是自动转为付费;
- 是继续回源但由源站承担流量;
- 还是需要手动升级或重新配置。
如果超额后会自动产生费用,企业上线前应确认是否可以关闭自动计费或设置预算提醒。如果超额后直接停止服务,则需要提前准备源站直连或备用域名等降级路径。对于没有明确说明超额行为的免费计划,不宜直接承载重要生产流量。
3. 回源需求:缓存命中率比“接入成功”更重要
CDN 接入成功,只能说明域名可以通过 CDN 访问,不能说明源站压力已经降低。真正需要验证的是缓存是否生效,以及失效后源站是否承受得住。
可以将内容分为三类:
| 内容类型 | 推荐缓存思路 | 回源关注点 |
|---|---|---|
| 版本化静态文件,如带版本号的 CSS、JS | 设置较长缓存时间 | 更新后通常通过更换文件名发布 |
| 图片、公开文档等变化较少的资源 | 中等或较长缓存时间 | 注意刷新次数和单文件大小限制 |
| 登录页、订单、实时接口 | 默认不缓存或按规则回源 | 防止个人数据被错误缓存,控制并发回源 |
静态文件如果每次请求都因查询参数不同而被视为新对象,缓存命中率会明显下降。例如同一个文件被写成:
/app.js?v=1001
/app.js?v=1002
在某些缓存规则下可能会被当作两个对象。查询参数是否参与缓存键,需要在 CDN 控制台和响应结果中确认,不能仅凭经验判断。
源站本身也需要满足几个条件:
- 可以稳定处理缓存未命中的并发;
- 能正确返回
Cache-Control、ETag或过期时间; - CDN 回源使用的协议与证书配置一致;
- 源站防火墙或访问控制不会误拦截 CDN 请求;
- CDN 异常时,业务仍有明确的访问降级方式。
如果网站主要是动态接口,CDN 即使能够转发请求,也未必能显著降低源站负载。此时免费 CDN 更适合作为静态资源加速或测试用途,而不是把全部接口流量交给它。
三、按业务类型做方案取舍
中国大陆用户为主的静态网站
适合选择条件:
- 中国大陆访问者占主要比例;
- 页面以图片、脚本、样式和公开文档为主;
- 月度流量较低且增长可预测;
- 源站能够正确提供缓存头;
- 免费计划明确支持目标域名接入。
重点验证大陆访问速度、静态资源缓存命中率和额度消耗。若域名接入条件、备案要求或业务资质无法满足,即使免费额度充足,也不适合作为正式方案。
海外用户为主的博客、文档或产品展示站
适合选择条件:
- 主要访问地区已经明确;
- 免费计划覆盖这些地区;
- 源站与主要访问地区之间的回源距离可接受;
- HTML、图片、脚本等资源能够被缓存;
- 海外流量额度和请求额度透明。
海外用户分布较集中时,应优先验证主要国家或地区,而不是为少量访问区域支付复杂的配置成本。若用户分布很分散,节点覆盖的广度和超额后的处理方式通常比单个地区的极低延迟更重要。
国内外混合访问的网站
混合访问应采用“两张账”:
- 国内流量、请求数和命中率单独核算;
- 海外流量、请求数和命中率单独核算。
如果两类用户的流量都不大,可以选择覆盖两侧且规则透明的免费方案,分别测试代表性 URL。如果其中一侧流量明显更高,则应围绕主要流量决定节点和额度,另一侧只确认能否正常访问。
不要因为一个方案能同时接入国内外用户,就默认它在两侧都适合。免费计划可能对不同区域采用不同节点范围,也可能对某些地区的请求限制更严格。
高频动态接口、大文件或高峰流量业务
以下情况通常不适合把免费 CDN 作为唯一生产依赖:
- 单个文件较大,且下载次数不可控;
- 用户访问集中在短时间内;
- 页面和接口强依赖登录状态;
- 内容变化频繁,需要频繁刷新缓存;
- 源站带宽或并发能力本身较弱;
- 免费额度只略高于当前平均用量;
- 超额后会停止服务或自动产生费用。
这并不意味着 CDN 完全不能使用,而是应缩小使用范围,例如只缓存公开静态资源,将动态接口保留为回源请求,并为额度耗尽、缓存失效和源站异常准备降级路径。
四、上线前用实际请求验证,而不是只看控制台状态
1. 准备代表性 URL
至少准备三类地址:
- 一个变化较少的静态文件;
- 一个更新后需要及时生效的文件;
- 一个明确不应缓存的动态页面或接口。
每类最好选择文件大小不同的样本。不要只测试首页,因为首页通常无法代表图片、脚本和接口的真实行为。
2. 查看响应头和耗时
可以使用通用的 curl 查看 HTTP 状态、响应头和时间。下面的域名和路径只是示例:
curl -sS -o /dev/null -D - \
-w '\nstatus=%{http_code}\nconnect=%{time_connect}\nttfb=%{time_starttransfer}\ntotal=%{time_total}\nsize=%{size_download}\n' \
https://example.com/assets/app.css
重点关注:
- HTTP 状态是否为预期结果;
Cache-Control、ETag、过期时间是否符合设置;- 是否出现 CDN 特有的缓存状态响应头;
- 第二次请求是否比第一次更稳定;
time_starttransfer和time_total是否在不同访问位置都可接受。
不同 CDN 使用的缓存状态头名称可能不同,不能只认某一个字段。若没有明显的缓存标识,可以结合控制台统计、源站日志和重复请求结果判断。
同一个 URL 连续请求几次,可以初步观察缓存是否生效:
for i in 1 2 3 4 5; do
curl -sS -o /dev/null \
-w "request=$i status=%{http_code} ttfb=%{time_starttransfer}s total=%{time_total}s\n" \
https://example.com/assets/app.css
done
第一次请求可能是缓存未命中,后续请求才有机会命中缓存。因此,不能用第一次结果直接代表长期访问效果。若每次都需要回源,可能是缓存规则未生效、响应头禁止缓存、查询参数参与缓存键,或该内容被配置为绕过缓存。
3. 分别从国内和海外访问位置测试
测试位置应尽量接近真实用户:
- 国内用户为主时,至少选择两个主要访问区域或网络环境;
- 海外用户为主时,选择访问量较高的两个目标地区;
- 混合业务时,国内和海外各选代表位置。
重点不是追求一次测试中的最低耗时,而是观察不同位置是否都能正常访问、是否频繁超时、是否只有某一侧缓存有效。测试时间也应覆盖业务高峰,因为免费计划的限制可能在请求集中时才出现。
4. 验证缓存更新和异常降级
发布新版本时,核对以下过程:
- 修改一个静态文件内容;
- 通过原 URL 请求,记录旧内容是否仍存在;
- 执行缓存刷新或更换版本号;
- 再次请求并确认新内容生效;
- 检查刷新次数是否受免费计划限制。
不要频繁对整个域名执行全量刷新。全量刷新可能增加回源压力,也可能消耗有限的刷新配额。对版本化静态文件,优先使用新文件名或新版本号,减少对全量刷新的依赖。
五、这些情况下不要仅凭“免费”做决定
额度只够当前平均流量
如果免费额度仅比当前月均流量高一点,遇到文章发布、活动、爬虫或资源重复下载,就可能快速耗尽。至少要把突发流量、缓存未命中和非预期请求纳入估算。
节点覆盖与用户位置不匹配
“支持海外”不代表支持所有海外地区,“有大陆节点”也不代表所有大陆用户访问效果相同。用户位置与节点覆盖无法对应时,免费额度再高也不能弥补访问路径不合适的问题。
回源成本被忽略
缓存未命中时,用户请求仍会到达源站。若静态资源没有缓存、缓存时间过短,或者每个查询参数都会产生一次新回源,CDN 可能只是增加了一层转发,源站压力并没有明显下降。
免费计划缺少清晰的超额规则
对于生产站点,最需要避免的是“平时正常,达到阈值后行为未知”。如果服务说明没有明确写出限额、超额、暂停、计费和恢复方式,应先在低风险域名上验证,不要直接承载核心业务。
业务包含敏感或个性化内容
登录态、订单、个人资料和带授权信息的接口,不应因为“经过 CDN”就默认可以缓存。必须确认缓存规则能够按路径、请求头、Cookie 或响应头进行区分,并用实际请求验证未登录和已登录状态不会混淆。
六、上线前的核对清单
可以按下面顺序完成筛选:
- 统计国内与海外用户比例,并区分页面访问量和实际流量。
- 列出主要访问地区,逐项核对免费计划的节点覆盖。
- 估算月度流量、请求次数和高峰带宽,至少预留一定增长空间。
- 确认免费额度是否包含静态资源、图片、下载文件和接口请求。
- 查清超额后的动作:限速、停用、转付费还是继续回源。
- 将 URL 分为可缓存、短时缓存和不缓存三类。
- 验证源站响应头、缓存命中、刷新生效和回源并发。
- 从国内和海外的代表性访问位置分别测试。
- 确认域名接入、证书、备案或其他业务条件是否满足。
- 为额度耗尽、CDN 异常和源站异常准备可执行的降级方式。
最后可以按条件落地:中国大陆用户占多数且内容以静态资源为主,优先筛选大陆覆盖明确、接入条件清晰、缓存规则够用的免费方案;海外用户占多数,优先核对目标地区节点和海外流量额度;国内外混合访问,分别测试两侧并分开核算流量;动态接口、大文件或高峰流量明显,则把免费 CDN 控制在静态资源或测试范围内,不把不透明的免费额度作为唯一生产保障。