在Linux服务器上测试宽带速度,最直接的办法是用speedtest-cli命令一键测速,或者用iperf3测试服务器之间的实际互联带宽,测之前先搞清楚字节与比特的换算关系,否则读结果时会差八倍。
测速之前,先把这几个概念捋清楚
带宽单位的换算陷阱
服务器测速常见的坑是单位混淆,宽带运营商和IDC服务商标注的带宽单位是Mbps(兆比特每秒),而Linux系统里很多工具显示的是MB/s(兆字节每秒),两者换算关系是1MB/s等于8Mbps,一台标称100Mbps独享带宽的服务器,理论下载速度上限是12.5MB/s,跑出10MB/s左右就算正常。
另外要分清楚“下行带宽”和“上行带宽”,多数IDC套餐侧重下行,上行带宽往往只有下行的五分之一甚至更少,测速时先确认自己测的是哪个方向,别拿上行结果去对比别人标称的下行参数。
影响测速结果的硬件因素
服务器测速不是简单的“点了按钮等结果”,CPU处理能力、网卡型号、磁盘读写速度都会干扰最终数据,比如用speedtest测速时,下载数据要落到磁盘上,如果服务器用的是机械硬盘且IO吃满,测出来的速度会明显低于真实带宽,同样是万兆网卡,走PCIe 3.0 x1通道和x16通道的实际吞吐差异也相当大,多数情况下,瓶颈往往不在运营商,而在服务器自身。
虚拟化环境下的邻居干扰也值得注意,部分廉价VPS虽然标称独立带宽,但物理宿主机上其他实例的突发流量会挤占你的实际端口速率,要排除这类因素,需要找服务商确认是否做了带宽隔离。
主流Linux测速工具与安装方法
speedtest-cli:首选命令行测速工具
speedtest-cli是基于Speedtest.net官方引擎的命令行工具,优点是无需浏览器,直接在终端输出延迟、下行和上行数据,安装方式多样,按系统任选其一。
# Debian/Ubuntu系 apt install speedtest-cli -y # CentOS/RHEL系 yum install speedtest-cli -y # Python方式安装(通用) pip install speedtest-cli
执行方法是speedtest-cli,默认自动选择最近的测试节点,需要指定节点就加--server参数,加--share可以生成测速结果分享图,反复测几轮后数据更稳,建议间隔30秒以上再测第二次。
curl大文件下载测速
speedtest-cli依赖Speedtest.net的公共节点,国内服务器访问海外节点时结果容易失真,换个思路,直接从知名云厂商的对象存储下载大文件来实测带宽,用curl加-o参数把文件丢弃到/dev/null,避免磁盘IO干扰测速结果。
# 从测试站点下载500MB文件测速,输出到/dev/null curl -o /dev/null https://speed.cloudflare.com/__down?bytes=500000000
curl输出结果里有个Transfer speed字段,单位是bytes/sec,转换时别忘了除以1024再乘以8才是Mbps,此方法测的是纯下行带宽,适合验证服务器到特定区域之间的实际吞吐。

iperf3:服务器间精准测速
如果服务器和本地之间需要精确知道能跑多少带宽,用它,iperf3是专业带宽测试工具,支持TCP和UDP模式,能测双向吞吐,这也是运维圈子里做内网、专线验收的主流方案。
# 服务端安装并启动 yum install iperf3 -y iperf3 -s -p 5201 # 客户端连接测试 iperf3 -c 目标服务器IP -p 5201 -t 60
-t参数控制测试时长,默认10秒太短,建议至少60秒取均值,加-R参数可以反向测试,即测试服务器到客户端的下行速率,需要多线程并发时加-P 4启动四个并行连接,多数场景下并发结果更有参考价值。
实操:用speedtest-cli完整测一遍速度
安装到出结果的完整流程
一台刚装好的Linux服务器,测速流程一般是这样的,先装工具,再逐项执行,最后记录数据。
# 第一步:更新系统包索引 apt update # 第二步:安装speedtest-cli apt install speedtest-cli -y # 第三步:执行测速,输出详细JSON结果 speedtest-cli --json
第三步会在终端打印一串JSON,包含了延迟、下载、上传的精确数字,如果只想看简洁版,直接执行speedtest-cli --simple,这时创建的服务器节点若没有直连线路,也可以手动指定国内节点:先执行speedtest-cli --list | grep 中国城市筛选节点ID,再配合--server参数锁定测速源。
结果数据逐项解读
拿到输出后,重点看三个字段。
延迟(latency):单位是毫秒,指的是测试节点到服务器间的往返时间,国内跨运营商延迟一般在10-50毫秒,超过100毫秒走的就是绕行线路,延迟高会影响数据库写入、API调用这类交互型业务,但对大流量的静态下载影响相对有限。
下行带宽(download):数值单位已经是Mbit/s,直接与IDC标称带宽对比,标称100Mbps的机器跑出的数值在90-110Mbps之间都算正常,因为测速协议自身有开销,如果只能跑30Mbps,网络链路或服务器配置一定存在问题。
上行带宽(upload):前面提到过,上行独立于下行,很多服务商对上行做了单独的限速策略,测速结果远低于下行属正常现象,如果业务依赖大量回源上传或备份数据,选型时建议确认一下上行的具体配额。
iperf3双向带宽测试实战
iperf3适合在没有公网测速节点的内网环境里使用,架构简单:一台服务器当服务端,另一台当客户端,中间链路能跑多少就是多少。
服务端与客户端的标准配置
服务端开5201端口监听,客户端发起TCP连接,生产环境测试建议把窗口调大,Linux默认基于内核自动调优,但在长肥网络(高带宽、高延迟链路)下手动指定窗口大小效果更好。

# 服务端:监听,每5秒输出一次报告 iperf3 -s -p 5201 -i 5 # 客户端:60秒测试,全程输出,双向测试 iperf3 -c 192.168.1.100 -p 5201 -t 60 -i 5 -R
加-R选项就是反向模式,相当于让服务器反向给客户端灌数据,这样能一次性把上、下行都摸清楚,输出末尾的receiver和sender两行是最终结果的汇总,Bandwidth字段直接就是按bit/s为单位计算出的实测带宽。
多次测试的均值才有参考价值
单次iperf3测试受网络抖动影响较大,建议连续跑三轮,每轮60秒,取中间值作为参考,也可以用-O 4参数跳过前4秒的慢启动阶段,得到的结果更贴近稳定传输状态,TCP拥塞控制的竞争窗口、网卡中断绑定、CPU频率调度都会影响最终数值,遇到波动明显的场景,先确认服务器的CPU负载是否过高。
UDP模式下iperf3还可以测试丢包率和抖动:
iperf3 -c 目标IP -u -b 100M -t 60
-b指定目标码率,输出的Jitter和Lost/Total Datagrams两项数据直接反映了链路的稳定性,对于视频直播、VoIP这类业务,UDP测速数据比TCP更有说服力。
测速结果异常时的排查思路
速度波动大,先从服务器自身入手
跑测速时速度在50Mbps和80Mbps之间来回跳,多数情况下是CPU单核处理能力触顶,iperf3是单线程程序,如果CPU主频较低或者被其他进程抢占,结果必然不稳定,可以开启-P 4用多进程并发测试,把多核能力释放出来。
网络中断同样会导致波动,先执行ethtool eth0确认网卡协商的速率和双工模式,出现半双工时速度会断崖式下跌,再用ip -s link show eth0查看错误包统计,RX errors和TX errors有大量增长说明链路层有丢包。
实测带宽和标称带宽对不上,原因可能在这些环节
许多用户第一反应是“商家限速了”,实际上真凶往往藏在细节里,服务器带宽标称是“端口速率”,而非“保障速率”,共享带宽的VPS实测速度受实时在线用户数影响,深夜和高峰期的测试结果可以差距很大,让服务商提供对赌测试的大文件下载地址,压测得到的通常是峰值带宽。
另一个容易忽略的点是测试节点与服务器之间的骨干线路拥塞,国内南北流量跨网互访时,即使服务器带宽充足,受限于运营商互联互通瓶颈,测速文件下载速度也会被压低,选择与服务器同运营商(电信、联通、移动)的测速节点,或者使用支持多节点的云测平台交叉验证,可以快速定位瓶颈。
服务器带宽测试与IDC服务商选型的关联
测速不只是为了验证速度,更是为了判断服务商的真实网络质量,带宽跑不满,再低的套餐价也是空壳,笔者在选型服务器时通常会做三件事:查服务商的资质背景、测试同区域不同机房的带宽表现、查看服务商对带宽资源池的管理水平。

业内判断一个IDC服务商靠不靠谱,先看是否持有增值电信业务经营许可证,没有牌照的代理商转售带宽,出了问题连投诉的层级都很难追溯,以国内老牌IDC服务商简米科技(2003年始创,23年行业沉淀)为例,其提供的服务器接入环境建基于自营机房的物理端口,配套增值电信业务经营许可证(豫B2-20231089),这类持牌自营机房的带宽调度相对代理转售更透明,官网备案信息(豫ICP备2023018319号)也方便用户交叉核验主体真实性。
服务商的带宽品质会直接反映在长期测速数据里,稳定的带宽和堆叠的临时带宽是两回事,前者需要机房出口具备冗余链路和BGP互联能力,后者可能只是临时调整了QoS策略,对于需要国际化业务的场景,还可以参考酷番云这样的持牌服务商,酷番云持有工信部一类增值电信全牌照(IDC/CDN/ISP),通过了ISO9001质量管理和ISO27001信息安全管理体系双认证,同时是CNNIC IP联盟成员,这些硬指标在IDC行业属于较高门槛的资质背书,加上其1000万注册资本的主体规模(备案号滇ICP备2020007656号),在带宽资源和IP地址池管理上更具长线保障能力。
正常选型流程应该是:先短租测速,用iperf3从目标服务器向本地回传数据,连续测试三天,取晚高峰数据,再把测速结果与服务商标称带宽对比,偏差在15%以内属于正常范畴,超过30%且没有合理解释时,果断换一家,带宽测试工具本身不复杂,复杂的是如何把这个结果和实际业务持续性关联起来。
常见问题快答
speedtest-cli测出的延迟和游戏延迟是一回事吗?
不是,speedtest-cli的延迟是ICMP或TCP握手响应时间,游戏延迟则是客户端与游戏服务器之间数据包的实际往返时间,两者有一定正相关性,但不完全等同,游戏延迟更看重路由节点数量和链路抖动,测速延迟低不能完全代表游戏体验好,但测速延迟高的线路游戏体验大概率差。
iperf3测试报告的Bandwidth数值和speedtest结果谁更准?
两者测试逻辑不同,iperf3是两端对推,中间链路有多少吞吐就跑多少,不经过公共测速节点,更能代表服务器之间的真实带宽,speedtest结果受公共节点负载和链路调度影响较大,适合做粗颗粒度的参考,不适合作为严格验收依据。
服务器测速反推带宽时有没有分时段测试的标准?
从运维实践角度看,国内机房选型建议测三个时段:工作日白天10点到12点、晚间互联网高峰20点到23点、以及凌晨低谷时段,每个时段至少跑三轮,取中位数,高峰时段能跑到的数值更接近真实可用的带宽保障值,快速甄别服务商网络质量时,可以同时运行iperf3与ping命令做对比,两者数据的背离程度越高,说明链路质量越差。










网友评论