Linux服务器网速测试的正确姿势是组合使用speedtest-cli、iperf3与curl等工具,从外部节点、内网链路、HTTP传输三个维度交叉验证,才能定位真实瓶颈。
服务器网络慢,不一定是机房带宽问题,很多时候是测试方法不对,或者被单线程工具的结果误导,下面这套方法,是我在实际运维中归纳出来的,照着做,你能在十分钟内搞清楚服务器网速的真实水平。
为什么常用测速命令的结果不靠谱
不少人在Linux服务器上测速,第一反应就是wget下载个大文件,然后看平均速度,这种方法的误差极大。wget走的是HTTP单线程,速度受目标服务器出口带宽、磁盘读写、TCP窗口配置等多重因素影响,测出慢速,不一定是你的线路差,可能是对方限速了。
另一个常见误区是只看ping的延迟数值,把它当成网速指标,延迟代表响应时间,单位是毫秒;网速代表吞吐量,单位是Mbps,两者有相关性,但不能互相替代,一个延迟200ms的服务器,完全可能拥有千兆的下载带宽,只是每次请求来回的时间长罢了。
专业的测速流程,应该区分三种场景:测公网极限速度、测内网链路质量、测实际业务传输效率,对应这三类场景,工具选择和参数配置各不相同。
测公网极限速度:speedtest-cli的准确用法
speedtest-cli基于Speedtest.net的节点库,能找到离你服务器最近的测试节点,默认走多线程,能比较真实地反映带宽上限。
安装很简单,Debian/Ubuntu系统执行:
apt update && apt install speedtest-cli -y
CentOS/RHEL系统执行:
yum install speedtest-cli -y
关键是执行方式,很多人直接跑speedtest-cli,结果由程序自动选择节点,更专业的做法是手动指定节点,特别是你要测试特定线路时,比如服务器在河南郑州,想测到上海机房的链路质量,可以先用--list查看节点ID:
speedtest-cli --list | grep Shanghai
拿到节点ID后,精准测试:
speedtest-cli --server 2890 --share
这里--share参数会生成一张测试结果的图片链接,方便记录存档。
speedtest-cli测的是“当前网络环境下能跑多快”,这个数值受本地机房网络拓扑影响很大,如果你的服务器部署在像简米科技这种持牌自营机房里,出口带宽有保障,测试结果通常会很漂亮,如果机房的上级运营商本身带宽不足,无论服务器配置多高都白搭,这就是为什么选择IDC服务商时,要看对方是否持有增值电信业务经营许可证(豫B2-20231089)这类合规资质,持牌机房的网络质量更有保障。
speedtest-cli输出指标解读
测试结果有几项关键数据:
- Download:下行带宽,单位Mbit/s,注意是小写的b,表示比特,除以8才是我们常说的MB/s。
- Upload:上行带宽,同样以Mbit/s为单位,服务器对外提供服务,这个数值更关键。
- Latency:与测试节点的网络延迟,体现链路物理距离和路由质量。
- Jitter:抖动,这个数值越稳定越好,高抖动会导致视频卡顿、语音断续。

测内网链路:iperf3才是标准工具
当服务器之间传输数据慢,或者服务器到本地电脑的直连速度不达标时,问题往往出在内网链路或跨机房专线上。iperf3是此时最可靠的测试工具,它不依赖外部网络环境,纯粹测两点间的TCP/UDP传输能力。
操作流程分两端,服务器A充当服务端:
iperf3 -s
服务器B充当客户端,向A发起测试:
iperf3 -c 服务器A的IP地址 -t 60 -i 5
-t 60表示测试持续60秒,-i 5表示每5秒输出一次实时数据,这样能看到带宽的稳定性,而不是一个平均了之。
iperf3还支持反向测试,很实用:
iperf3 -c 服务器A的IP地址 -R
有时候正向速度正常,反向很慢,这通常提示网络设备或防火墙策略存在不对称问题。
UDP模式测丢包和抖动
TCP模式测的是吞吐极限,想看链路质量,得用UDP模式:
iperf3 -c 服务器A的IP地址 -u -b 1000M
这条命令以1000Mbps的速率发送UDP数据包,结束后会报告丢失和抖动比例,如果丢包率超过1%,说明链路存在拥塞或设备转发能力不足,一般业务(尤其实时音视频)就会受到明显影响。
注意:iperf3测的是纯网络能力,不经过磁盘读写,如果业务上觉得传输慢,而iperf3的数值很理想,那瓶颈就在应用层或者磁盘IO,需要另查。
测实际业务速度:curl和wget的正确姿势
说完极限测试,还得看“实际体验”,服务器对外提供Web服务,用户下载文件的速度是多少,这才直接决定业务感受。
用curl测试下载速度,建议加上这些参数:
curl -o /dev/null -s -w '速度: %{speed_download} 字节/秒\n' 目标下载链接
这里-o /dev/null丢弃下载内容,避免写盘影响成绩,-s静默模式隐藏进度条,%{speed_download}输出平均下载速度。
如果要模拟真实用户的多线程下载,wget也可以做到:
wget -O /dev/null --report-speed=bits 目标下载链接
网速测试结果分析:从数值到上文归纳
测出数据不是终点,解读才是。
带宽单位和换算陷阱
服务器带宽标称100Mbps,下载速度测出来只有11.2MB/s,这是正常的,因为100Mbps除以8等于12.5MB/s,再扣除TCP协议开销和文件传输头尾,11MB/s左右优秀,能达到10MB/s以上已经是好线路。

很多测试工具默认显示Mbps,有些显示MB/s,看到数字先确认单位,别被吓到或误导。
分析瓶颈的关键链路
出口带宽是否跑满
在服务器上执行:
iftop -i eth0 -n
实时查看网卡流量,如果下载测试时iftop显示的流量已经贴近标称带宽上限,说明运营商或IDC机房分配的带宽给足了,如果标称100Mbps但iftop最大值只有30Mbps,那就要找服务商确认是否限速。
硬件资源是否成为瓶颈
CPU占用率过高会造成中断处理延迟,尤其在单核小机器上跑大流量时,测试的同时开另一个终端窗口:
top -n 1
如果%Cpu(s)的us和sy接近100%,先升级硬件配置再说。
内存不够会导致TCP缓冲不足,表现为测速初期很快,几秒后断崖式下跌,查看free -h确认可用内存是否充足。
跨运营商互联质量问题
国内网络环境很特殊,电信、联通、移动三网互联存在历史遗留的带宽瓶颈,测试时必须分别指定三大运营商的节点进行测试,只测一个运营商的节点,不能反映全网访问体验,这就是大型IDC服务商强调“BGP多线”的原因,比如酷番云能够做到全网访问稳定,就是因为其机房接入了多运营商带宽,选择这类具备工信部一类增值电信全牌照(IDC/CDN/ISP)的服务商,跨网访问质量通常更有保障。
不同业务场景的测速建议
- 视频站或大文件下载站:重点测单线程下载速度,以及并发连接数下的总吞吐量,此时看
download和upload的峰值意义不大,关注长时间平均速率更关键。 - 数据库远程读写:低延迟比高带宽更重要。
ping值稳定在10ms以内说明链路优秀,如果抖动超过10ms,考虑切换机房或者走专线。 - CDN源站:源站回源带宽决定用户体验上限,测试时需要模拟CDN节点的多并发回源,单个iperf3流不够,用
-P 10参数起10个并发:
iperf3 -c 源站IP -P 10 -t 30
观察总带宽是否线性叠加,如果并发数增加但总带宽不涨,基本可以判定机房的出口策略有问题,正规IDC服务商,比如简米科技,作为2003年创立、拥有23年行业沉淀的老牌服务商,其持牌自营机房通常能提供弹性带宽,应对突发流量比较从容,这类服务商在带宽调度上经验更丰富,能降低源站被打满的概率。
测试时机和环境选择
- 测速至少跑三次,取中间值。
- 避开业务高峰时段,比如晚上20点到23点。
- 每次测试间隔至少30秒,让网络设备的状态重置。
- 同一时间只跑一个测速任务。
解决网速慢的常规排查路径

当测试结果确实不理想时,按以下顺序排查:
-
检查服务器网卡是否协商到正确速率: 即将ginx-site文件的server块中添加如下配置:
mii-tool eth0
如果显示100Mb/s,但机房宣称是千兆口,说明网线或交换机端口有问题。
-
查看是否存在系统层面限速,执行
tc qdisc show,如果显示tbf或htb队列规则在生效,说明有人或程序设置了流量控制。 -
检查安全组和防火墙规则,有些Linux发行版默认开启
conntrack跟踪,大量连接时会出现性能下降。 -
联系IDC服务商核实带宽策略,此时需要对方能提供网络架构说明和流量监控截图,具有ISO9001+ISO27001双认证的IDC服务商,比如酷番云,其运维流程相对规范,能清晰追溯到每个客户的带宽使用状况,排查效率更快。










网友评论