方法一: Speedtest

是不是很熟悉这个东东? 一般电脑上测速都是去这个网站, 手机上下载的也是这个 APP, 其实人家也有命令行版的, 基于 Python, 感感兴趣的去 Github 看看源码: sivel/speedtest-cli

Github 上提供了两种方式, 第一种是安装, 我觉得没有必要, 所以我一般选择第二种仅下载, 在这贴一下命令, 免得我每次都去 Github 找链接

# wget 方式(二选一)
wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
# curl 方式(二选一)
curl -Lo speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
# 添加权限
chmod +x speedtest-cli
# 开始测试
./speedtest-cli

记一下用法, Ctrl+CV来的, 稍稍翻译一下, 虽然能看懂英文吧, 但总觉得别扭

用法: speedtest-cli [-h] [--no-download] [--no-upload] [--single] [--bytes]
                     [--share] [--simple] [--csv]
                     [--csv-delimiter CSV_DELIMITER] [--csv-header] [--json]
                     [--list] [--server SERVER] [--exclude EXCLUDE]
                     [--mini MINI] [--source SOURCE] [--timeout TIMEOUT]
                     [--secure] [--no-pre-allocate] [--version]
可选参数:
  -h, --help            显示帮助信息
  --no-download         不执行下载测试
  --no-upload           不执行上传测试
  --single              只使用单线程代替多线程连接进行测试, 模拟典型文件传输
  --bytes               以 bytes 代替 bits 显示值, 不影响 --share 生成的图
                        像, 也不影响 --json 或者 --csv 的输出
  --share               创建并提供一个测速结果分享图片 URL, 使用 --csv 的时
                        候不显示
  --simple              压缩冗长的输出, 仅显示基本信息
  --csv                 压缩冗长的输出, 只在 CSV 格式中显示基本的信息, 列出
                        的速度单位为 bit/s 并且不受 --bytes 参数影响
  --csv-delimiter CSV_DELIMITER
                        指定单个字符作为 CSV 输出的界定符, 默认 ","
  --csv-header          打印 CSV 头信息
  --json                压制冗长的输出, 只在 JSON 格式中显示基本的信息, 列出
                        的速度单位为 bit/s 并且不受 --bytes 参数影响
  --list                显示一个按距离排序的测速服务器列表
  --server SERVER       对指定一个服务器 ID 进行测试, 可以多次使用
  --exclude EXCLUDE     从选项中排除一个服务器, 可以多次使用
  --mini MINI           Speedtest Mini 服务器的 URL
  --source SOURCE       绑定的源 IP 地址
  --timeout TIMEOUT     以秒为单位的 HTTP 超时时间, 默认 10
  --secure              管理的服务器通信时, 使用 HTTPS 代替 HTTP
  --no-pre-allocate     不预分配上传数据, 默认启用预分配来提升上传性能. 为了
                        支持内存不足的系统, 使用这个选项来避免内存错误
  --version             显示版本号

方法二: Web Download

买了 VPS 用来干啥的? 大部分都是用来建站的嘛, 那服务器至少是装了 web 服务的, 比如小兮使用的是Nginx, 这就很好办了, 用`wget 或者 curl 来下载一个大文件可以进行下载测速, 然后放在站点目录下, 使用 web 服务来下载这个文件, 就可以真实的知道你的电脑访问服务器的速度(对于VPS的小水管, 家用带宽肯定是够满速的)

具体的操作我就不用细说了, 只补充一点, 我们最关心的其实是 VPS 的上传速度, 也就是客户端访问服务器的速度, 去网上找文件我也懒得找, 咋办? 反正只测上传, 我在服务器上造个文件不就完了? dd了解一下

dd if=/dev/zero of=100M.bin bs=1M count=100
参数解释:
if=输入文件
of=输出文件
bs=代表以字节为单位的块大小
count=代表块的个数
所以最终文件大小为 bs * count

这条命令会生成一个100M的100M.bin文件(bs * count = 100M),文件内容为全0(/dev/zero是一个字符设备,它会不断的返回0值字节\0)

上面的命令生成的是一个实实在在的文件存储在磁盘里, 所以速度和你的硬盘读写速度挂钩

假如你想测试一个超大大文件, 但是一般服务器提供的空间又太小, 可以使用下面的命令

dd if=/dev/zero of=100G.bin bs=1M count=0 seek=100000

这条命令创建了一个100G的文件, 但是并不占用磁盘空间, 而且创建的速度和你内存的读写速度挂钩, 原因在于使用了seek参数, 它的作用是跳过输出文件中指定大小的部分(bs * count = 0)

最后使用下载工具下载这个文件就好了, 小兮放在了网站的根目录, 所以下载地址就是https://www.simaek.com/100M.bin

最后修改:2023 年 08 月 02 日
如果觉得我的文章对你有用,请随意赞赏