## 方法一: Speedtest 是不是很熟悉这个东东? 一般电脑上测速都是去这个网站, 手机上下载的也是这个 APP, 其实人家也有命令行版的, 基于 Python, 感感兴趣的去 Github 看看源码: [sivel/speedtest-cli][1] Github 上提供了两种方式, 第一种是安装, 我觉得没有必要, 所以我一般选择第二种仅下载, 在这贴一下命令, 免得我每次都去 Github 找链接 ::aru:tongue:: ``` # 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`来的, 稍稍翻译一下, 虽然能看懂英文吧, 但总觉得别扭 ```text 用法: 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` [1]: https://github.com/sivel/speedtest-cli Loading... ## 方法一: Speedtest 是不是很熟悉这个东东? 一般电脑上测速都是去这个网站, 手机上下载的也是这个 APP, 其实人家也有命令行版的, 基于 Python, 感感兴趣的去 Github 看看源码: [sivel/speedtest-cli][1] Github 上提供了两种方式, 第一种是安装, 我觉得没有必要, 所以我一般选择第二种仅下载, 在这贴一下命令, 免得我每次都去 Github 找链接 <img src="https://www.simaek.com/usr/themes/handsome/assets/img/emotion/aru/tongue.png" class="emotion-aru"> ``` # 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`来的, 稍稍翻译一下, 虽然能看懂英文吧, 但总觉得别扭 ```text 用法: 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` [1]: https://github.com/sivel/speedtest-cli 最后修改:2023 年 08 月 02 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏