众所周知,稳定快速的网络连接对于各种活动都至关重要,无论是流媒体还是远程办公。然而,网速时好时坏,而且(有时)服务提供商也可能无法始终如一地兑现其承诺的性能。
这就是Speedtest Tracker 的作用所在——它是一款强大的自托管工具(用 PHP 编写),可让您随时监控互联网速度、记录测试结果并识别连接质量的趋势。
该应用程序的工作原理非常简单——您设置时间间隔,Speedtest Tracker 就会使用距离您最近的Ookla Speedtest服务器实时测量您的网速。它会捕获下载和上传速度、ping 值、抖动等数据,记录结果并将其显示在简洁易读的仪表盘上。

在本指南中,我将逐步指导您使用 Docker 安装 Speedtest Tracker,让您无需复杂的配置即可轻松部署和管理。那么,让我们开始吧。
先决条件
在继续安装之前,请确保您的系统上已安装 Docker。如果没有,以下指南将帮助您快速安装它。
只需选择您正在使用的发行版:Ubuntu 24.04、Debian 12、Arch、Alma/Rocky、Fedora、Linux Mint 22、Pop!_OS 22.04或Raspberry Pi OS,然后按照步骤安装 Docker。
另一个重要组件是 Docker Compose。最新版本的 Docker 已通过安装“ docker-compose-plugin ”软件包来包含 Docker Compose。如果您的设置中尚未安装该软件包,请立即安装。
您也可以使用以下两个命令分别获取它。在这种情况下,请记住在运行该工具时键入docker-compose
而不是docker compose
。
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
代码语言: Bash (bash )
需要明确的是,Docker Compose 仅在您已经安装并运行 Docker 的情况下才有效。
如何使用 Docker 安装 Speedtest Tracker
一切准备就绪后,第一步是创建用于放置 Docker Compose 部署文件的项目目录。然后切换到该项目目录;从现在开始,您需要从该位置执行本指南中后面的所有命令。
mkdir speedtest
cd speedtest
代码语言: Bash (bash )
接下来,创建一个“ docker-compose.yml ”文件,就像我们Docker设置的蓝图一样。这个文件将定义服务、卷、端口等,告诉Docker Compose要做什么以及如何设置Speedtest Tracker容器。
nano docker-compose.yml
代码语言: Bash (bash )
services:
speedtest-tracker:
image: lscr.io/linuxserver/speedtest-tracker:latest
restart: unless-stopped
container_name: speedtest
ports:
- 8080:80
environment:
- PUID=1000
- PGID=1000
- APP_KEY=<YOUR-APP-KEY-HERE>
- SPEEDTEST_SCHEDULE="0 * * * *"
- DISPLAY_TIMEZONE=America/New_York
volumes:
- ./speedtest:/config
代码语言: YAML (yaml )
如你所见,Docker 部署非常简单。“ environment ”部分的最后三行是需要关注的关键,我来为你分解一下。
对于“ APP_KEY ”,您需要将“ <YOUR-APP-KEY-HERE> ”替换为 base64 编码的字符串。Speedtest Tracker 使用此密钥来加密和解密数据,例如用户会话和其他敏感信息。要自行生成密钥,只需运行以下命令,并将输出复制为“ APP_KEY ”的值。
echo -n 'base64:'; openssl rand -base64 32;
代码语言: Bash (bash )

该线路的最终版本如下所示:
- APP_KEY=base64:iZEBvPkqmwN3j7oiEsEjxk+fzeRI2VSfNJbpXDhG1sk=
代码语言: YAML (yaml )
下一个设置(可能是最重要的一个)是“ SPEEDTEST_SCHEDULE ”。它控制应用程序自动测试互联网连接速度的频率。它使用与 CRON 守护程序相同的调度语法。
在上面的部署中,我将其设置为每小时运行一次(“ 0 * * * * ”)。当然,您可以根据需要进行调整,例如每半小时运行一次(“ */30 * * * * ”),或者每六小时运行一次(“ 0 */6 * * * ”)。这完全取决于您的偏好。
对于最后一个选项“ DISPLAY_TIMEZONE ”,请将其设置为您的实际时区。这可确保时间戳以您的当地时间显示。如果您对拼写有疑问,请查看此链接以获取可用时区的完整列表。
还有一个值得考虑的实用选项——虽然我没用过——是可以设置一个时间限制,限制记录的网速统计数据的存储时间,超过这个时间就会被删除。所以,如果你只想保留特定天数的数据,比如最近 30 天,你可以在Docker Compose 部署的“ environment ”部分添加以下内容:
- PRUNE_RESULTS_OLDER_THAN=30
代码语言: YAML (yaml )
要查看 Speedtest Tracker 中所有可用选项的完整列表,请在此处查看。
最后,简单说明一下——如您所见,该应用程序在主机的 8080 端口上运行。由于许多容器化应用程序通常使用此端口,因此如果其他程序已使用该端口,则可能会遇到错误。如果发生这种情况,只需更新 Compose 文件中的端口映射,并将其切换到任何可用的端口(例如 8181),即可开始使用。
ports:
- 8181:80
代码语言: CSS (css )
现在,一切就绪,让我们在后台运行 Docker Compose 部署(分离模式):
docker compose up -d
代码语言: Bash (bash )

到目前为止一切顺利。现在,让我们进入最激动人心的部分。打开浏览器,导航至“ http://localhost:8080 ”(如果您从同一主机访问 Speedtest Tracker)或“ http://<server-ip-address>:8080 ”(如果您远程访问)。当然,请将“ <server-ip-address> ”部分替换为您实际的服务器 IP 地址。
需要注意的是,如果由于某种原因出现问题,您可以通过使用这个简单的 Docker 命令检查容器日志来轻松找出问题所在:
docker logs speedtest
代码语言: Bash (bash )
首次访问 FreshRSS 时,输入应用程序的默认用户名和密码(如下所示),然后点击“登录”按钮:
- 用户名:admin@example.com
- 密码:密码

我建议您首先更改默认用户名和密码。具体操作如下:点击 Speedtest Tracker 右上角的头像,然后从出现的菜单中选择“个人资料”。

输入您喜欢的新密码(您的密码必须至少八个字符长),然后单击“保存更改”按钮进行确认。

就这样。等待您设置的时间间隔过去后,第一个测量结果就会出现在仪表盘上。如果您不想等待,可以立即开始测试——点击右上角的“ Speedtest ”按钮,从“ Select Server ”下拉菜单中选择一个服务器,然后点击“ Start ”。

结论
从现在起,您将拥有一个可靠的工具来监控您的网速并密切关注您的 ISP 的服务。当然,Speedtest Tracker 并非唯一的选择。