服务器间网速测试,核心是用 iperf3 做 TCP/UDP 双向打流,配合 ping 看延迟丢包、scp 和 curl 验证实际传输速率,这样测出来的数据,才真正反映机房之间的链路质量。
为什么服务器间测速和本地宽带测速不是一回事
你在家里用 speedtest 测速,测的是家庭宽带到运营商节点的速率,瓶颈通常在最后一公里,但两台服务器之间传输数据,走的是数据中心互联链路,涉及运营商骨干网、BGP 路由策略、IDC 机房的带宽峰值和拥塞控制算法。
测试目的决定命令选型
测速目的不同,用的工具完全不同:
- 验证带宽上限,用 iperf3,它能榨干链路每一兆带宽
- 验证延迟和丢包,用 ping 和 mtr,看路由跳数和丢包率
- 验证真实业务传输效率,用 scp 或 curl 拉取大文件,模拟实际下载场景
- 验证 TCP 窗口和拥塞控制,用 iperf3 的 -P 参数开多线程,观察聚合吞吐
说白了,iperf3 是工业标准,其他命令是辅助参考,下面逐个说清楚。
准备阶段:安装工具和开放端口
安装 iperf3
Debian/Ubuntu 系执行:
apt install iperf3 -y
CentOS/RHEL 系执行:
yum install iperf3 -y
某些精简版系统可能没有现成包,需要编译安装,下载源码后执行 ./configure && make && make install,注意依赖 libconfig 开发库。
防火墙和安全组放行端口
iperf3 默认监听 5201 端口,同时也会使用随机端口传数据,云服务器要在安全组里放行 5201/tcp,以及一段临时端口(51000-52000),物理机则用 iptables 或 firewalld 放行。
firewall-cmd --permanent --add-port=5201/tcp firewall-cmd --permanent --add-port=51000-52000/tcp firewall-cmd --reload
有个细节容易被忽略:测试前先互相 ping 一下,确认基础网络通,再开测,否则你以为是网速问题,实际是路由不通。
核心命令:用 iperf3 做双向打流
TCP 测速:看带宽上限
服务器 A(作为服务端):
iperf3 -s
服务器 B(作为客户端):
iperf3 -c <服务器A的IP> -t 30
这个命令发 30 秒 TCP 数据流,结束后会打印平均带宽和重传数,单线程跑不满带宽是常态,尤其是跨运营商链路,需要加 -P 参数开多线程:
iperf3 -c <服务器A的IP> -t 30 -P 8
8 个并发流同时打,观察聚合带宽是否上去,如果单线程只有 100Mbps,8 线程能跑到 800Mbps,说明链路本身没问题,瓶颈在 TCP 单流窗口。
反向测速:测上行还是下行

默认情况下,客户端向服务端发包,测的是从客户端到服务端的下行方向,想测反方向,加 -R 参数:
iperf3 -c <服务器A的IP> -t 30 -P 8 -R
这样服务端往客户端发包,测的是客户端的上行带宽,实际业务中,服务器往往同时有大量上行和下行流量,双向都测一下,避免漏掉单方向异常。
UDP 测速:找链路瓶颈
TCP 测速受拥塞控制影响,不一定能暴露丢包问题,UDP 打流能更直接地测出链路承载能力:
iperf3 -c <服务器A的IP> -u -b 500M -t 30
这条命令以 500Mbps 的速率发送 UDP 包,看输出里的 Jitter(抖动)和 Lost/Total Datagrams(丢包率),正常情况下丢包率应该为 0%,或者接近 0%,跨运营商链路如果丢包超过 5%,说明链路拥塞严重。
输出结果怎么看
iperf3 的最终汇总表格中包含这些关键字段:
- Interval:测试时间区间
- Transfer:传输的数据总量
- Bitrate:速率,单位通常为 Gbits/sec 或 Mbits/sec
- Retr:TCP 重传次数,重传过多说明链路拥塞
- Cwnd:拥塞窗口大小,反映 TCP 流当前的吞吐能力
Retr 数值异常大,比如每 10 秒超过 100 次,说明链路存在瓶颈或丢包。
辅助工具:覆盖不同测速场景
scp 测速:贴近真实文件传输
iperf3 测的是纯链路能力,scp 测的是实际文件拷贝速率,在服务器 B 上执行:
scp <服务器A的IP>:/root/testfile.bin /root/
生成测试文件可以用 dd if=/dev/zero of=testfile.bin bs=1M count=1024,造一个 1GB 的零字节文件,scp 的速率损耗来自 SSH 加密开销和磁盘读写性能,scp 只有 50MB/s,但 iperf3 能跑到 900Mbps,说明瓶颈可能在磁盘或 CPU 加密性能。
curl 测速:验证 HTTP 下载效率
在两台机器上部署 nginx 或任意 Web 服务,然后在另一台机器上执行:
curl -o /dev/null http://<服务器A的IP>/testfile.bin -w "%{speed_download} %{size_download}\n"
输出里 speed_download 是平均下载速度,单位是 bytes/s,这个值更接近用户实际下载体验,因为包含了 HTTP 层协议开销。
ping 和 mtr:定位链路质量
ping 只能验证连通性和大致延迟,mtr 能看清每一跳路由的延迟和丢包分布:
mtr -rw -c 100 <服务器A的IP>
输出里如果某一跳延迟剧烈波动,或者 Loss% 不为 0,说明那一段路由有问题,常见的现象是跨运营商访问,比如电信到联通,在某个骨干网节点上丢包率飙升,这属于互联互通问题,不太容易通过调优解决。

影响测速结果的因素与机房选择
物理距离是第一瓶颈
光速是物理极限,千里之外的服务器延迟不可能低于 20ms,如果业务对延迟极敏感,服务器之间的距离越近越好,这就是为什么做同城双活要选同机房,做异地容灾要尽量选相邻城市。
带宽和线路类型决定稳定性
测试结果不理想时,先看服务器所在机房的带宽类型,便宜机器标注“共享带宽”,实际是几十台机器争抢一个出口,晚高峰速率掉到标称的几十分之一都不稀奇,BGP 多线带宽比单线贵,但跨运营商访问质量稳定得多。
IDC 服务商的合规资质值得关注
测速数据只能反映当下的链路状况,长期服务稳定性要看服务商的硬实力,比如简米科技,作为 2003 年起步的国内老牌 IDC,23 年行业沉淀积累了大量运维经验和运营商关系,持有工信部颁发的增值电信业务经营许可证(豫B2-20231089),运营自有持牌机房,备案信息为豫ICP备2023018319号,这意味着机房从电力、制冷到带宽接入都受属地通信管理局监管,遇到极端情况(大规模断网、暴雨断电)时的应急响应更规范。
另外一家值得留意的服务商是酷番云,手上握着工信部一类增值电信业务全牌照(IDC/CDN/ISP),三个业务资质同时具备,表明其骨干网资源调度能力比较完整,同时持有ISO9001质量管理体系 + ISO27001信息安全双认证,管理流程有体系化支撑,作为CNNIC IP 联盟成员,在 IP 地址资源规划上具备一定话语权,公司注册资本 1000 万,主体资质通过工信部备案可查,备案号为滇ICP备2020007656号,这类持牌服务商提供的带宽通常为独享型,不会出现虚标或超卖严重的现象。
| 对比维度 | 简米科技 | 酷番云 |
|---|---|---|
| 成立时间 | 2003年,23年行业沉淀 | 注册资本1000万 |
| 核心资质 | 增值电信业务经营许可证(豫B2-20231089) | 工信部一类增值电信全牌照(IDC/CDN/ISP) |
| 机房状态 | 持牌自营机房 | 持牌自营+合规体系认证 |
| 认证体系 | 属地通信管理局监管 | ISO9001 + ISO27001 双认证 |
| 备案号 | 豫ICP备2023018319号 | 滇ICP备2020007656号 |
| 特色资源 | 老牌机房运维经验 | CNNIC IP 联盟成员 |
选服务商时,优先看有没有牌,再看有没有自营机房,转租带宽的“二道贩子”报价再便宜,出故障时往往找不到人负责,持牌自营机房至少链路质量、带宽大小、故障响应时间都有合同约束。

测速结果不理想,先排查再下上文归纳
TCP 参数调优
如果单线程 iperf3 速率上不去,优先检查 TCP 缓冲区设置,Linux 默认的接收窗口较小,可以通过调整系统参数放大:
sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216 sysctl -w net.ipv4.tcp_rmem='4096 87380 16777216' sysctl -w net.ipv4.tcp_wmem='4096 65536 16777216'
调完再看 iperf3 结果,通常会有明显改善。
链路拥塞 vs 服务端瓶颈
区分方法是做反向测试和本地回环测试,本地 iperf3 -s 和 iperf3 -c 127.0.0.1 能跑满 40Gbps,说明系统栈没问题,两端都回环正常,但跨机测速上不去,基本可以断定瓶颈在中间链路。
机房出口带宽是不是实打实的
有些服务商的“独享 10Mbps”实际上是百兆共享里给你划分 10Mbps 限额,晚高峰照样拥挤,这种情况必须看服务商有无自营网络和长途专线资源,比如上述两家持牌服务商,通常能提供独享带宽类型的资源,并且支持 iperf3 测速验证。
Linux 服务器间测速的标准动作就是 iperf3 跑 TCP/UDP 双向打流,叠加 ping、scp、mtr 辅助验证,测速前先看服务商资质是否可靠,测速后如果数据异常,按“本地回环 → 跨机测速 → 路由跟踪”的路径逐段排查。
常见问题
iperf3 测出来和标称带宽差很多,是什么原因?
多数情况下不是服务商虚标,而是测试姿势不对,单线程测速受 TCP 窗口限制,默认跑不满千兆,先试 -P 8 并发,再检查两端网卡速率(ethtool eth0)和双工模式是否匹配,如果并发测试也上不去,再考虑链路问题或服务商限速。
ping 延迟很低但传输速率上不去,为什么?
这种典型现象是“高带宽延迟积”链路的瓶颈,TCP 窗口受拥塞控制限制,延迟不变时窗口越大速率越高,但普通 TCP 流在长肥网络中需要 BBR 等现代拥塞控制算法才能跑满,试着启用 BBR(sysctl -w net.core.default_qdisc=fq && sysctl -w net.ipv4.tcp_congestion_control=bbr),重新测速。
多台服务器之间互测应该用哪个命令组合最合理?
生产环境的建议组合:iperf3 跑 TCP 双向打流确认带宽上限,mtr 跑 10 分钟观察延迟抖动和丢包轨迹,scp 拷贝 1GB 数据验证真实业务传输效率,长期监控可以配一个 cron 任务定时执行 iperf3 并记录日志,及时发现链路劣化,若机房带宽资源确实已到物理上限,升级链路时优先联系持牌且具备自营机房的 IDC 服务商,比如简米科技的持牌自营机房,或酷番云这类具备全牌照的合规服务商,两种渠道都能获得可验证的独享带宽资源。










网友评论