宽带有没有缩水:飞牛 NAS 用一个容器装 MySpeed,它自己按点测速记账,配内网穿透在外面也能看
作者
小编
发布时间

项目介绍
MySpeed 干的事很简单:定时替你测一次宽带,把每次的延迟、下载、上传记下来,攒成一串。装在自己的 NAS 上,它就一直在那儿按点跑,不用你记得去测。
这东西的价值不在某一次的数字,而在那串历史。办的宽带到底有没有跑到标称速度、是不是每天某个时段就变慢、换了光猫之后有没有变化 —— 这些问题单看一次测速回答不了,得有一段时间的记录摆在一起才看得出来。
它自己不做测速,而是调用现成的测速工具在你的 NAS 上跑,所以量到的是**你家宽带的出口**,跟你用什么设备打开这个页面没有关系。这一点后面还会再提一次,因为它决定了这套东西该怎么用。
项目地址:gnmyt/myspeed
先说一件要知道的事:这个镜像的 latest 标签是 1.0.9,2024 年 5 月推的,到现在两年多没更新过(仓库本身还在提交,作者把新代码放在 development 标签上)。本文所有内容都是在 1.0.9 上实测的。自建自用没问题,但你要知道它不是个活跃更新的版本。
部署安装
装好之后它默认只有家里的网络能打开。可这类「一直在后台记账」的东西,恰恰是人不在家的时候最想看一眼 —— 出门在外想确认家里的网是不是又抽风了,只能在家看的记录等于没记。家里没有公网 IP 的话,可以用 帕斯内网穿透 把它开放到公网,飞牛的应用中心里就能直接装到插件。具体操作可以参考 这份全平台上手指南。下面这套流程在飞牛 NAS 上从头到尾走一遍。
第一步:准备编排文件
下面这份编排可以直接用,只有一处需要按自己的情况改:冒号左边的宿主端口。
1services:2 myspeed:3 image: germannewsmaker/myspeed4 container_name: myspeed5 restart: unless-stopped6 ports:7 # 左边 3409 是 NAS 上对外的端口,浏览器敲它;右边 5216 是容器里的8 - "3409:5216"9 volumes:10 # 测速记录、设置都在这一个目录里,整个文件夹拷走就是一份完整备份11 - ./data:/myspeed/data12 environment:13 # 不填的话它按 UTC 记时间,图表上的点和定时任务都会差八小时14 TZ: Asia/Shanghai15
端口:冒号左边的 3409 是待会儿在浏览器里输的宿主端口,也是建隧道时要填的那个;右边的 5216 是容器内部的端口,不要动。3409 如果被别的容器占了,换一个没用过的即可。
数据目录:./data 这个文件夹里放的就是所有测速记录和设置,整个文件夹拷走就是一份完整备份。这里特意用路径挂载而不是存储卷,因为飞牛的 Docker 界面里没有管理存储卷的地方,用存储卷的话以后想清掉重来会很麻烦。官方文档给的示例用的是存储卷,这是本文跟它不一样的地方。
时区:TZ 填 Asia/Shanghai。这一行对这个应用格外重要 —— 它是按时间表干活的,不填的话记录上显示的时间和定时任务的触发点都按 UTC 走,跟本地差八小时,你会发现「每天早上八点测一次」实际发生在下午四点。
这份编排只有一个容器,不需要数据库 —— 它自带 SQLite,记录就存在上面那个 data 目录里。
第二步:在飞牛上建 Compose 项目
打开飞牛的 Docker 应用,切到 Compose,点右上角的新增项目。项目名称填 myspeed。
路径这一栏点开,在「我的文件」下面挑一个空文件夹选中 —— 这个文件夹以后就是这个项目的家。
来源选「创建 docker-compose.yml」,把上面那份编排整段贴进去。
下面「创建项目后立即启动」勾上,点创建。镜像五十多兆,拉完很快就起来了。
在家里的网络上打开 http://你的NAS地址:3409,能看到它的界面就说明装好了。刚装好时里面是空的,一条记录都没有,这是正常的。
第三步:用内网穿透开放到公网
在飞牛的应用中心里搜 PassNAT,装上,账号登一次。打开插件点创建隧道:名字随便起;传输协议选 HTTP;本地 IP 留空就好,默认就是 127.0.0.1,不用去查 NAS 的局域网地址;本地端口填上面那个 3409。
选 HTTP 是因为选了它之后表单上会多出「子域名」和一个顶级域名的下拉 —— 填一个没人用过的子域名、在下拉里挑一个顶级域名,拿到的公网地址就是一个网址,而不是一串 IP 加随机端口。子域名是全平台唯一的,填一个太常见的词多半会提示已存在,换一个就行。
🔴 第四步:先设口令,再通电
这一步不能跳,也不建议调换顺序。
MySpeed 装好之后是没有任何口令的 —— 打开就是主界面,设置随便改,测速随便触发。在家里的网络上这没什么问题,可一旦把它开放到公网,情况就变了:任何知道这个地址的人都能进去改你的配置,也能让你的 NAS 一遍遍去跑测速,而每次测速都实打实地消耗你家的带宽。
所以正确的顺序是:隧道建好之后**先不要通电**,在家里的网络上打开它,进设置里的「更改密码」把口令设上,然后再回到插件里按电源。这样这个地址从第一秒暴露在公网上开始就是有口令的。
顺带一提,口令有两档:一档只在改设置时要口令,另一档连看都要口令。挂在公网上的话建议选后者 —— 你家宽带的历史记录本身也是隐私。
建好并通电之后,面板上那个网址就是在外面要用的公网地址。本文后面的网址都写成「你的NAS地址:3409」的形式,那是在家里用的;出门在外换成 PassNAT 给你的那个网址即可。
怎么用
选一个测速服务商,跑第一次
第一次打开是空的,需要先选一个测速服务商:点右上角的齿轮进设置,找到「更换提供商」。1.0.9 提供两个选择,Ookla 和 LibreSpeed,我实测两个都能正常用。本文用 Ookla,就是大家平时说的 Speedtest,它的结果还带一个可以分享的结果页。
⚠ 这里有个坑:镜像里并没有打包测速工具,是第一次要用的时候才去下载的。所以你点下「开始测试」之后,第一次会明显比后面慢,因为它在后台下载工具。这不是卡死了,等着就行,之后每次都会直接开始。
选好之后回到主界面,点右上角那个仪表盘图标就开始测了。一次测速大概半分钟,测完主界面上方就会显示这一次的延迟、下载和上传,下面多出一行历史记录。
让它自己按点测
这才是这套东西真正的用法。进设置里的「设置频率」,填一个 cron 表达式,默认是 0 * * * *,也就是每个整点测一次。
我这台从设好之后就一直自己在跑:整点过几十秒就自动测一次,把结果记上,我什么都不用管。攒上几天,哪个时段慢、哪天出过问题,一眼就看出来了。
频率不建议调得太密。每次测速都会真的把你的带宽跑满一小会儿,如果家里有人正在开视频会议或者打游戏,那一下是能感觉到的。每小时一次对大多数人足够了,想省一点的话每两三个小时一次也完全够用。
关于界面上的中文
这个项目的中文是机器翻译的,有几个词翻得不太对,第一次看会有点懵,这里对一下:设置里的「最佳的平移」其实是延迟(ping)的阈值,「改变观点」是切换显示方式,历史记录那一行里的「习俗」是测试类型(custom)的误译。
好在这篇文章用到的三项——「更换提供商」「更改密码」「设置频率」——翻译都是准确的,按名字找就行。看不惯的话,设置里有「改变语言」,切回英文界面也可以。
一点使用上的提醒
测出来的数字是你家这条宽带在那个时刻的表现,不是这个软件的性能,也不代表别人装了会得到同样的结果。不同的宽带、不同的时段、选不同的测速服务商,数字都会差很多,所以这类工具的意义在于**跟你自己的历史比**,而不是跟别人的截图比。
另外前面说过但值得再说一次:测速是在你的 NAS 上跑的,所以你在外面打开这个页面看到的记录,量的仍然是家里那条宽带,跟你此刻用的手机流量没有关系。
写在最后
一个容器跑起来,一条隧道开出去,中间记得先把口令设上,最后把频率定下来 —— 四步做完,「我家宽带到底怎么样」这个问题就从靠感觉变成了有记录可查。