用服务器搭建你自己的SpeedTest测速服务器

本文最后更新于:2022年11月4日 下午

经常用Speedtest测速,但实际上你也可以用服务器搭建自己的测速网站。测试的是你上传/下载流文件到测速服务器的速度。注意测速的上限是你服务器的带宽上限。

注意

一定程度上存在被恶意刷流量的风险,在对外分享你的测速页面后,请注意观察服务器流量使用情况,避免流量使用异常。

项目地址

本文介绍的是Speedtest-X的搭建。

  • 用户测速会上传测速记录并保存至网站服务器
  • 不依赖 MySQL,使用文件数据库
  • IP 库改用 ip.sb,运营商记录更为精确

Docker部署

使用uname -m或者arch命令查看你自己服务器的架构。然后在下面2选1。

arm架构

运行 docker run -d -p 9001:80 -it --name speedtest-x stilleshan/speedtest-x

amd架构

运行 docker run -d -p 9001:80 -it --name speedtest-x badapple9/speedtest-x

参数解释

  • -d:以常驻进程模式启动

    9001: 默认容器开放端口,可改为其他端口

启动时可指定的环境变量:

  • -e WEBPORT=80: 容器内使用的端口

  • -e MAX_LOG_COUNT=100: 最大可保存多少条测速记录

  • -e IP_SERVICE=ip.sb: 使用的 IP 运营商解析服务(ip.sbipinfo.io)

  • -e SAME_IP_MULTI_LOGS=false: 是否允许同一IP记录多条测速结果

ipv6支持【不建议】

如果想让 Docker 容器支持 ipv6,可编辑 /etc/docker/daemon.json ,加上以下内容:(如果不存在这个文件则直接创建)

1
2
3
4
5
6
{
"ipv6": true,
"fixed-cidr-v6": "fd00::/80",
"experimental": true,
"ip6tables": true
}

注意,你在使用docker run命令的时候会读取这个文件内容,创建其他容器也会同时支持ipv6,如果创建完容器又删除这段内容,之前创建的docker容器依然会支持ipv6。所以如果不想要的话建议创建完容器就删除。以免其他容器出现错误。

访问页面

访问 {IP}:{端口}/index.html 进行测速。

Nginx反代

如果想要用域名来访问,可以采用Nginx反代的方法。

参考本站另一篇文章:
用Nginx做简单反向代理


用服务器搭建你自己的SpeedTest测速服务器
https://pawswrite.xyz/posts/9854.html
作者
Rainbow
发布于
2022年6月1日
许可协议