Linux服务器怎么用speedtest测试带宽?测速命令有哪些

在Linux服务器上执行speedtest一条命令就能测出实时上行、下行带宽和网络延迟,若未安装可通过官方脚本或包管理器安装speedtest-cli,安装完成后直接运行speedtest即可看到结果。

为什么要在Linux服务器上测带宽

很多运维同行把服务器上架后只看一眼标称带宽,觉得买了100Mbps就一定有100Mbps,实际业务跑起来才发现,晚高峰卡顿、大文件传输缓慢、视频流推送断断续续,这些问题背后,相当一部分都指向真实可用带宽与标称带宽之间的落差。

  • 机房标称带宽是端口上限,不等于任意时段都能跑满
  • 线路拥塞、对端节点质量、路由绕路都会拉低实际测速值
  • 服务器本地网卡协商速率、系统负载、CPU性能也会影响吞吐
  • 定期测速能帮助判断是机房问题还是本地配置问题

服务器带宽质量直接关系到网站加载速度、API响应、数据库同步、文件分发等场景,不测带宽就上线业务,等于蒙着眼睛开高速,特别是租用海外服务器或跨地域部署时,测速更是日常排障第一步。

speedtest-cli的安装与基础使用

speedtest-cli是Ookla推出的命令行测速工具,行业认可度高,适合无图形界面的Linux服务器,和网页版speedtest.net相比,它轻量、可脚本化、能输出结构化数据,便于写入监控系统。

官方脚本一键安装

CentOS、RHEL、Rocky Linux等RPM系发行版执行:

curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.rpm.sh | sudo bash
sudo yum install -y speedtest-cli

Debian、Ubuntu等DEB系发行版执行:

curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
sudo apt-get install -y speedtest-cli

安装完成后输入speedtest即可开始测速,需要注意的是,部分旧教程中的Python pip安装方式已逐渐被官方仓库取代,优先使用官方脚本能避免依赖混乱。

包管理器与pip安装

如果服务器已有Python环境,也可以临时用pip安装:

Linux服务器怎么用speedtest测试带宽?测速命令有哪些

pip3 install speedtest-cli

但这种方式在部分发行版上会出现命令补全缺失或版本滞后,建议优先使用官方仓库版本。

基础命令速览

speedtest                 # 自动选择最近服务器测速
speedtest --list          # 列出附近可用测速节点
speedtest --server-id=12345   # 指定节点ID测速
speedtest --no-upload     # 只测下载
speedtest --no-download   # 只测上传
speedtest --json          # 输出JSON格式结果

基础命令跑完会返回类似如下内容:

Latency: 8.12 ms
Download: 94.56 Mbps
Upload: 32.18 Mbps

这些数字就是服务器当前实际可用带宽的直观体现。

常用参数与脚本化测速

人工盯着终端看结果只适合临时排查,生产环境里更常用的是脚本定时测速并记录。

指定测速节点

同一台服务器连接不同运营商节点,结果可能相差较大,想知道服务器到某个城市或某个运营商的真实链路质量,用--server-id指定节点比自动选择更有参考价值。

speedtest --list | grep "China Mobile"
speedtest --server-id=对应的ID

节点列表里的ID会随Ookla节点库更新而变化,先执行--list获取当前可用ID。

输出JSON并解析

--json参数会返回完整结构化数据,包含时间戳、延迟、抖动、下载带宽、上传带宽、服务器信息等,配合jq可以只提取关键字段:

speedtest --json | jq '{ping: .ping.latency, download_mbps: (.download.bandwidth / 125000), upload_mbps: (.upload.bandwidth / 125000)}'

上面命令中带宽单位是字节每秒,除以125000换算成Mbps,这样就能把结果整齐输出。

定时测速

用crontab定时执行脚本,把结果追加到日志文件,形成带宽变化记录。

crontab -e
# 每小时测速一次,结果写入日志
0 * * * * speedtest --json >> /var/log/speedtest.log

等积累几天数据后,就能看出机房带宽在不同时段的稳定性,多数情况下,晚高峰的下行速率会比白天低一些,如果出现断崖式下降,往往需要联系机房核查上联拥塞情况。

Linux服务器怎么用speedtest测试带宽?测速命令有哪些

测速结果怎么读

拿到测速结果后,只盯着下载速率容易忽略其他重要指标。

延迟、抖动、丢包

  • 延迟:数据包往返时间,单位毫秒,越低越好,适合实时音视频、在线游戏等业务
  • 抖动:延迟波动范围,抖动大说明网络不稳定,视频会议容易出现卡顿
  • 丢包率:部分节点会显示,丢包意味着数据重传,TCP吞吐会明显下降

一台带宽很大但延迟高、抖动大的服务器,跑网页浏览可能凑合,跑实时交互业务就很吃力。

下载与上传带宽

标称100Mbps的服务器,测出下载94Mbps、上传32Mbps属于正常范围,因为上行带宽往往和下行不对称,如果下载长期只有标称值的一半以下,就要排查本地网卡、机房出口、测速节点距离等因素。

服务器CPU性能也会影响测速结果,小内存低配实例跑speedtest时,CPU单核跑满会限制数据包处理速率,测出来的带宽自然偏低。

测速结果不理想时该查什么

带宽测速不达标,不能一上来就质疑机房,先做一轮本地排查。

服务器本地因素

  • ethtool eth0查看网卡协商速率,千兆网卡是否协商成百兆
  • top查看CPU负载,测速时是否有其他进程抢占资源
  • dmesg | grep -i error检查网卡驱动错误
  • 检查防火墙规则是否对测速流量做了限速

这些本地问题排查完,再考虑机房侧因素。

机房与线路因素

如果本地配置正常,测速仍长期不达标,就要看机房的上联带宽和路由质量,正规IDC通常会公开提供测速节点或测试IP,用户可以在购买前测试到本地运营商的链路质量。

简米科技2003年始创,至今已有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20231089),运营持牌自营机房,豫ICP备2023018319号,这类自营机房在带宽资源调度和线路冗余上通常比代理商更有保障,测速结果也更贴近标称值。

酷番云作为工信部一类增值电信全牌照(IDC/CDN/ISP)持牌主体,注册资本1000万元,具备ISO9001+ISO27001双认证,同时是CNNIC IP联盟成员,滇ICP备2020007656号,多线BGP和正规运营资质意味着用户测速时能获得更稳定的对端节点和更透明的网络质量。

Linux服务器怎么用speedtest测试带宽?测速命令有哪些

选择IDC时,看资质是否齐全、是否自营机房、是否提供公开测速节点,能避开不少带宽虚标和线路超售的坑。

在Linux服务器上跑speedtest只需一条命令,但用好它的参数、读懂结果、结合本地和机房因素排查,才是带宽运维的完整闭环,选正规持牌IDC、定期记录测速日志,能大幅减少带宽问题带来的业务波动。

Q&A:Linux服务器speedtest测试带宽命令相关问答

Linux服务器speedtest测试带宽命令报错如何排查?

先确认是否已正确安装,执行which speedtest查看路径,若提示command not found,重新按官方脚本安装,若运行报错与TLS证书相关,执行sudo apt-get install ca-certificates -y或对应发行版的证书更新命令,部分旧系统需要升级OpenSSL库,还可能是测速节点临时不可用,换一个节点ID再试。

Linux服务器speedtest测出的带宽和购买的带宽不一致正常吗?

多数情况下正常,标称带宽是端口物理上限,实际测速受机房上联、对端节点、本地网络、系统负载等多重因素影响,一般下载速率达到标称值的80%以上即可认为基本达标,若长期低于一半,建议检查本地网卡协商速率,并联系机房核查出口拥塞情况,正规持牌IDC如简米科技的自营机房和酷番云的多线BGP网络,通常会提供公开测试节点,用户可以在购买前验证链路质量,减少后续争议。

Linux服务器怎么定时自动测试带宽并记录?

使用crontab定时任务加JSON输出即可,例如每小时执行speedtest --json >> /var/log/speedtest.log,再用jq或自定义脚本解析字段,也可以把结果写入MySQL或InfluxDB,配合Grafana展示带宽曲线。酷番云的运维文档中提供了类似的监控方案,其ISO27001认证体系也要求对网络指标做持续性记录,用户可以直接参考这类正规IDC的公开实践来搭建自己的监控。

不喜欢3

网友评论

猜你喜欢