NetPulse 从你的路由器读取数据并显示在一个屏幕上。轮询是只读的;任何写入操作都是显式的,并有回滚保护。
0 到 100 的评分,浓缩了延迟、丢包、运行时间和温度。旁边是实时 WAN 吞吐量对照你签约的套餐、平均延迟和已连接设备数。
从网桥 FDB 构建的语义地图(可用时加 LLDP)。绘制路由器、交换机、虚拟机管理器、嵌套容器、有线和无线客户端以及 WireGuard 隧道。当推断无法得知某物插在哪里时,可手动把任意设备锚定到确切的路由器和端口。
每个客户端按主机名模式和 OUI 自动分类,附频段、dBm 信号、首次出现时间,以及它所通信的路由器或端口。
所有路由器的设备群总览,包含 CPU、内存、温度、运行时间、已连接客户端和 24 小时负载 sparkline。通过 SNMP 轮询的托管交换机也是一等公民,有自己的流量历史和客户端。
agent 是原生 OpenWrt 软件包(.ipk 和 .apk,从 mips 到 x86/64),带 procd init、UCI 配置和 watchdog。服务器可直接从 UI 安装和更新整个设备群,并原地轮换 token,无需重新安装。
AP 与客户端之间的信号矩阵,漫游事件保留 30 天,以及重新锚定粘滞客户端或将它们踢出某个 AP 以让它们选择更好的 AP 的工具。
每个射频的真实频谱:每张网络画成频率轴上的钟形曲线,DFS 范围带阴影,外加连续的占用条。你的网络,像空气看到的那样。
交换机按端口查看:协商速率、流量、错误、链路状态,以及幽灵端口、flapping 或速率下降等特定提醒。
peer 列表、最近的握手、每个 peer 的传输量,以及在拓扑图上绘制的隧道,每个 peer 用 UCI 配置中的真实名称标注。
DNS 查询统计、拦截比例、热门拦截域名以及哪些客户端在使用该过滤器,与网络其余部分并排呈现。
六个类别,每类可设紧急程度:温度、可用固件、新设备、WireGuard 握手、网络端口和漫游事件。铃铛里有信息流,并有 Web Push 通知。
按路由器和按设备的每日、每周和每月可用性报告。开发中:流量、活动、提醒摘要和导出。
单列布局,带一个随滚动跟随的固定索引:用户与角色、按用户设置的语言、带真实预览的外观、数据阈值、路由器、服务与集成、编排和自动更新。
DEMO_MODE=1 会启动一个包含 67 台设备的完整示例网络,无需真实路由器。适合在安装前测试界面。
luci-app-netpulse 将 agent 状态集成到 OpenWrt Web 界面中:procd、UCI、日志、重启和指向主应用的链接。
如果你没有单独的机器,服务器可以运行在 OpenWrt 路由器本身,带 UCI 配置、TLS pinning 和本地配对。
内置于 /mcp 的 MCP 服务器:你的 AI 助手通过 HTTP 用 API 令牌查询机队状态、设备、告警和拓扑图。基于最近一次轮询的只读工具。
画出你的 19 英寸机架,按 U 高度摆放路由器、交换机和服务器,NetPulse 会根据检测到的拓扑提议布线,包括路由器之间的上行链路。非常早期的预览。
NetPulse 将设备群状态发布到 MQTT broker,Home Assistant 自动发现:无需手动定义,它就会创建设备和实体。一切都在你的局域网内完成。
NetPulse 不是营销产品:它是一把为解决真实问题而打造的个人工具。以下是收到问题最多的决策。
NetPulse 诞生于一个有四台路由器的家庭网络:一台 GL.iNet Flint 2 作为网关,三台二手小米 AX6。OpenWrt 让你能刷写、检查和掌控硬件。没有它,就无法读取喂养这个应用的 FDB、iwinfo 或 iw 事件。
单个静态二进制,禁用 CGO。目标机上不需要 C 工具链,更新通过原子替换完成,用户、会话和时间序列存储在带 WAL 的本地 SQLite 中。modernc.org/sqlite 让它完全静态。
服务器生成自己的 ed25519 密钥对,你在每台路由器上授权公钥。此后轮询只读取:ubus、/proc、iwinfo、bridge fdb、wg show。写入操作(保留 IP、封禁设备、编排服务、刷写固件)始终是显式的、由管理员触发,并以快照和自动回滚来应用。
NetPulse 监控的是网络;它不需要容器来做这件事。一个带简单服务文件、journald 日志和自动重启的沙箱化 systemd 单元更轻量,也更容易在小型 LXC 或 VM 上运维。
界面是使用 Vite 和 Tailwind 的 React SPA,可作为 PWA 安装。后端通过 SSE 每约 5 秒推送实时事件。没有持续轮询,也没有 WebSocket:SSE 是单向的,会自动重连,在家庭代理后面也能良好工作。
我们一开始用 DAWN 做 WiFi steering,因为它是 OpenWrt 社区里最显眼的选项。在真实网络中我们发现,它可能连锁地拒绝认证、意外踢掉客户端,并在 peer-to-peer 模型下留有未修复的 bug。usteer 是 OpenWrt 官方守护进程,功能相当且模型更稳定。向 usteer 的迁移正在进行,并保持相同的漫游可见性。
对范围保持诚实很重要。NetPulse 并不想成为: