speedtest-cli安装失败主因是Python/pip未安装或未加入PATH,解决方法包括确认版本、pip3用户级安装、用python3 -m speedtest_cli调用;测速不准需指定就近服务器、避开高峰期;脚本调用推荐--simple或--json配合解析;替代方案有免安装执行、iperf3和ping/mtr。

speedtest-cli 装不上或命令找不到
常见原因是没装 Python 或 pip,或者装了但 speedtest-cli 没进 PATH。Ubuntu/Debian 系默认可能没装 Python3-pip,CentOS/RHEL 8+ 默认用 python3-pip,而老系统可能只有 python-pip。
- 先确认 Python 和 pip:运行
python3 --version和pip3 --version,都得有输出 - 装命令行版:用
pip3 install speedtest-cli(别用sudo pip3,优先用户级安装) - 如果提示
command not found: speedtest-cli,试试python3 -m speedtest_cli绕过 PATH 问题 - 某些镜像源(如阿里云、清华)会加速 pip 安装,加
-i https://pypi.tuna.tsinghua.edu.cn/simple/
测速结果不准或超时频繁
不是网速真慢,大概率是默认服务器选得远或不可靠。speedtest-cli 启动时会自动选一个“最优”节点,但这个“最优”只看 DNS 延迟,不看实际带宽能力或路由质量。
- 先用
speedtest-cli --list查本地附近可用服务器,找 ID 靠前、城市名熟悉的(比如上海、北京) - 指定服务器跑:比如
speedtest-cli --server 12345(ID 替换成你挑的) - 避免高峰期测:晚上 8–10 点很多 ISP 会限速,建议上午测两次取平均
- 关掉下载/上传大流量任务,包括系统更新、docker pull、rsync 同步等
脚本里调用 speedtest-cli 获取纯数值
默认输出是人话,不适合丢进监控脚本或写入日志。得用 --simple 或 --json,但要注意字段含义和单位。
-
speedtest-cli --simple输出三行:Ping、Download、Upload,单位分别是 ms、Mbit/s、Mbit/s - 想提取下载速度:用
speedtest-cli --simple | grep "Download" | awk '{print $2}' -
--json更可靠,但输出是单行 JSON,需用jq解析:speedtest-cli --json | jq -r '.download / 1000000'(转成 Mbit/s) - 注意:
--bytes参数会让 download/upload 字段返回字节数,不是比特数,别漏掉 ×8 换算
替代方案:为什么有时不用 speedtest-cli
它依赖公网服务器,企业内网、防火墙严格或出国受限的环境常连不上;另外启动慢、Python 依赖重,CI/容器里也不方便。
- 简单测出口带宽:用
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 - --simple(免装) - 测到特定目标的吞吐:用
iperf3 -c your-server-ip(需服务端配合,更可控) - 纯看延迟和丢包:
ping -c 10 1.1.1.1或mtr -r -c 20 8.8.8.8更轻量、无依赖 - 注意:所有测速工具都受本机磁盘 I/O、CPU 占用影响,尤其是低配 VPS,别在 top 显示 90% CPU 时信结果
事情说清了就结束。真正卡住的往往不是命令怎么敲,而是没意识到测速本身是个“采样行为”——换时间、换服务器、换工具,结果可能差一倍。










