方法一: 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