用过的工具

  • librespeed/speedtest
    • https://github.com/librespeed/speedtest/blob/master/doc_docker.md
    • 测速服务端,貌似只能网页
    • 搭来玩玩还是不错的
    • 换端口貌似有问题?
    • docker run -e MODE=standalone -p 80:80 -it adolfintel/speedtest
  • iPerf3
    • https://iperf.fr/iperf-download.php
    • 性能不错
    • 无法通过代理测速
  • goperf
    • https://github.com/huzhao37/goperf
    • 性能不如 iPerf3
    • 配置很多
    • 但是好像无法通过代理访问
    • 只能一直测速,无法指定测速总次数
    • 缺少统计
    • 测速时客户端退出,服务端也会退出
  • openspeedtest
    • https://hub.docker.com/r/openspeedtest/latest
    • 只能网页
    • docker run --restart=unless-stopped --name=openspeedtest -d -p 3000:3000 openspeedtest/latest
  • speedtest
    • https://www.speedtest.net/
    • https://www.speedtest.net/zh-Hans/apps/cli
    • 性能不错,节点较多
    • 支持网页和命令行
    • 无法通过代理测速
    • sudo apt-get install curl && curl -s [https://install.speedtest.net/app/cli/install.deb.sh](https://install.speedtest.net/app/cli/install.deb.sh) | sudo bash && sudo apt-get install speedtest
  • speedtest-cli
    • https://github.com/sivel/speedtest-cli
    • sudo apt install speedtest-cli
    • 性能不错
    • 支持代理测速
    • 节点较少,而且存在被ban的可能性 (比如测着测着,这个节点就消失了。。。。
  • Speedtest Custom
    • https://www.ookla.com/speedtest-custom
    • https://www.speedtest.net/mini
    • 经过复杂的注册后,这个其实和 speedtest 是一个东西,只不过能自定义界面。。。
  • mlabbe/speedtest-mini
    • https://hub.docker.com/r/mlabbe/speedtest-mini
    • docker run --restart=unless-stopped --name=speedtest -d -p 80:8080 mlabbe/speedtest-mini
    • 已经废弃了,但是还是能用
    • speedtest-cli --mini [speedtest_mini_addr]
    • 支持命令行
    • 支持代理测速
    • 网页好像不太行,,,(用的 flash,那没事了

获取源文件

  • 因为 SpeedTest Mini 已经废弃了,所以直接从 https://www.speedtest.net/ 下载下来的压缩包好像无法解压。不过可以从 mlabbe/speedtest-mini 的 docker image中提取出来。
  • speedtest_mini.tar.gz

安装主服务

1
2
sudo apt update -y && sudo apt install nginx php-fpm speedtest-cli -y
cd /var/www/html/ && tar -xzvf speedtest_mini.tar.gz .
  • 如果直接访问网页也无法显示的话,检查一下NGINX日志文件和文件权限,必要时可以开启 php 反代
  • 网页基于 Flash,显示 Speedtest.net Mini requires at least version 8 of Flash. Please update your client的话也很正常, 毕竟是废弃5年的项目了…
1
2
3
4
5
6
7
8
9
10
server {
listen 80;
server_name _;
index index index.html index.htm index.php.html index.nginx-debian.html;
root /var/www/html;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
}

测速

  • speedtest-cli --mini http://localhost:80
1
2
3
4
5
6
7
8
❯ speedtest-cli --mini http://localhost:80
Retrieving speedtest.net configuration...
Testing from Oracle Cloud (x.x.x.x)...
Hosted by Speedtest Mini (localhost:80) [0.00 km]: 0.127 ms
Testing download speed................................................................................
Download: 4546.08 Mbit/s
Testing upload speed......................................................................................................
Upload: 3681.71 Mbit/s

总结

  • 这样我们就已经搭建好了一个简单的 SpeedTest Mini 测速节点。可以用来测试内网速度,或者过代理后的速度。