CDN回源地址选私网还是公网,费用差在源站出方向

CDN回源这件事,很多人一开始只盯着访问速度,实际账单出来以后才发现,源站带宽费用才是容易被忽略的地方。用户访问 CDN,CDN再去源站取文件,这一段叫回源。回源用公网地址还是私网地址,主要影响的是源站出方向流量怎么计费。

这里先把口径说清楚:CDN给用户下发的流量,正常还是按 CDN 流量计费;源站到 CDN 节点的流量,如果走公网,一般会算源站公网出流量或者占用源站公网带宽;如果走云厂商支持的私网回源、内网回源、VPC Origin、PrivateLink 这类链路,通常不计公网出流量,或者按内网/专线规则计费。

差价不是“私网一定便宜多少”这么简单,关键看三个变量:回源量、源站公网带宽计费方式、CDN缓存命中率。

公网回源时,源站带宽费是怎么产生的

公网回源最常见。CDN源站填一个公网 IP 或域名,CDN节点通过 Internet 访问源站。源站把文件、接口响应、图片、视频分片吐给 CDN,这些数据从源站公网出口出去,就会产生公网出方向流量。

比如源站是一台云服务器,公网带宽按固定带宽买了 20Mbps。CDN一旦集中回源,哪怕终端用户没有直接访问源站,源站的 20Mbps 也会被 CDN 回源打满。这个场景在大文件分发、游戏补丁、短视频切片、软件下载里很常见。

如果源站公网是按流量计费,那就更直观:CDN回源 1TB,源站侧就可能产生约 1TB 公网出流量账单。不同云厂商、不同地域单价差别很大,国内常见公网出流量可能在 0.5 元/GB 到 1 元/GB 左右,海外 BGP、CN2、GIA 线路价格还会更敏感。

多说一句,公网回源还有一个隐性问题:CDN回源流量和源站自身业务流量抢同一条公网带宽。源站本来给管理后台、API、数据库同步留了一点余量,突然 CDN 节点集中回源,TCP连接数和带宽一起上来,业务侧看起来就像“源站卡了”。

私网回源不是填个 10.x 地址就能用

很多人看到私网地址省钱,就想直接把源站地址填成 10.0.0.5、172.16.0.8、192.168.1.10。这个通常不行。CDN边缘节点在公网或运营商网络里,它访问不到你 VPC 里的私网地址。

能用私网回源,通常要满足云厂商提供对应能力,例如同一云上的 CDN 支持 VPC 源站、内网 SLB、PrivateLink、专线回源,或者 CDN 和源站在同一个云网络体系内打通。简单理解,CDN节点不是直接“猜到”你的内网 IP,而是云厂商在网络侧给它开了一条受控路径。

实际使用中发现,很多私网回源限制藏在细节里:只支持同地域,不支持跨账号;只支持负载均衡作为源站,不支持直接 ECS 私网 IP;只支持特定 CDN 产品线;开启后仍然有内网流量费、PrivateLink 连接费或 LB 处理费。下单前要看计费文档,不要只看“内网免费”四个字。

用一组数据看费用差距

假设一个业务每天用户访问 CDN 流量是 10TB,CDN缓存命中率 90%,也就是 10% 需要回源。那源站每天要吐给 CDN 的数据约 1TB。

场景 | 用户侧 CDN 流量 | 命中率 | 回源量 | 源站公网出流量单价 | 源站侧费用

公网回源,按流量计费 | 10TB/天 | 90% | 1TB/天 | 0.8元/GB | 约819元/天

公网回源,固定带宽 100Mbps | 10TB/天 | 90% | 峰值可能打到几十 Mbps | 按月带宽包 | 看带宽包价格,回源峰值决定买多大

私网回源,内网免费 | 10TB/天 | 90% | 1TB/天 | 0元/GB | 源站公网出流量基本不增加

私网回源,PrivateLink或内网产品计费 | 10TB/天 | 90% | 1TB/天 | 按连接/流量/处理量 | 通常低于公网出流量,但要看具体产品

按上面的 0.8 元/GB 算,1TB 回源约 1024GB,一天约 819 元,一个月就是 2.4 万左右。这个数字不是 CDN 的费用,而是源站公网出方向的费用。很多账单里 CDN 费用和 ECS 公网流量费用分开显示,排查时容易漏掉。

如果缓存命中率提升到 98%,同样 10TB 用户访问量,每天回源只有 200GB,公网回源费用约 160 元/天。这里能看出来,公网还是私网是一方面,缓存命中率也会直接决定源站账单。

源站带宽按固定带宽买,差别体现在峰值

有些云服务器不是按流量计费,而是买固定公网带宽,比如 20Mbps、50Mbps、100Mbps。这时公网回源不一定直接出现“每 GB 多少钱”,但会逼着你买更大的带宽。

举个更贴近现场的例子:一个游戏下载站,正常回源不多,但发新包那天 CDN 缓存被刷新,多个边缘节点同时回源 3GB 安装包。源站公网带宽只有 50Mbps,理论上满速也就每秒 6MB 左右,CDN节点排队取文件,用户侧就会看到首批访问慢、部分节点 502、源站连接数飙升。

如果为了抗这个峰值把源站公网带宽从 50Mbps 提到 300Mbps,月费会明显上去。私网回源在这类场景的价值不是只省流量钱,还能避免公网出口被回源流量占满。

不过私网回源不代表源站不用考虑带宽。源站内网卡、负载均衡、磁盘 IO、Nginx worker、连接数都还是要扛住。只是账单不再走公网出方向,瓶颈从“公网带宽钱”转到“服务器处理能力和内网链路能力”。

跨云回源基本不要指望私网地址

如果 CDN 用 A 云,源站在 B 云,源站填私网地址通常没意义。A 云 CDN 节点访问不到 B 云 VPC 里的 10.x 地址。跨云想省公网回源成本,要么做专线、云联网、VPN、PrivateLink 类互通,要么接受公网回源。

这里补充一点,VPN 能打通网络,但不一定适合大流量 CDN 回源。VPN有加密开销、带宽上限、稳定性问题,跑小规模接口回源还行,大文件分发不一定稳。专线稳定,但月租和端口费摆在那里,只有回源量足够大才值得算。

跨境场景还要看线路。源站在日本、香港、新加坡、马来西亚,CDN节点从国内或其他区域公网回源,可能走普通 International BGP,也可能走 CN2、GIA、SoftBank、NTT、GTT。线路好,源站带宽价格通常也更高。对海外源站选型时,如果你也在找这类海外云服务器、大带宽服务器或高防源站,可以看看129云,像马来西亚-D型有 8C 16G、60Mbps 峰值、三网优化,适合做中小型海外业务源站;德国双ISP-特惠有 100Mbps 带宽和 GTT 直连,更偏电商、Tiktok、亚马逊相关场景;日本活动机型是 SoftBank 直连,适合低带宽但需要日本优化线路的业务。需要确认线路和防御规格可以直接问客服 400-9177118。

缓存命中率比回源地址更影响账单波动

公网回源贵不贵,最终还是看回源量。回源量由缓存命中率决定,而命中率又被 URL、Header、Cookie、缓存规则影响。

图片、CSS、JS、安装包、视频切片这种静态资源,命中率做到 95% 以上不难。真正容易出问题的是接口、带鉴权参数的文件、URL里带时间戳或随机数的资源。

实际使用中发现,很多业务表面上接了 CDN,命中率只有 40% 到 60%。原因不是 CDN 不行,而是 URL 每次都变,比如 /image/a.jpg?v=169xxx,或者响应头带了 Cache-Control: no-store。这样 CDN 每次都去源站取,源站公网带宽照样被打满。

如果每天 CDN 下发 20TB,命中率 60%,回源就是 8TB;命中率 95%,回源只有 1TB。同样走公网回源,按 0.8 元/GB 算,前者一天源站出流量费用约 6553 元,后者约 819 元。差距比“公网还是私网”看起来还夸张。

动态接口回源要分开看

动态 API 一般不能长时间缓存,CDN更多承担就近接入、TLS卸载、WAF、防 DDoS、连接复用这些能力。动态回源量可能接近用户请求量,私网回源能省公网出方向费用,但不能减少源站计算压力。

如果是动态接口,重点要看 QPS、响应大小、连接复用和回源协议。比如一个接口平均响应 50KB,峰值 5000 QPS,理论出方向就是 250MB/s,换算约 2Gbps。这个量级如果公网回源,源站带宽费和实例网卡都要重新设计。

动态业务更建议 CDN 回源到内网负载均衡,再由负载均衡分发到后端集群。这样源站机器不暴露公网 IP,安全面也小一些。公网只保留管理入口或堡垒机入口,不让 CDN 直接打单台机器。

源站安全角度,私网回源更干净

公网回源最大的问题不是费用,而是源站暴露在 Internet 上。即使配置了 CDN,攻击者也可能通过历史 DNS、证书透明日志、端口扫描、泄露的源站 IP 直接打源站。CDN防住了前面,源站公网 IP 被打穿,业务还是挂。

私网回源可以把源站藏在 VPC 里,外部只能访问 CDN 域名,不能直接访问源站 IP。再配合安全组只允许 CDN 回源网段、内网 LB、WAF、DDoS 防护,整体会更稳。

公网回源也不是不能做,但建议至少限制 CDN 回源 IP 段。很多 CDN 厂商会公布回源 IP 列表,可以加到安全组或防火墙白名单里。这里要注意自动更新,CDN回源 IP 段可能变,写死以后忘记维护,某天新增节点回源失败,排查会很痛苦。

不同业务场景下怎么选

静态资源量大,源站和 CDN 在同一云

优先看私网回源或 VPC 源站。图片站、软件下载、游戏补丁、视频切片这类业务,回源量哪怕只有总流量的 5%,绝对值也可能很大。私网回源可以明显减少源站公网带宽费用,还能避免回源峰值占满公网出口。

静态资源量大,但 CDN 和源站不在同一云

大多数情况下只能公网回源。可以把重点放在缓存命中率、预热、分片策略、源站带宽冗余上。如果回源量长期很大,再去算专线、云联网、跨云互通是否划算。

比如每月回源 100TB,公网出流量按 0.8 元/GB 是 8 万多元。这个时候专线、云企业网、对象存储镜像、源站迁移都值得测算。要是每月回源只有 2TB,为了私网回源折腾跨云网络,维护成本可能比省下来的费用更高。

动态 API 和后台服务

更看重安全和稳定。能私网回源就私网回源,不能的话至少走公网负载均衡,不要让 CDN 回源到单台云服务器公网 IP。接口类业务还要关注回源长连接、HTTP/2、超时时间、重试策略,避免 CDN重试把源站放大打爆。

海外源站面向国内或亚太用户

公网回源费用和线路质量都要一起看。普通 BGP 便宜,但晚高峰可能抖;CN2、GIA、SoftBank 直连、GTT 直连体验好,带宽价格也更高。源站如果只是给 CDN 回源,不一定追求终端访问直连质量,但 CDN节点到源站的链路必须稳定,否则缓存未命中时用户体验会明显变差。

实际配置时容易踩的地方

源站域名解析不要乱切。CDN配置源站域名时,如果源站域名同时被用户访问和 CDN 回源使用,改解析容易影响两边。更稳的做法是单独准备 origin.example.com,只给 CDN 回源使用。

回源 Host 要配对。CDN回源到 IP,但源站 Nginx 按 Host 区分站点,如果 Host 没带正确,会回到默认站点,表现为 403、404、证书不匹配。

HTTPS回源要看证书。CDN回源 HTTPS 时,源站证书的域名要匹配回源 Host。很多人源站填 IP,又开 HTTPS 回源,证书校验直接失败。

刷新缓存要控制节奏。全站刷新看起来方便,但会让所有节点重新回源。大文件业务刷新一次,源站带宽峰值可能比平时高几十倍。能用 URL 级刷新就不要全目录刷新,能预热就提前预热。

源站限速不要太狠。有些人为了保护源站,在 Nginx 上给 CDN 回源限速,结果 CDN节点拿文件太慢,边缘侧超时,用户侧报错。限速可以做,但要结合文件大小、CDN超时时间、并发节点数一起算。

按账单口径算一遍,选择会清楚很多

可以按这个公式先估:源站回源流量 = CDN下发流量 × 1 - 缓存命中率。实际计算时要加括号,也就是 CDN下发流量 ×(1 - 缓存命中率)。

源站公网回源费用 = 回源流量GB × 源站公网出流量单价。

如果是固定带宽,按峰值算:回源峰值带宽 + 源站业务自身公网带宽 + 冗余。CDN刷新、预热、新文件发布当天要单独估,不要只看日均。

举个发布包场景:每周发布一个 5GB 客户端,CDN有 200 个边缘节点可能回源,理论最大回源数据是 1000GB。当然实际不会完全同时,但如果 30 分钟内集中发生,平均带宽约 4.5Gbps。源站公网只有 200Mbps,这种配置一定会慢。私网回源也要看内网 LB 和源站集群能不能吃下这个峰值。

再看图片站:每天 CDN下发 5TB,命中率 96%,回源 200GB。按 0.8 元/GB,源站公网出流量约 160 元/天。一个月 4800 元左右。如果改私网回源且内网流量免费,这部分源站公网费用基本省掉;如果为了私网回源额外买了每月几百元的内网连接产品,仍然划算。

小站就不一样了。每天 CDN下发 100GB,命中率 90%,回源 10GB。按 0.8 元/GB,一天 8 元,一个月 240 元。为了这点费用迁移源站、改网络、改 LB,不一定值得。把缓存规则调好、源站安全组收紧,反而更直接。

购买源站时别只看 CPU 和内存

CDN源站机器选型时,CPU和内存只是基础。更应该看公网带宽、内网带宽、线路、DDoS 防护、磁盘 IO、是否方便接负载均衡。尤其是海外业务,线路差一点,CDN回源时延和丢包都会放大到用户侧。

如果源站计划长期放在海外,且业务涉及游戏、企业站、下载、跨境电商,可以优先选带宽更实在、线路说明清楚的机器。129云这类 IDC 服务商的产品线里有 G口大带宽服务器、高防服务器和海外云服务器,适合拿来做 CDN 源站或备用源站。源站带宽到底要 60Mbps、100Mbps 还是更高,最好按回源峰值估,不要只按日均流量估。

马来西亚-D型的 60Mbps 峰值更适合亚太区域中等回源量业务;德国双ISP-特惠 100Mbps 带宽适合轻量电商、账号环境、内容站;日本活动机型只有 5Mbps,优势在线路稳定和 SoftBank 直连,适合低流量服务,不适合作为大文件 CDN 源站。

公网回源还能优化到什么程度

公网回源不是只能硬扛费用。静态资源可以做长缓存,文件名带 hash,内容变化就换 URL,不要频繁刷新旧 URL。大文件提前预热,避免用户访问触发大面积回源。源站开 gzip、brotli 要谨慎,图片和视频本身已经压缩,压缩收益低,CPU反而上去。

对象存储也可以作为源站。很多云的对象存储和 CDN 同厂商结合时,回源计费会比 ECS 公网出流量更友好,有的还支持内网回源。缺点是动态处理能力弱,鉴权、防盗链、目录结构要重新适配。

如果必须用云服务器当源站,建议前面加负载均衡。CDN回源到 LB,LB 后面挂多台源站。单台机器公网 IP 直接做源站,早期省事,后期扩容、换机、封禁源站 IP 都麻烦。

判断私网回源值不值得开

看账单里源站公网出流量占比。如果 CDN费用正常,但云服务器公网流量费也很高,十有八九是公网回源或用户绕过 CDN 直连源站。

看 CDN 命中率。如果命中率低于 80%,先查缓存规则。私网回源能省公网出流量,但命中率太低时,源站压力还是很大。

看源站和 CDN 是否同云同地域。同云同地域最容易开私网回源;跨地域、跨云、跨境都要看产品支持,不要默认私网能打通。

看业务是否有突发刷新。软件下载、游戏更新、视频转码发布这类业务,私网回源对峰值更有价值。普通企业官网,每天回源几 GB,公网回源也没什么压力。

排查源站带宽费用异常的顺序

先看 CDN 日志里的 cache_status,确认 HIT、MISS、EXPIRED、BYPASS 占比。MISS 和 BYPASS 高,源站回源就高。

再看源站 Nginx access.log,按 User-Agent、X-Forwarded-For、CDN回源 IP 段统计流量。确认是不是 CDN 回源,还是有人绕过 CDN 直连源站。

然后看云服务器监控里的公网出方向。时间点如果和 CDN刷新、发布、活动推广重合,基本就能对上。

最后查源站域名是否被暴露。历史解析、Git配置、App包内写死 IP、第三方监控、证书记录都可能泄露源站。源站公网 IP 一旦被直接访问,CDN缓存命中率再高,源站带宽也可能异常。

配置倾向

源站和 CDN 在同一云,且产品支持 VPC Origin 或内网 LB 回源,优先用私网回源。

源站和 CDN 跨云,回源量不大,公网回源更省事,重点放在缓存规则、源站白名单和防盗链。

回源量长期超过几十 TB/月,公网出流量单价又高,应该认真测算私网回源、对象存储源站、专线互通或源站迁移。

源站需要抗 DDoS,不要只靠隐藏源站 IP。高防 CDN、高防服务器、源站安全组、回源鉴权都要配合。海外高防源站可以结合业务区域选择线路,避免防住攻击但正常回源延迟太高。

公网回源和私网回源的费用差,最后会体现在源站出方向账单、带宽峰值和运维复杂度上。真正要算的时候,把 CDN下发量、命中率、回源峰值、源站公网单价、私网连接费用放到同一张表里,数字会比经验判断更可靠。