AWS / GCP 的"出站流量税":云巨头按 GB 扣费解析与 Backblaze B2 + Cloudflare 免流量降本
2026-08-14 · DevCraft Studio
把图片视频塞进 AWS/S3,月底账单被"出站流量"刷爆?拆解云巨头按 GB 扣费套路,手把手教你用 B2+Cloudflare 免流量费、用便宜 VPS 做反向代理缓存降本。
很多人把网站、图片、视频一股脑塞进 AWS EC2 或者 S3,跑得好好的,直到月底收到一张信用卡账单——上面一行"Data Transfer Out"几千块,人直接懵了。这就是云计算圈有名的"出站流量税(Egress Tax)"。本文把 AWS / GCP 的出站计费拆开给你看,并手把手讲一套免流量费的降本组合拳:Backblaze B2 对象存储 + Cloudflare CDN,再配一台便宜的按量 VPS 做反向代理缓存层。
延伸阅读
更多相关攻略推荐:【TCP优化 02】为什么晚高峰 Ping 值正常,SSH 却卡到掉、高级玩家玩出花:如何在 VPS 上广播自己的 IP 地址?BYOIP、Web 与数据库分在两台 VPS?跨机房 MySQL 3306 安全、美国、欧洲、亚洲都有 VPS?多机房智能分流:GeoDNS 动态解析、打死不宕机:Linux 系统内核免重启升级(Kexec 快速切换与 。
AWS / GCP 出站流量到底有多贵
先说结论:上传(Ingress)到云厂商免费,但数据从云出去(Egress,出站)是按 GB 收钱的,而且不便宜。以 2026 年美区价格为例:
- AWS EC2 / S3 出站:前 100GB/月免费,之后前 10TB 是 0.09 美元/GB,10~50TB 降到 0.085,50~150TB 0.07,超过 150TB 才 0.05。
- GCP 出站:Premium 层前 1TB 高达 0.12 美元/GB(最贵),Standard 层走公网约 0.085/GB。
- Azure 相对便宜,前 5TB 约 0.087/GB。
- Oracle Cloud 是个异类,出站大约 0.0085 美元/GB,还白送 10TB/月,做重流量业务很香。
算笔账:1TB/月出站,AWS 约 90 美元(约 650 元),GCP Premium 约 120 美元,Azure 约 87 美元。如果你的业务每月出 10TB,AWS 就是 900 美元(约 6500 元)纯流量费,这还没算机器钱。更坑的是隐藏项:走 NAT Gateway 出网的,每 GB 还要再收 0.045 美元"数据处理费",等于真实成本被推高到 0.135/GB;跨可用区(AZ)互访每 GB 单向收 0.01 美元(往返 0.02)。这些费用不挂在实例上、埋在 VPC 账单里,很多团队直到账单爆了才发现。
真实踩坑:一个文件把信用卡刷爆
这不是吓唬人。社区里流传一个典型事故:有个开发者把一个 13.7GB 的文件公开分享,结果火了,全网人都在下。AWS 按 0.09/GB 对每个下载者计费,没有封顶、没有预警,一夜之间账单从 23 美元飙到 2657 美元。还有人把整站图片视频直接放 S3 公开桶,访问量一上来,月底流量费比存储费高出一个数量级。NASA 当年想把 PB 级数据搬进 AWS 做分析,也差点被"员工和公众访问这些数据"的出站费劝退——数据进去了,想再大规模拉出来贵得离谱。这就是所谓的"Hotel California"模式:数据容易进来,想出去得交钱。
免流量组合拳:Backblaze B2 + Cloudflare
好消息是有结构性的解法,而且免费。核心是两个东西:Backblaze B2 对象存储 + Cloudflare CDN,利用二者在"带宽联盟(Bandwidth Alliance)"里的合作,把出站流量费直接归零。原理很简单:Cloudflare 和 Backblaze 在多个数据中心有物理直连,当 Cloudflare 向 B2 取文件时,数据走的是私有互联而非公网 transit,两边都不用付 transit 费,于是 Backblaze 也就不向你收这笔出站费。这个合作从 2018 年就在,不是限时促销。成本对比(1TB/月出站):Amazon S3 约 92 美元,Google Cloud Storage 约 120 美元,Backblaze B2 标准约 10 美元,而 B2 走 Cloudflare 是 0 美元——而且 B2 存储本身只要 0.006 美元/GB(约 6 美元/TB),比 S3 便宜一大截。配置要点:
- 在 B2 建一个公开桶(public bucket),把图片/视频/静态文件传上去;
- 给你的域名在 Cloudflare 加一条 CNAME,指向 B2 的下载端点(如 f004.backblazeb2.com),并务必开启橙色云(Proxy,走 Cloudflare 代理)——只有走代理的流量才免出站费,设成 DNS-only 灰色云就按 B2 标准 0.01/GB 收费;
- 在 Cloudflare 设一条 Cache Rule,给静态资源一个较长 TTL(比如 30 天),让边缘节点缓存,二次访问直接命中、不再回源;
- 站点里把资源 URL 改成你的 CDN 域名(如 cdn.yoursite.com)。
整条链路:访客要图片 → Cloudflare 边缘命中(快、免费)→ 未命中才回 B2(经带宽联盟免费)→ 缓存下次用。你只付 B2 存储费和 API 调用费,出站流量费是 0。
混合云架构:便宜 VPS 做反向代理 / 缓存层
光存静态还不够,很多动态内容、API、或者你已经有一台大厂 VPS 想减负,可以用"混合云"思路:拿一台按量计费、流量便宜的 VPS(比如 Vultr、DigitalOcean、Hetzner,甚至 Oracle 免费机)做反向代理 + 缓存层,挡在大厂 VPS 前面,把重复请求就地消化,大幅减少打到后端的大厂出站流量。思路是:用户先打到这台边缘 VPS,VPS 用 Nginx 缓存能缓存的响应,只有缓存未命中才回源到大厂机器。Nginx 反向代理 + 缓存的最小配置:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mycache:10m max_size=10g inactive=60m use_temp_path=off;
server {
listen 443 ssl http2;
server_name example.com;
location / {
proxy_pass http://大厂VPS的IP:端口;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache mycache;
proxy_cache_valid 200 10m;
add_header X-Cache-Status $upstream_cache_status;
}
location ~* \.(jpg|png|css|js|woff2)$ {
proxy_pass http://大厂VPS的IP:端口;
proxy_cache mycache;
proxy_cache_valid 200 30d;
add_header Cache-Control "public, max-age=2592000";
}
}几个要点:用 proxy_cache 把响应落盘,X-Cache-Status 头能看到 HIT 还是 MISS;静态资源给长缓存;开启 gzip / brotli 还能再压一波体积。配合 B2+Cloudflare 管静态大文件,这台边缘 VPS 管动态和缓存,大厂 VPS 只负责算和出少量回源流量,出站费能砍掉一大半甚至更多。Hetzner 的机器大多自带大额甚至不限流量,做这个边缘层特别划算;Oracle 免费机给 10TB/月出站,也能顶上;Vultr、DigitalOcean 按量透明,适合做按需扩缩的缓存节点。
除了 B2,还有哪些"免流量"对象存储
B2 + Cloudflare 不是唯一答案,按场景还有几个可选项,先上一张对照:
- Cloudflare R2:R2 本身出站流量免费(不收 Egress 费),但请求按量计费(每百万次 A 类请求约 4.5 美元、B 类约 0.36 美元)。配合 Workers 或 CDN,把静态资源读写圈在 Cloudflare 网络内,出站费同样归零,适合已经用 Cloudflare 全家桶的项目。
- Wasabi:口号"无出口费、无 API 费",存储单价约 0.006~0.008 美元/GB,但免流量有前提——协议限制"不能把 Wasabi 当公开 CDN 源站对外大规模分发",更适合内部同步、备份,免流量不等于"随便对外刷"。
- Storj / 去中心化存储:按用量计费、出站比 S3 便宜一大截,适合大文件分发,但生态和兼容性要自己评估。
- Oracle Cloud 对象存储 + 10TB 免费出站:本来就用 Oracle 免费机的,对象存储出站走免费额度,也能实现"重流量不出大厂账单"。
一句话:想"对外公开分发还免流量",最省心还是 B2(走 Cloudflare)或 R2(圈在 Cloudflare 内);只做备份同步,Wasabi 更合适。别只看"免流量"三个字,一定看清它的前提条件,否则踩到协议限制照样被补收。
这套 Cloudflare 方案的几个坑,提前知道
免流量不是无脑接上就行,几个高频踩坑点:
- 灰色云(DNS-only)会破功:资源域名必须开橙色云走代理,一旦手滑设成灰色云,流量不再经过 Cloudflare,B2 就按标准 0.01/GB 收你出站费,免流量当场失效。
- 默认不缓存动态内容:Cloudflare 默认只缓存静态资源,HTML / API 这类动态响应不缓存,该有的回源流量还是有。想连动态也省,要谨慎用 "Cache Everything" 规则,并给带 cookie 的页面留例外,否则用户会串号、看到别人的内容。
- 缓存 TTL 别设太长导致更新不灵:静态资源设 30 天很爽,但发新版本时旧文件还挂边缘节点。解决办法是给文件名加哈希(如 app.3f2a.js),改版后文件名变、URL 变,自然命中新资源,不依赖手动清缓存。
- 免费版大文件有上限:Cloudflare 免费版对超大文件(如几十 GB 视频)的缓存和单次传输有限制,这种场景建议视频走 HLS 切片、或专用视频 CDN,别指望一个桶全包。
- R2 / Workers 也有请求费:R2 免出站但按请求量计费,超高并发小文件站点,请求费可能超过"省下的流量费",算账要把请求量算进去。
把这些坑都避掉,B2 + Cloudflare 基本是个人站和小团队降本的"标准答案";再叠加上一节那台便宜 VPS 做反向代理缓存,动态、静态、大文件三路一起压,出站账单能砍到接近零。
一个真实改造示例:月省几百块
讲个常见改造:一个图片站原来所有图片直接挂 S3 公开桶,月出站 3TB。按 AWS 0.09/GB 算,光流量就约 270 美元(约 1950 元)/月。改造后:图片搬 B2 + 走 Cloudflare 橙色云,出站费归零,只多付 B2 存储约 18 美元/TB(约 130 元);前端再加一台 Hetzner 4.5 欧元/月的机器做 Nginx 反代缓存动态接口。改造后每月账单从约 290 美元降到约 25 美元出头(B2 存储 + Hetzner 机器 + 少量回源),一年省下两千多美元。注意这还是 3TB 体量,体量越大省得越夸张——10TB 级能省近万美元/年。改造本身不复杂,半天就能接上,回报立竿见影。
写在最后
一句话:云巨头的"出站流量税"是结构性的——数据进来免费、出去按 GB 扣,稍不注意就刷爆卡。个人站和小项目最稳的降本姿势是:静态大文件扔 B2 + Cloudflare(出站归零),动态内容用一台便宜按量 VPS 做 Nginx 反向代理缓存层替大厂机器扛重复流量。把"重流量"和"重计算"拆开,账单立刻好看。像 DigitalOcean、Vultr 这种按量透明的大厂适合做边缘缓存节点,Hetzner 自带大流量做反向代理很香,Oracle Cloud 免费机的 10TB 出站更是白捡的减负资源。
常见问题 FAQ
问:出站流量税到底是什么?? 云厂商对数据「出网」(Egress)按 GB 收费,而「入网」免费。AWS 出网约 $0.09/GB 起、GCP 类似,月底传输量大时账单惊人。这是厂商锁定手段:进来易、出去贵。评估云成本必须把出网流量算进去,别只看实例单价。
问:Backblaze B2 + Cloudflare 怎么免流量费?? Cloudflare 与 Backblaze 有联盟,B2 经 Cloudflare 回源不收 B2 出网费,Cloudflare 对入站也不计费,静态资源走 CF CDN 基本零流量成本。再配一台便宜按量 VPS 做反代/缓存层,可把对象存储的访问成本压到极低,适合图床、视频、备份分发。
问:哪些场景最该注意出网费?? 大文件分发、视频、批量备份同步、数据库跨区复制、SaaS 多租户下载最易踩坑。对策:用 CDN 吸收出网、选联盟免费通道、压缩与缓存、把计算靠近数据。若业务出网量巨大,宁可前期架构设计规避,也别等账单爆炸再补救。