家里宽带到底稳不稳,光看运营商的标称数字没用。晚高峰掉速、打游戏突然跳 ping、某台设备偷偷占满上行——这些只有在你自己的网络里长期记录才能看出来。最近试了一个叫 NetWatch 的小工具,它就干一件事:定时跑测速、测缓冲膨胀(bufferbloat)、顺带把内网设备的局域网速度也画出来,全存本地 SQLite,不依赖任何外部账号。
它没有大厂背书,GitHub 上 star 数还很少,属于个人开发者认真维护的小而美项目。但对家庭网络用户来说,功能刚好卡在痛点上了。
是什么
NetWatch 是一个用 Python(Flask)写的自托管网络性能监控面板。核心能力分两块:
- 外网性能:集成 Ookla 官方测速 CLI,自动下载对应架构的二进制;测下行/上行/空闲延迟/抖动,以及”加载延迟”(上行或下行打满时的延迟)。
- 缓冲膨胀检测:基于 iperf3 在链路满载时测延迟变化——这是判断”为什么一下载东西游戏就卡”的关键指标。
- Homenet 内网监控:内置一个局域网测速服务端,通过 ARP/ping 发现设备,按有线/无线分别统计每台设备的速度历史和到网关的延迟。
数据用 Chart.js 画成时间序列图,支持 24 小时、7 天、30 天和自定义区间,还有全局时间轴滑块能把所有图表对齐到同一窗口。UI 是深色玻璃拟态风格,移动端也能看。

为什么值得折腾
常见的测速是一次性动作:打开网页点一下,看完就忘。网络的毛病往往是偶发且时段相关的——比如每天 20:00-22:00 下行掉 30%、周末上午缓冲膨胀爆表。这些只有把测量变成长期后台任务才能抓到。
NetWatch 的调度器有三种模式:简单(固定间隔 24/7 跑)、按星期(选特定工作日和时间窗)、高级(每天多个时间段)。配置存在服务端,多设备访问同步。配合 CSV 导出,你甚至可以拿去画自己的”宽带健康周报”。
另一块 Homenet 对软路由/NAS 玩家实用:它能列出局域网里所有被发现设备的历史速度,谁在偷偷抢带宽一目了然,而且测量全在本地完成,数据不出门。

怎么部署
官方给了一键脚本和手动两种方式,我走的是手动 venv,更可控。环境要求 Python 3.10+、pip,bufferbloat 测试可选装 iperf3。
git clone https://github.com/c4g7-dev/netwatch.git
cd netwatch
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py
首次运行会自动下载 Ookla 测速二进制,面板起在 http://localhost:8000。要常驻后台,官方提供了 systemd 单元示例:
[Unit]
Description=NetWatch - Network Performance Monitor
After=network.target
[Service]
Type=simple
User=你的用户名
WorkingDirectory=/path/to/netwatch
Environment="PATH=/path/to/netwatch/.venv/bin"
ExecStart=/path/to/netwatch/.venv/bin/python main.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
放好文件后 systemctl daemon-reload && systemctl enable --now netwatch 即可。它支持 x86_64、ARM64(树莓派 4/5、ARM 小主机都行)、甚至 32 位 ARM,架构会自动探测。

有什么坑
- 测速源是 Ookla:结果取决于你到最近测速节点的链路,软路由如果走了代理,测出来的是代理出口速度而不是真实宽带。需要让测速流量走直连,否则数据会失真。
- bufferbloat 依赖公共 iperf3 服务器:默认配置里填的是示例地址,得自己换成靠谱的、离你近的服务器,否则延迟测量没意义。README 里这部分需要手动改 config.yaml。
- Homenet 的内网测速服务端跑在 5201 端口:如果局域网里已经有别的 iperf3 实例或端口冲突,得避开。
- 还是早期项目:版本停在 v1.3.x,作者更新不频繁,issue 响应速度未知。生产用建议锁定当前 commit,别盲目追新。
- 没有内置鉴权:面板默认监听 0.0.0.0:8000,如果暴露到公网等于把你的网络拓扑公开。只在局域网访问,或用反代加一层 basic auth / 放内网穿透后面。

小结
NetWatch 不是企业级监控(那有 Netdata、Prometheus 一整套),它的价值在于极低的部署成本和恰好够用的家庭视角:一个 venv、一个 systemd 服务、一个 SQLite 文件,就能给你家宽带做长达数月的”体检档案”。如果你也好奇自己晚高峰到底掉没掉速,或者想验证 bufferbloat 是不是游戏卡顿的元凶,花十分钟搭一下挺值。
项目地址在 GitHub 搜索 “c4g7-dev/netwatch”,MIT 协议,跨平台。数据全在本地,删库即清,没有后顾之忧。