海外服务器带宽怎么选?独享带宽、共享带宽与流量计费解析

"100M 带宽"这句话,可能是海外服务器配置单上信息量最低的一行。它没说是独享还是共享,没说是端口速率还是保障速率,没说超出后是限速还是收费,也没说流量有没有上限。结果就是:同一份"100M 带宽",有的机器晚高峰能稳定跑满,有的连 10M 都跑不到。本文把带宽相关的概念、计费模式和估算方法一次讲清,并给出可直接执行的测量与监控命令,帮你在签合同前把数字算明白。

一、先厘清三个概念:带宽、吞吐、流量

  • 带宽(Bandwidth):链路的速率上限,单位通常是 Mbps 或 Gbps,指的是"每秒最多能传多少"。它类似水管的口径。
  • 吞吐(Throughput):实际测得的传输速率,受带宽上限、对端能力、延迟、丢包和拥塞控制共同影响。高延迟链路上,单条 TCP 连接的吞吐会被明显限制。
  • 流量(Traffic / Transfer):一段时间内传输的数据总量,单位是 GB 或 TB。它类似水表读数,是很多海外机房真正的计费依据。

三者关系可以简化为:流量 ≈ 吞吐 × 时间。所以"不限流量的 100M 带宽"意味着你可以长时间跑满 100Mbps,而"每月 1TB 流量"意味着你可以短时间跑很快,但总量花完就结束了。这两种产品的成本结构完全不同,选错会直接反映在账单上。

二、独享带宽、共享带宽与突发带宽

海外机房在配置单上写的"100M""1G",经常指的是端口速率上限而不是你实际能稳定拿到的速率。判断的关键在于这台机器的上游是否被其他租户共享:独享意味着服务商在交换端口或上游为你预留了对应容量,共享则意味着你和同机柜、同宿主机的其他用户一起争抢同一条出口。前者价格高但可预期,后者价格低但随邻居负载波动。理解这一点之后,再往下看具体的类型划分就会清晰很多。

类型定义优点缺点适合的业务
独享带宽(Dedicated)承诺的速率归你独占,不与他人争抢稳定可预期,晚高峰有保障单价高直播、API、支付回调、企业应用
共享带宽(Shared / Best Effort)同一端口或上游由多用户共享,按需争抢价格低,标称速率高晚高峰波动大,实际速率不可预期测试环境、低优先级后台任务
突发带宽(Burst)基准速率较低,短时可冲高兼顾成本与峰值突发额度用尽即回落,长时大流量不适用有明显峰谷的网站、备份窗口
按 95 分位计费取一个月内 5 分钟采样点的第 95 百分位计费允许短暂峰值,大流量划算账单不直观,需自行监控大带宽长期业务
按流量计费按实际出向(有时含入向)总量计费用多少付多少流量突增时账单不可控流量平稳或可预测的业务

选型时的关键判断是:你的业务能不能容忍速率波动。直播、实时通信、支付回调这类业务一旦带宽被抢,后果是直接影响交易或体验,必须选独享;而后台批处理、定时备份、测试环境对波动不敏感,共享带宽能省不少钱。

三、怎么估算自己真正需要多少带宽

不要用"感觉挺快的"来估算,用日志算。方法是:先算总量(流量),再算峰值(带宽),两个数都要。

3.1 算流量:从访问日志统计

# 统计单日响应体总量(第 10 列是 Nginx 默认的 body_bytes_sent)
awk '{sum+=$10} END {printf "日流量: %.2f GB\n", sum/1024/1024/1024}' /var/log/nginx/access.log

# 找到最耗流量的 20 个请求,优先优化
awk '{print $10, $7}' /var/log/nginx/access.log | sort -rn | head -20

# 按小时统计请求量,找出高峰时段
awk '{print substr($4,14,2)}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -24

日流量 × 30 即为月流量近似值。注意日志统计的只是应用层响应体,实际出向流量还要加上 TLS 开销、响应头和重传,通常在此基础上留 10%-20% 余量。

3.2 算峰值带宽:从网卡采样

# 实时查看网卡速率,Peak 列即采样期内的峰值
iftop -i eth0 -n -P

# 每 1 秒采样一次,共 10 次,看 rxkB/s 与 txkB/s
sar -n DEV 1 10

# 查看网卡累计收发总量
ip -s link show dev eth0

# 按天/月统计流量(vnStat 需先安装并初始化)
vnstat -l          # 实时
vnstat -d          # 按天
vnstat -m          # 按月

换算方法:带宽(Mbps) ≈ txkB/s × 8 / 1000。例如 sar 输出显示 txkB/s 峰值为 6000,则对应约 6000 × 8 / 1000 = 48Mbps。把这个数字与服务商的标称值对比,就能判断是否需要升级。

3.3 用吞吐测试验证标称带宽

# 服务端(在海外服务器上执行)
iperf3 -s -p 5201

# 客户端(在本地执行),4 并发持续 30 秒
iperf3 -c 203.0.113.60 -p 5201 -P 4 -t 30

# 反向测试(测入向),加 -R
iperf3 -c 203.0.113.60 -p 5201 -P 4 -t 30 -R

# 单线程测试,暴露高延迟下的单连接吞吐上限
iperf3 -c 203.0.113.60 -p 5201 -P 1 -t 30

判读标准:如果单线程吞吐远低于多线程,说明是延迟与 TCP 窗口限制,而不是带宽不够——这种情况下应优化传输(启用更大的 TCP 窗口、开启 BBR、接入 CDN),而不是盲目加带宽。对比方法:

# 查看并调整 TCP 拥塞控制算法
sysctl net.ipv4.tcp_congestion_control
sysctl net.ipv4.tcp_available_congestion_control

# 启用 BBR(内核 4.9+ 支持)
modprobe tcp_bbr
echo 'net.core.default_qdisc=fq' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' >> /etc/sysctl.conf
sysctl -p

# 验证是否生效
sysctl net.ipv4.tcp_congestion_control
lsmod | grep bbr

四、不同业务形态的带宽选型建议

业务形态月流量量级推荐计费建议带宽类型
企业官网 / 展示站10-100 GB不限流量或大额度流量包共享即可,成本优先
内容站 / 博客(有图)100 GB-1 TB按流量 + CDN 分流共享或低基准突发
跨境电商独立站500 GB-3 TBCDN 承担静态,源站按流量独享小带宽 + CDN
SaaS / API 服务波动大独享带宽或 95 计费独享,稳定性优先
视频 / 直播 / 下载站数 TB 以上95 计费或不限流量独享大端口(1G/10G)
对象存储 / 镜像源不定按流量,配合 CDN大端口独享
数据库 / 内部服务小但延迟敏感内网流量通常不计走内网或专线

4.1 一条实用的经验规则

把静态资源(图片、JS、CSS、视频)交给 CDN,源站只处理动态请求,通常能把源站出向流量降低 60%-90%。这一步做完后,再回头看带宽需求,往往会发现原本要买的独享大带宽根本用不上。判断 CDN 是否生效:

# 检查响应头,确认命中的是 CDN 而非源站
curl -sI https://example.com/ | grep -iE 'cf-ray|x-cache|via|server'

# 对比直连源站与走 CDN 的 TTFB 差异
curl -s -o /dev/null -w '直连 TTFB=%{time_starttransfer}\n' --resolve example.com:443:203.0.113.60 https://example.com/
curl -s -o /dev/null -w 'CDN  TTFB=%{time_starttransfer}\n' https://example.com/

五、带宽选型与验收步骤清单

  1. 先用 awk 统计访问日志,算出日流量与月流量,定位流量消耗最大的请求。
  2. 用 sar -n DEV 或 iftop 采样峰值,按 txkB/s × 8 / 1000 换算成 Mbps。
  3. 判断业务是否容忍速率波动:不能容忍(直播/支付/API)就选独享。
  4. 对比三种计费模式的总成本:按流量(月流量 × 单价)、独享端口(固定月租)、95 计费(取峰值分位)。
  5. 向服务商确认四个问题:是独享还是共享、标称的是端口速率还是保障速率、超出后限速还是收费、入向是否计费。
  6. 用 iperf3 做多线程与单线程双向测试,记录实际吞吐。
  7. 若单线程吞吐明显偏低,先排查延迟与 TCP 参数(必要时启用 BBR),再决定是否加带宽。
  8. 接入 CDN 后重新统计源站流量,复核带宽需求是否下降。
  9. 部署 vnStat 或监控系统,设置流量与带宽告警阈值(如达到月流量 80% 时告警)。
  10. 上线后连续观察一个完整月,用真实数据校正下一周期的选型。
# 设置流量告警的简单思路:每日统计并比对阈值
vnstat --oneline
# 输出示例:1;eth0;2025-10-15;  12.34 GB;  1.20 GB;  13.54 GB;  520.00 GB

# 查看月度流量与预估
vnstat -m

# 实时带宽占用,定位突发来源
iftop -i eth0 -n -P
nethogs eth0

小结

还有一点值得单独强调:带宽问题经常被误诊。当用户反馈"网站慢"时,很多人第一反应是加带宽,但实际测量下来,常见的真实原因往往是页面请求数过多、图片未压缩、数据库查询慢或未启用缓存——这些情况下即使把带宽翻一倍,TTFB 也几乎不会改善。区分方法很简单:用 iperf3 测得的实际吞吐如果远低于标称带宽,才说明带宽确实是瓶颈,否则就该回到应用层去优化。

海外服务器带宽选型,本质是把"我到底要传多少数据、什么时候传、能不能慢"这三个问题回答清楚。答案是:用日志算流量,用 sar 算峰值,按业务容忍度选独享或共享,按流量曲线选计费模式。最容易踩的坑有两个——一是把"100M 端口"当成"100M 保障",二是还没上 CDN 就按峰值买大带宽。前者靠问清合同条款解决,后者靠先做静态资源分流解决。最后别忘了一个持续动作:装上 vnStat 或监控告警,把带宽用量的变化看在眼里,而不是等到账单超标或用户投诉才发现。