云服务器

云服务器带宽与流量计费:怎么避免月底账单翻倍

云服务器带宽账单翻倍,九成以上是三个原因:出方向流量失控、CDN 回源走了公网而不是内网、被刷流量或盗链。要控住成本,先分清"固定带宽"和"按流量"两种计费口径,再把出流量压到最小:静态资源上 CDN、开启压缩、限制单 IP 速率、对异常流量设告警。

两种计费口径的本质区别

固定带宽(按带宽计费)

你买的是带宽上限,比如 5 Mbps,价格按带宽和时长计。无论这个月实际跑了 1 GB 还是 1 TB,费用不变;超过 5 Mbps 的部分会被限速或丢包。特点是可预测、不怕突发流量,但为峰值预留的容量在闲时会浪费。

按流量计费(按使用量)

你买的是流量额度,价格按实际传输的字节数计。闲时几乎不产生费用,适合访问集中在少数时段的业务。缺点同样明显:没有天然上限,被刷或被爬时账单会随流量线性上涨。

关键事实:绝大多数云厂商只对出方向流量计费,入方向(下载到服务器、用户上传)免费。所以"带宽成本"实际等于"服务器向外发了多少数据"。把这句话记住,优化方向就清楚了。

计费口径换算

1 Mbps 的理想吞吐是 1,000,000 bit/s ≈ 125 KB/s,换算成月流量约 320 GB(125 KB/s × 86400 × 30)。实际因协议开销会略低,工程估算常按 300 GB/Mbps/月 取整。

带宽 理论月出流量 可承载的页面量(单页 500 KB) 典型用途
1 Mbps 约 320 GB 约 64 万次访问 个人站、企业展示
3 Mbps 约 960 GB 约 190 万次访问 中型企业站
5 Mbps 约 1.6 TB 约 320 万次访问 带图片的内容站
10 Mbps 约 3.2 TB 约 640 万次访问 小型电商、API 服务
100 Mbps 约 32 TB 约 6400 万次访问 下载站、媒体分发

注意这是在带宽被打满的理想情况下。真实业务里带宽利用率往往只有 20%–40%,所以"5 Mbps 够不够"要看峰值并发而不是总量。具体价格各厂商差异较大,务必以官方定价页为准。

三种进阶计费方式

  • 峰值带宽(5 分钟峰值):按计费周期内的最高 5 分钟带宽值结算。适合有明显波峰的业务,但如果每天只有一次尖峰,这一天就按尖峰收费。
  • 95 计费(95th percentile):把整月的带宽采样点排序,去掉最高的 5%,取剩下最大的那个值计费。适合波动大但需要大带宽的场景,通常搭配大带宽规格使用。
  • 增强型 95 / 日峰值月平均:先按天取峰值,再对当月取平均。比 95 计费更平滑,也更容易预测,具体是否提供取决于厂商。

选哪种取决于流量曲线形状。曲线平稳时固定带宽最省;曲线陡峭且有多次尖峰时 95 计费更优;访问稀疏时按流量最省。

账单翻倍的五个真实原因

1. CDN 回源走了公网

CDN 加速后,用户请求打到边缘节点,边缘节点回源取数据。如果回源地址填的是公网 IP 且未配置回源流量优惠,回源流量会计入云服务器出流量。正确做法是让 CDN 通过内网回源,或使用对象存储作为源站并开通回源流量包。

2. 被恶意刷流量或盗链

静态资源被别的站点直接引用(盗链)、或接口被脚本高频调用,出流量会在几小时内暴涨。防护手段是分层叠加的:

  • Nginx 限速:limit_req 限制请求速率,limit_conn 限制单 IP 并发连接。
  • 防盗链:校验 Referer,热链资源只允许本站域名引用。
  • 对象存储签名 URL:私有读 + 临时签名,链接无法被长期盗用。
  • CDN 侧频次控制与 IP 黑名单:在边缘就把恶意请求拦掉,避免回源。

3. 未开启压缩与缓存

一个未压缩的 HTML 加 JS/CSS 往往超过 1 MB,开启 gzip/brotli 后常能降到 200–300 KB,出流量直接降低六到八成。静态资源设置长期缓存头,让浏览器不再重复下载,也是同样的效果。

4. 备份、同步、日志外传占用公网

把数据库备份传到对象存储、把日志推到日志服务、部署时从境外镜像站拉包,这些都在消耗出流量。把备份与日志通道改成内网或走同地域内网端点,成本能立刻降下来。

5. 忘记释放的临时实例与公网 IP

测试环境用完不关机、EIP 闲置仍绑定、按量实例忘记释放,这类"幽灵资源"每月都能吃掉固定比例的账单。用标签(Tag)把资源按项目归属,并设定期巡检。

可落地的限速与防护配置

在 Nginx 里加下面几段即可获得基础防护,注意先把 limit_req_zone 放在 http 块,其余放在 server 或 location 块。

# 每秒 10 个请求,突发 20,超出直接拒绝
limit_req_zone $binary_remote_addr zone=req_per_ip:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=conn_per_ip:10m;

server {
    limit_req zone=req_per_ip burst=20 nodelay;
    limit_conn conn_per_ip 20;

    # 防盗链:只允许本站与空 Referer
    location ~* .(jpg|jpeg|png|gif|mp4|zip)$ {
        valid_referers none blocked server_names *.ydbee.cn;
        if ($invalid_referer) { return 403; }
        expires 30d;
    }

    # 压缩
    gzip on;
    gzip_comp_level 5;
    gzip_types text/css application/javascript application/json image/svg+xml;
}

限速阈值要按真实业务调,设得太严会挡住正常用户(尤其是 NAT 后的大量用户共用出口 IP)。建议先只记录不拒绝,观察一周日志再收紧。

监控告警:在账单爆炸前收到通知

成本事故的共同点是"发现太晚"。至少配置三条告警:出带宽连续 10 分钟超过历史 95 分位的 1.5 倍、单 IP 请求数突增、当月流量消耗超过预算的 60% 与 85%。云监控的带宽指标通常有 1–5 分钟延迟,配合应用层访问日志统计更准确。

  • 带宽类:出网带宽、出网流量、连接数
  • 应用类:QPS、4xx/5xx 比例、单 IP Top N
  • 账单类:预算告警、按量实例数变化、EIP 数量变化

成本侧的完整方法可参考云计算成本优化实战,配置侧的取舍见云服务器选购指南。

成本估算对照表

业务形态 推荐计费 关键动作 风险点
企业官网 固定 3–5 Mbps + CDN 静态资源全量上 CDN,开 gzip CDN 回源走公网
内容/资讯站 固定带宽 + CDN 流量包 图片压缩、WebP、缓存头 图片被盗链
下载/文件分发 对象存储 + CDN 按流量 不用云服务器直接对外发文件 单文件过大导致流量失控
API 服务 按流量或小固定带宽 限流、鉴权、返回体精简 接口被刷
视频/直播 专用媒体分发计费 转码多码率、切片分发 直连回源产生巨额出流量
内部系统 内网 + 小公网带宽 走 VPN 或专线 误开公网访问

常见问题

云服务器入流量真的免费吗?

绝大多数厂商对公网入方向流量不计费,即用户上传、你下载数据到服务器都不产生流量费。但要注意部分产品(如跨地域的内网互通、NAT 网关、负载均衡)有独立的计费规则,需按具体产品文档确认。

固定带宽和按流量哪个更省钱?

用上个月的 95 峰值带宽和月出流量分别试算一次即可判断。流量平稳、峰值持续时间长的选固定带宽;访问稀疏、波峰波谷悬殊的选按流量。两者也可组合:主站固定带宽,对象存储按流量。

网站被人刷流量,账单暴涨能追回吗?

通常不能。计费基于实际产生的流量,厂商一般不为第三方攻击导致的流量免单。可行做法是立即限速、拉黑来源 IP、接入 CDN 与 WAF,并在事后与商务沟通是否有流量包或减免空间,但不要把它当成常规手段。

用了 CDN 之后带宽账单为什么没降?

常见原因是回源未走内网、缓存命中率过低(缓存规则配置错误或资源带随机参数)、以及只对部分资源做了加速。先用 CDN 的命中率报表和回源流量指标定位,命中率低于 80% 时优化缓存规则收益最大。

延伸阅读