CDN回源走私网还是公网,费用差距到底能拉到多大

CDN费用里很多人盯着的是下行流量,也就是用户从CDN节点下载资源产生的费用。但实际账单里,经常还有一块容易被忽略:CDN回源流量。

回源这件事看起来很简单,CDN节点缓存没有命中,就去源站取一次文件。问题在于,这个“去源站取”到底走的是公网IP,还是云厂商内部网络。走公网,通常会吃源站公网出方向流量或公网带宽;走私网,很多场景下不计公网带宽,成本差距会非常明显。

先把账算清楚:CDN回源为什么会消耗源站带宽

CDN回源时,源站对CDN节点返回内容。从源站角度看,这是一次出方向传输。云服务器的公网计费通常也是按出方向算,入方向一般免费。所以CDN来拉资源,真正花钱的是源站把文件吐出去的那一段。

举个很常见的业务:网站一个月CDN下行100TB,缓存命中率70%,回源比例30%。那回源流量就是30TB。这个30TB不是小数,如果源站走公网按流量计费,账单会非常直接。

按0.8元/GB估算,30TB约等于30720GB,源站公网出流量费用大概是24576元。这里只算源站回源公网流量,还没算CDN下行费用,也没算服务器费用。

如果同样的回源走的是同云厂商内部私网,或者通过CDN的内网回源、源站VPC内地址、对象存储内网域名这类方式完成,源站公网出带宽可能就是0。这个差距不是优化一点点,而是账单结构直接变了。

按真实场景拆一下费用差距

小型站点:差距看起来不夸张,但很容易被忽略

假设CDN月下行10TB,缓存命中率80%,回源2TB。

公网回源:2TB约2048GB,按0.8元/GB算,大概1638元。

私网回源:源站公网流量基本不产生,可能只剩服务器、CDN、对象存储本身的费用。

这个量级对企业业务来说不一定致命,但问题在于它经常是“多出来的账单”。很多站点明明上了CDN,以为源站压力和带宽都会下降,结果看到ECS公网流量还在涨,就是因为回源没走内网,缓存策略也没调好。

下载站、补丁分发、图片站:差距会很快放大

假设CDN月下行100TB,缓存命中率75%,回源25TB。

公网回源:25TB约25600GB,按0.8元/GB算,大概20480元。

私网回源:源站公网带宽不承担这25TB,费用差距接近两万元级别。

实际使用中发现,图片、安装包、补丁包这类业务,如果URL里带随机参数、版本参数没规范、缓存Header没写好,命中率会被打得很难看。表面是CDN问题,实际上是源站公网账单在替它买单。

视频和大文件:公网回源基本不能靠侥幸

视频点播、客户端下载、大型素材分发,回源比例哪怕只有10%,量也很大。

假设CDN月下行500TB,缓存命中率90%,回源50TB。

公网回源:50TB约51200GB,按0.8元/GB算,大概40960元。

私网回源:如果架构支持内网回源,这部分源站公网出流量可以大幅减少。

这里补充一点,很多业务会说自己缓存命中率已经90%了,看起来挺高。但流量基数一大,剩下10%也很贵。500TB下行里的10%,就是50TB回源,不是小尾巴。

公网回源和私网回源的账单差别

可以按下面这个口径理解:

公网回源:CDN节点访问源站公网IP或公网域名,源站返回数据时消耗公网出方向流量,可能按固定带宽、按流量、按95计费。跨境、BGP、CN2、GIA线路的公网成本更高。

私网回源:CDN和源站之间通过云厂商内网、VPC、专线、内网域名或内部回源能力通信,不走源站公网出口。多数情况下不占用源站公网带宽,但跨地域、跨可用区、跨产品线可能仍有内网流量费用。

半私网回源:源站入口看起来是内网,但中间经过了负载均衡、NAT Gateway、Transit Gateway、专线网关等组件,这些组件可能单独收流量处理费。账单不一定为0,要看云厂商计费项。

固定公网带宽场景,差距会换一种形式出现

有些源站不是按流量计费,而是买了固定公网带宽,比如50Mbps、100Mbps、500Mbps。这个时候CDN回源走公网,不一定体现为每GB多少钱,而是逼着你把源站公网带宽买大。

按经验估算,100Mbps公网带宽理论月满跑流量大概32TB左右。实际业务有峰谷,不能按满跑规划,通常还要预留突发空间。

如果CDN回源高峰能打到80Mbps,源站还要服务后台、API、运维、同步任务,那100Mbps公网带宽很容易被打满。打满之后表现不是账单变贵,而是回源慢、CDN节点取文件超时、用户侧命中失败后体验变差。

这种情况下,私网回源的价值不只是省流量费,还包括把公网入口从“业务传输通道”里解放出来。公网带宽只承载必须暴露给外部的访问,回源流量走内部链路,峰值会稳很多。

海外源站更明显,尤其是香港、日本、新加坡这类线路

国内云服务器公网带宽已经不算便宜,海外优化线路更贵。香港CN2、精品BGP、日本本地原生、GIA这类线路,贵的是质量,不是机器本身。

如果源站放香港,CDN回源还走公网精品线路,那回源流量等于在消耗高质量国际出口。小流量还好,一旦月回源几TB、十几TB,成本差距会非常明显。

比如香港源站买25Mbps精品CN2,理论上跑满一个月也就8TB左右,但这种线路通常不会拿来长期跑满。业务如果因为缓存命中率差导致回源峰值冲到20Mbps,源站剩余带宽就很紧。用户访问CDN看似没问题,CDN节点回源却开始变慢。

如果业务确实需要香港或日本源站,可以在选服务器时把回源模型一起算进去。比如轻量动态站、企业站、API源站,香港精品CN2-A型这种2C 2G、40G SSD、25Mbps峰值、500GB流量的配置适合做小规模源站或控制面;日本BGP-D型16C 16G、240G SSD、70Mbps峰值,更适合日本本地业务、游戏接口、跨境访问源站。购买这类线路时可以看看129云,它家有香港CN2、日本BGP、高防和大带宽服务器,适合按源站压力去选配置,客服热线400-9177118也可以直接问具体线路和带宽计费口径。

什么时候能走私网回源

CDN和源站在同一家云厂商

这是最容易实现内网回源的情况。CDN产品可能支持填写源站内网地址、对象存储内网域名、负载均衡内网地址,或者通过源站所在VPC做关联。

但不能想当然。很多云厂商的CDN节点是全球边缘网络,边缘节点到源站不一定天然走你ECS所在VPC。控制台里写公网域名,解析到公网IP,那大概率还是公网回源。要看是否明确支持“内网回源”“私有源站”“VPC源站”“源站私网访问”这类能力。

源站是对象存储

对象存储配CDN很常见。这里有一个坑:CDN回源到对象存储公网Endpoint,和回源到内网Endpoint,账单可能不一样。

同地域CDN或同云产品链路如果支持内网Endpoint,回源成本会低很多。但对象存储本身也可能有请求费、数据取回费、跨区域复制费。不能只看公网带宽,还要看对象存储账单里的GET请求、外网流出、CDN回源流出这些分类。

多云架构通常很难纯私网

CDN用A厂商,源站在B厂商,除非上专线、云联网、跨云互联、SD-WAN,否则基本就是公网回源。

多云不是不能做,但要提前承认一个现实:跨云私网不是免费开关。专线有端口费、线路费、网关费,流量也可能计费。流量小的时候,公网回源反而简单;流量大到一定程度,专线或同云迁移才有经济意义。

回源费用不能只看平均流量,峰值更关键

CDN回源有明显的突发特征。缓存过期、热门文件刷新、节点批量预热失败、业务发布新版本,都会导致一波集中回源。

比如一个客户端下载包2GB,发布当天有大量用户访问。CDN节点如果还没预热好,全国节点同时回源,源站会看到一波很尖的流量峰值。按月流量看可能不大,但按带宽峰值看非常吓人。

公网回源在这里有两个成本:一是可能要买更大的公网带宽;二是如果被打满,CDN回源失败会反过来影响用户访问。私网回源也不是无限大,但内部链路通常比公网出口更适合承载这种源站到CDN之间的大流量搬运。

缓存命中率对回源账单的影响非常直接

同样是100TB CDN下行,不同命中率下的回源账差别很大。

命中率95%:回源5TB,按0.8元/GB,公网回源约4096元。

命中率90%:回源10TB,约8192元。

命中率80%:回源20TB,约16384元。

命中率70%:回源30TB,约24576元。

命中率50%:回源50TB,约40960元。

多说一句,命中率从90%掉到80%,听起来只差10个百分点,但回源流量是从10TB变成20TB,账单是翻倍。很多时候优化缓存规则,比换更便宜的源站带宽更有效。

哪些配置会把回源打高

URL参数没有规范

同一个图片,URL后面带utm、timestamp、random、token,CDN可能认为是不同资源。除非配置忽略参数或按指定参数缓存,否则命中率会被拆碎。

Cache-Control写得太保守

很多静态资源明明带版本号,比如app.202405.js、logo.v3.png,却只给了很短的max-age,甚至no-cache。CDN会频繁回源校验,源站压力和公网流量都会增加。

动态接口混进静态域名

静态文件和API共用一个CDN域名,规则没拆开,容易导致缓存策略不敢放长。结果静态资源也跟着频繁回源。

刷新缓存太粗暴

每次发布全站刷新,CDN节点缓存集体失效,后面第一波访问全打到源站。大文件业务尤其明显。预热比刷新更重要,刷新范围也要控制。

公网回源还有安全和稳定性问题

源站暴露公网IP,CDN只是挡在前面,并不等于源站安全。攻击者一旦拿到源站IP,可以绕过CDN直接打源站。DDoS、CC、扫描、爆破都会落到源站公网入口。

私网回源或只允许CDN回源IP访问,可以减少源站暴露面。实际项目里常见做法是源站安全组只放行CDN回源IP段,或者源站不绑定公网IP,通过内网负载均衡接入CDN。这样即使域名在CDN上,源站也不会被随便直连。

不过CDN回源IP段会更新,安全组白名单要有维护机制。不要手工配一次就不管,后面CDN节点扩容或IP段变化,回源失败排查起来很麻烦。

私网回源不是所有场景都省钱

跨地域私网流量可能收费。比如源站在华东,CDN内部回源链路最终跨到了华南或海外节点,云厂商可能按跨地域内网流量计费。

专线回源也不是免费。专线适合稳定大流量、跨云、混合云场景,但它有固定成本。月回源只有几百GB,为了省公网流量上专线,账可能反而更高。

NAT Gateway、负载均衡、云企业网这类中间组件也要看计费。很多账单不是出在ECS公网带宽上,而是出在网关处理费、跨域流量费上。

选源站带宽时可以按回源比例反推

源站带宽不要只按用户访问量估,要按CDN回源峰值估。

可以先用这个粗算方式:CDN月下行流量 × 回源比例 = 月回源流量。再结合业务峰值,把月流量折算成峰值带宽。大文件发布、活动、游戏更新,要额外加突发系数。

比如游戏补丁月分发50TB,预估回源20%,就是10TB回源。如果发布集中在3天内完成大部分下载,源站压力不是把10TB摊到30天,而是集中在那几天。公网带宽买小了,CDN节点就会排队取源。

这类业务如果源站在海外,线路选择很重要。普通国际线路便宜但抖动大,CN2、BGP、GIA质量更稳但带宽贵。需要香港优化线路、海外BGP或高防源站时,可以把129云这类提供G口大带宽服务器、高防服务器、香港CN2和日本BGP线路的服务商放进备选,按回源峰值、IP数量、DDoS防护、是否需要本地原生网络一起评估。

实际排查时看哪些账单和指标

看源站公网出流量

如果上了CDN之后,源站公网出流量仍然很高,先不要急着扩容。看CDN命中率、回源流量、回源状态码、回源域名解析到哪里。

看CDN回源流量曲线

CDN控制台一般有回源带宽、回源流量、命中率、状态码分布。重点看峰值,不只看日均。很多故障都是峰值那十几分钟打出来的。

看源站访问日志

确认请求是不是来自CDN回源IP,URL是否高度离散,参数是否导致缓存失效,Range请求是否异常。大文件业务还要看206状态码比例,Range回源配置不对会导致重复拉取。

看DNS解析结果

有些配置写的是源站域名,但这个域名解析到了公网IP。想走内网回源,要确认CDN侧解析到的是内网地址或云厂商支持的私有源站标识,而不是只在源站机器上能解析内网。

一个比较贴近生产的费用对照

场景A:企业官网和图片资源,CDN下行10TB,回源20%,源站公网流量2TB。公网回源按0.8元/GB约1638元;私网回源源站公网流量接近0。差距在千元级。

场景B:下载站,CDN下行100TB,回源25%,源站公网流量25TB。公网回源约20480元;私网回源可省掉大部分源站公网出流量。差距在万元级。

场景C:游戏更新包,CDN下行300TB,回源15%,源站公网流量45TB。公网回源约36864元;如果使用海外精品线路,实际带宽成本可能更高。差距在几万元级。

场景D:视频素材分发,CDN下行1PB,回源10%,源站公网流量约102TB。公网回源按0.8元/GB约83558元。这个量级下,私网回源、对象存储内网回源、源站预热策略、专线回源都值得认真算账。

源站在129云这类IDC服务器上时怎么处理

如果CDN和源站不在同一个云厂商,通常就是公网回源。这个时候重点不在“强行私网”,而是把公网回源成本和稳定性控制住。

一是缓存规则要写好,静态资源尽量长缓存,URL版本化,避免随机参数污染缓存。

二是源站线路要匹配用户和CDN节点。如果主要面向大陆访问,香港CN2直连比普通国际绕路更稳;如果面向日本用户,日本BGP、本地原生线路体验会更好。

三是源站带宽不要卡太死。CDN回源最怕峰值,3Mbps、5Mbps这种小带宽适合轻量站,不适合大文件源站。香港活动型2C 2G、30GB SSD、3Mbps CN2直连配置适合企业展示站、轻量业务;真要承载明显回源,至少要看25Mbps、70Mbps或更高带宽产品。

四是源站防护要考虑。公网回源意味着源站有暴露面,高防服务器、只允许CDN IP回源、防火墙限速、源站隐藏都要配合起来。业务被扫到源站IP后,CDN前面的防护价值会被绕开。

什么时候公网回源也可以接受

回源量很小,公网回源没必要复杂化。比如月回源几十GB、几百GB,折算成本可能几十元到几百元,工程改造成本比流量费更高。

多云业务早期也可以先公网回源,把缓存命中率、预热、源站限速、防盗链做好。等回源流量稳定到几TB、几十TB,再评估同云迁移、对象存储内网回源或专线。

海外业务如果追求线路质量,公网回源反而可控。比如源站放香港CN2或日本BGP,CDN节点回源路径稳定,虽然贵,但故障少。前提是账算过,不是上线后才发现源站带宽被CDN打满。

配置时容易踩的坑

以为用了CDN,源站就不需要大带宽

CDN能削峰,但不等于源站没流量。缓存未命中、刷新、预热、大文件首拉,都会回源。源站带宽至少要扛住回源峰值。

以为内网IP填进去就一定能通

CDN边缘节点不在你的VPC里,直接填10.x、172.16.x、192.168.x这类地址,通常不可达。必须看CDN产品是否支持VPC源站或私有源站接入。

只看CDN账单,不看源站账单

CDN账单下降了,源站公网账单上涨,这种情况很常见。尤其迁移、改版、缓存规则调整后,要连续看几天源站出流量。

忽略HTTPS回源开销

HTTPS回源本身不一定多花带宽费,但会消耗源站CPU。高并发回源时,TLS握手、证书链、短连接都会放大源站压力。能复用连接就复用,源站Keep-Alive不要配置得太保守。

比较稳的处理方式

源站和CDN在同云,优先查是否支持内网回源、VPC源站、对象存储内网Endpoint。能走内部链路,源站公网带宽压力会小很多。

源站和CDN跨云,先按公网回源设计,缓存命中率做到可控,源站只放行CDN回源IP,监控回源带宽峰值。流量上来后再算专线或迁移。

静态资源尽量对象存储化,配合CDN预热。源站服务器更适合处理动态请求、鉴权、管理接口,不要让ECS长期承担大文件公网回源。

海外源站按线路质量选,不要只看机器配置。2C 2G的机器如果线路好,做轻量源站没问题;16C 16G但线路绕,回源也会慢。香港CN2、日本BGP、GIA、高防这些词要结合业务区域和攻击风险看。

回源量达到每月10TB以上时,公网和私网的差距已经值得专门评估;达到几十TB时,源站带宽、缓存规则、内网回源、对象存储、专线都要一起算,不然账单会很快从“带宽费”变成“架构问题”。