一、speedtest-x介绍
1.1 speedtest-x简介
speedtest-x
使用文件数据库来保存来自不同用户的测速结果,方便您查看全国不同地域与运营商的测速效果。
1.2 使用场景
- 家庭用户:家庭用户可以定期运行
speedtest-x
来监测其家庭网络的速度和稳定性。这有助于他们在遇到网络问题时能够及时向ISP报告并要求解决。 - 企业IT部门:企业IT部门利用
speedtest-x
来持续监控办公网络的质量,确保员工的工作效率。数据可以帮助他们识别网络瓶颈或故障时段,从而采取相应的措施。 - 远程工作者:远程工作者可以在不同地点使用
speedtest-x
来比较不同网络连接的性能。这样可以确保他们始终选择最佳的网络环境来进行工作。 - 游戏爱好者:游戏爱好者可以使用
speedtest-x
来测试他们的网络延迟,以选择延迟最低的游戏服务器。低延迟可以提高在线游戏体验,减少因网络问题导致的游戏延迟或卡顿。 - 移动用户: 移动用户可以在不同的城市使用
speedtest-x
来测试他们的移动数据连接速度。这可以帮助他们了解不同地区的网络覆盖情况,尤其是在旅行时选择最优的数据计划。
二、本地环境介绍
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为centos7.6。
hostname | IP地址 | 操作系统版本 | Docker版本 |
---|---|---|---|
jeven01 | 192.168.3.88 | Ubuntu 22.04.1 LTS | 27.1.1 |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.使用Docker部署speedtest-x网站测试工具。
2.3 项目支持平台
- 支持平台: amd64 / arm64三、本地环境检查
3.1 检查Docker服务状态
代码语言:bash复制检查Docker服务是否正常运行,确保Docker正常运行。
root@ubuntu-001:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2024-08-20 15:04:07 UTC; 4s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 21958 (dockerd)
Tasks: 10
Memory: 24.7M
CPU: 231ms
CGroup: /system.slice/docker.service
└─21958 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
3.2 检查Docker版本
代码语言:bash复制检查Docker版本,Docker版本为27.1.1。
root@jeven01:/data/poapoa/paopao-ce# docker -v
Docker version 27.1.1, build 6312585
3.3 检查docker compose 版本
代码语言:bash复制检查Docker compose版本,确保2.0以上版本。
root@jeven01:/data/poapoa/paopao-ce# docker compose version
Docker Compose version v2.19.1
四、拉取镜像
代码语言:bash复制在docker hub拉取speedtest-x镜像,镜像名为badapple9/speedtest-x。
root@jeven01:~# docker pull badapple9/speedtest-x
Using default tag: latest
latest: Pulling from badapple9/speedtest-x
a603fa5e3b41: Pull complete
c428f1a49423: Pull complete
156740b07ef8: Pull complete
fb5a4c8af82f: Pull complete
25f85b498fd5: Pull complete
9b233e420ac7: Pull complete
fe42347c4ecf: Pull complete
d14eb2ed1e17: Pull complete
66d98f73acb6: Pull complete
d2c43c5efbc8: Pull complete
ab590b48ea47: Pull complete
80692ae2d067: Pull complete
05e465aaa99a: Pull complete
edd74f14a35a: Pull complete
22d9d23a8b4b: Pull complete
aaa4af2d1a3d: Pull complete
921a6f18a59a: Pull complete
ff6ac27c9a81: Pull complete
5a3e085ad83d: Pull complete
ba6b60156caa: Pull complete
5abcb389a068: Pull complete
77816eb4ff12: Pull complete
Digest: sha256:0838c1e073cf72251e3abd062759c7b4e92bd69c57cdb188f976e07604a0b150
Status: Downloaded newer image for badapple9/speedtest-x:latest
docker.io/badapple9/speedtest-x:latest
五、部署speedtest-x应用
5.1 创建部署目录
代码语言:bash复制创建部署目录
/data/speedtest-x
mkdir -p /data/speedtest-x && cd /data/speedtest-x/
5.2 使用docker-cli部署(可选)
代码语言:bash复制在终端命令行,我们可以使用docker-cli部署。
docker run -d --name speedtest-x --restart always -p 9001:80 -it badapple9/speedtest-x
- 启动时可选指定变量
-e WEBPORT=80: 容器内使用的端口
-e MAX_LOG_COUNT=100: 最大可保存多少条测速记录
-e IP_SERVICE=ip.sb: 使用的 IP 运营商解析服务(ip.sb 或 ipinfo.io)
-e SAME_IP_MULTI_LOGS=false: 是否允许同一IP记录多条测速结
5.3 编辑docker-compose.yaml
代码语言:bash复制新建及编辑docker-compose.yaml文件,内容如下:
vim docker-compose.yaml
代码语言:yaml复制version: '3.9'
services:
speedtest-x:
image: badapple9/speedtest-x
tty: true
stdin_open: true
ports:
- '9001:80'
restart: always
container_name: speedtest-x
5.4 创建容器
代码语言:bash复制使用docker compose部署speedtest-x项目
root@jeven01:/data/speedtest-x# docker compose up -d
[ ] Running 2/2
✔ Network speedtest-x_default Created 0.1s
✔ Container speedtest-x Started 0.6s
5.5 检查容器状态
代码语言:bash复制检查容器状态,确保容器正常运行。
root@jeven01:/data/speedtest-x# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
speedtest-x badapple9/speedtest-x "docker-php-entrypoi…" speedtest-x 15 seconds ago Up 14 seconds 0.0.0.0:9001->80/tcp, :::9001->80/tcp
5.6 检查容器日志
代码语言:bash复制检查speedtest-x容器运行正常,确保speedtest-x服务正常。
在这里插入代码片
六、访问speedtest-x页面
6.1 访问speedtest-x初始页
访问地址:http://192.168.3.88:9001,将IP替换为自己服务器IP地址,进入到speedtest-x初始页。如果无法访问,则检查服务器防火墙是否设置,云服务器的安全组端口是否放行等。
6.2 开始测速
点击页面的“start”按钮,则开始测试。
七、总结
speedtest-x
是一款实用工具,它通过文件数据库保存不同用户的测速结果,使得用户能够轻松查看全国范围内不同地域和运营商的网络性能。这对于需要了解特定地区或运营商网络质量的人来说非常有用。无论是家庭用户监控自家网络状态,还是企业IT部门需要维护稳定的网络连接,亦或是远程工作者寻找最佳工作地点,speedtest-x
都能提供有价值的信息支持。此外,游戏爱好者也可以利用它来找到延迟最低的游戏服务器,从而获得更佳的游戏体验。