远程访问服务器时页面能打开并不代表传文件也够快。与其凭感觉判断不如在自己的服务器上放一个测速页面从常用电脑打开它看看这条访问链路的实际表现。这次用 Ubuntu 部署 OpenSpeedTest通过星空组网让本机访问。项目只需要一个容器和一份短配置不用编写后端也不用搭建数据库。完成后浏览器里就能看到下载、上传和延迟结果。一、准备两台设备先明确测什么本次实际使用的环境如下设备用途组网地址本机 Mac用浏览器发起测速192.168.188.1Ubuntu 22.04运行测速服务192.168.188.5Ubuntu 已安装 Docker 29.1.3 和 Docker Compose 2.40.3下面直接使用现成环境。尚未安装的读者需要先准备好 Docker 和 Compose 插件。这里的地址都是本次设备获得的虚拟 IP照做时应替换为自己的地址。测速方向是“浏览器所在电脑 ↔ Ubuntu”因此下载表示 Ubuntu 向本机发送数据上传表示本机向 Ubuntu 发送数据。二、登录后台让两端先连起来打开星空组网官网点击“后台管理”进入登录页。已有账号直接登录没有账号则按页面提示完成注册。登录后进入“设备管理 → 成员列表”为两台设备分别准备成员账号。首次使用时点击“添加成员”按提示填写并保存已经有对应成员就继续使用。不同长期在线设备应使用独立成员具体规则可查看设备与成员管理说明。本机安装对应平台的客户端Ubuntu 按Linux 官方说明安装。安装完成后根据终端提示打开客户端控制台在两端分别登录对应成员等待上线。注意官网登录用于管理账号和设备客户端登录才会让当前设备加入网络。两台设备应处于可互访的同一虚拟网络中并在使用期间保持客户端在线。本次复用了已登录的后台和已有成员没有重复创建账号。图中的“两台在线”只是准备完成的信号后面还要真正访问测速服务。进入 Ubuntu 终端核对基础环境docker--versiondockercompose versionip-br-4addr show StarVPN本次网卡输出包含192.168.188.5/24。虚拟网卡显示UNKNOWN不应单独作为故障结论还需要结合客户端状态和实际访问判断。三、创建项目写一份 Compose 配置下面的部署命令在 Ubuntu 的 root 终端执行普通管理员账号可先执行sudo -i。先检查准备使用的端口ss-ltn( sport :18088 )本次检查没有监听记录因此使用 18088。若你的设备已有服务占用该端口应换一个空闲端口并同步修改后面的配置与访问地址。创建独立目录然后写入配置mkdir-p/opt/speedtest-lab-20260919cd/opt/speedtest-lab-20260919catcompose.yamlYAML services: speedtest: image: openspeedtest/latest ports: - 192.168.188.5:18088:3000 environment: SET_SERVER_NAME: Ubuntu-SpeedTest restart: no YAMLdockercompose config--quiet配置校验成功时不会输出内容有错误则先修正缩进或字段再继续启动。这份配置主要看懂三处即可image使用项目官方提供的镜像端口映射把 Ubuntu 组网地址的 18088 转到容器的 HTTP 端口 3000SET_SERVER_NAME设置页面上显示的名称。相关参数来自OpenSpeedTest 官方项目。这里显式填写了组网 IP没有把端口发布到所有宿主机地址。不要随手删掉它改成单独的18088:3000。但地址绑定也不是用户认证能访问该地址的组网成员仍可能使用页面适合在自己的可信设备之间演示。restart: no表示本次演示不自动重启。镜像使用的是可变标签日后重新拉取可能获得不同版本需要长期固定环境时可另外记录并固定镜像摘要。四、启动容器确认页面真的可用仍在刚才的项目目录执行dockercompose pulldockercompose up-ddockercomposepscurl-I--max-time5http://192.168.188.5:18088/拉取镜像的时间取决于服务器网络。启动后应看到服务处于运行状态端口映射包含192.168.188.5:18088-3000/tcpHTTP 检查返回200 OK。回到本机保持星空客户端在线在浏览器地址栏输入http://192.168.188.5:18088/页面出现Ubuntu-SpeedTest说明已打开刚部署的服务。本次还实际检查了下载接口和上传接口下载范围请求返回 206上传测试请求返回 200本机连接的源地址为192.168.188.1。这个演示使用 HTTP未配置网页自身的 HTTPS 或账号登录也不存放业务文件。Docker 发布端口涉及独立的网络转发规则不能仅凭 UFW 已启用就认定访问已受限绑定行为可参考Docker 端口发布说明。五、点击测速读懂本次结果点击页面中的开始按钮等待显示All done。测试时尽量避开大文件下载等占用带宽的任务也不要开启持续压力测试。本次保留了一轮完整测试的原始结果指标本次页面结果阅读方式Download2.8 MbpsUbuntu 向本机传输数据的速率估计Upload11.6 Mbps本机向 Ubuntu 传输数据的速率估计Ping70 ms网页测速工具测得的请求往返延迟Jitter0.4 ms该工具报告的延迟波动指标Mbps 是兆比特每秒不是文件下载常见的 MB/s换算量级可先除以 8。这些数字描述本次浏览器到目标服务器的访问表现不能直接代表家庭宽带套餐速率也不能据此认定使用了 P2P 直连。服务器出口、两端网络、组网转发路径和浏览器都会影响结果。单次上下行差异也不足以确定瓶颈。需要比较时在相近条件下再测几次并记录时间、设备和网络环境比只保留最高数值更有参考价值。六、遇到问题怎么查用完怎么停如果页面打不开先检查两端客户端是否在线、虚拟 IP 是否填写正确再检查容器状态和日志cd/opt/speedtest-lab-20260919dockercomposeps-adockercompose logs--tail50speedtest容器未启动时优先处理日志中的配置或端口错误Ubuntu 本地能打开而本机打不开时再沿组网连通性和防火墙规则排查。不要通过关闭整机防火墙来试错。本次完成截图和验证后停止演示服务保留项目文件cd/opt/speedtest-lab-20260919dockercompose stopdockercomposeps-ass-ltn( sport :18088 )本次停止后的退出码为 137不能称为正常退出已另行确认 18088 无监听且本机无法再连接配置文件仍保留。下次需要测速先确认组网 IP 未变化再在该目录运行docker compose up -d即可。这样从登录、组网到部署和验收一套简单的私人测速流程就能重复使用。