speedtest-cli:一行命令测速,VPS到手先跑这个
没第二台机器对打,speedtest-cli是最省事的测速方式。小够讲安装、指定节点、多节点对比,以及为什么同一台机器每次测出来不一样。
我是小够。上篇说了iperf3最准,但它要两台机器。手头只有一台VPS时,speedtest-cli是最省事的选择:一行命令,测速结果就出来了。但"省事"不等于"随便",用法不对,数字看看就好。
安装与基本用法
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
sudo apt install speedtest
这是Ookla官方源的版本(测速网站Speedtest.net的官方命令行工具)。装好后直接跑:
speedtest
它会自动选延迟最低的节点,测出ping、下载、上传。VPS到手第一件事就是跑一遍,截图存档当基线。
进阶:指定节点,多点对比
自动选节点有个问题:它选的是"对这台VPS最好"的节点,数字天然好看。想看清真相,手动指定几个节点:
speedtest -L
列出附近节点,每个节点有个ID。然后指定测:
speedtest -s 节点ID
小够的习惯是固定测三个:一个同机房/同国家的、一个国内的(如果VPS在海外,选国内节点看回国速度)、一个欧洲的。三个数字放一起,VPS的网络画像就出来了。只看自动选的那个最高分,等于只看美颜照。
为什么每次测出来不一样
同一台机器,上午测800Mbps,晚上测200Mbps,新手容易慌:是不是商家限速了?先别急,大概率是这几个原因:
- 时段:国际线路晚高峰拥堵是常态,同一个节点晚上掉一半很常见。对比一定要同时段比。
- 节点负载:测速节点本身是共享的,高峰期节点自己忙不过来,数字就低。换个节点再测一次。
- 单线程限制:speedtest-cli默认多线程,相对接近上限;但有些节点的单线程策略不同。想看单连接体验,加
--single跑一次。
所以正确姿势是:固定节点、固定时段、测三次取中位数。随手测一次就下结论,误判率极高。
它的局限
speedtest-cli测的是"VPS到测速节点"的速度,不是"VPS到你家"的速度,更不是"VPS到你用户"的速度。建站的人最该测的是目标用户方向:如果访客主要在国内,海外VPS测个本地800Mbps没有意义,测到国内节点的数字才有参考价值。
另外,测速流量有些商家会"特殊照顾"(QoS白名单),speedtest跑满不代表日常应用也跑满。这就是为什么小够一直强调:测速+实际体验+口碑,三者结合看。
定时测速:让数字变成曲线
手动测一次是抽查,定时测是体检。写个cron,每天固定三个时段跑,结果记到文件:
# 每天 8:00、14:00、21:00 各测一次
0 8,14,21 * * * /usr/bin/speedtest --server-id=你的节点ID --format=json >> /root/speedlog.json
--format=json输出结构化数据,方便后面分析。一周后,你就有21个数据点:晚高峰掉不掉、周末和工作日有没有差,一目了然。想更直观,导进表格画个折线图,拿去问客服比空口说"我觉得慢了"有力十倍。
注意日志别无限涨,加个logrotate或者每月手动清一次,1G小盘经不起天天写日志。
一句话总结
speedtest-cli是到手必跑的基线工具,但要手动指定节点、固定时段测三次。数字是参考,不是判决。下一篇讲抖动(jitter)——延迟不高但游戏还卡、语音还断,元凶往往是它。