NetworkOptimizer 是面向 UniFi 网络的自托管监控+优化+安全审计工具,覆盖 Wi-Fi 信道优化、83 项安全审计、自动 SQM 队列管理、ISP 健康评分、客户端速度测试与多站点集中管控,支持 Docker/Windows 简易一键部署。
🎤 引言
用 UniFi 的朋友大概都有同一种感觉:控制器功能强大、界面炫酷,可一旦网络出点问题——客户端掉线、视频会议卡顿、4K 流媒体转圈——你想知道"到底哪里在抽风",UniFi 那块屏幕上的 Insights 就有点不够用了。延迟多少?丢包在 ISP 那一段还是 transit ASN 上?防火墙规则有没有意外互相覆盖?信道是不是该换了?这些都得自己拼凑工具。
NetworkOptimizer 就干这一件事:把 UniFi 网络"测、评、优、审"四件事打包成一个自托管 All-in-One 工具。887 Stars、392k Docker Pulls、2,510 次 Commits,作者一个人在维护,License 是 BSL 1.1——个人非商业用途最多 3 个站点免费、超过要 license key。
⭐ 核心功能
工具的覆盖面相当广,主要可以归成 7 大块。每个模块都从 UniFi Console 拉取数据,再叠加自己的探测/分析,给出 UniFi 自己看不到的视角。
1. Wi-Fi Optimizer & Signal Map
站点健康打分(按 12 个 Tab 拆分),包含 RF 环境分析、客户端统计、漫游追踪、Band Steering、Airtime Fairness。信道推荐引擎会基于信号传播模型、实时 RF 扫描、三角化邻居网络,再叠上历史信道压力(利用率、干扰、TX 重传)算出"全网干扰最低"的信道分配——会避开 mesh 上行约束、DFS 偏好与监管可用性,并且对每次推荐做"改善阈值验证",只有值得换才建议。
Signal Map 是个亮点:把建筑平面图画进去、摆好 AP,就能看到实时 RF 传播热图。支持墙体材质(石膏/混凝土/玻璃),多层楼宇的跨层信号衰减、各 AP 天线模式(从控制器读)、TX 功率/天线模式改动前的效果模拟,未买/未上架的 AP 也可以添加做"虚拟覆盖"预测。
2. Security Auditing(83 项审计)
审计引擎跨 5 大类(共 83 项检查)打 0-100 分。它不是简单确认你有防火墙,而是分析规则的"语义":
- 防火墙规则分析:哪些规则 shadow 哪些规则、哪些 allow 规则反而穿透了你的 deny、IoT VLAN 是否真的被隔离(UniFi 指纹 + MAC OUI + 端口命名习惯三重判断)。
- DNS 安全:DoH 配置校验、检测 DoT/DoQ/HTTP-3 DoH bypass、验证 WAN 接口 DNS 是否跟你配置的一致。
- 端口安全:MAC 限制、端口隔离、闲置端口是否仍启用。
- UPnP 分析:开着的 UPnP、暴露的特权端口、忘掉的静态端口转发。
每个问题给出严重度(critical / recommended / informational)+ 具体修复路径,可以忽略误报("我这个是有意这么配的"),导出 PDF 做归档,分数随时间趋势记录。
3. Adaptive SQM(自动队列管理)
Cable / DSL / 蜂窝党最痛的是 bufferbloat——有人开始下东西、加入视频会议那一瞬间,lag 飙到几百毫秒。SQM 能解决,但带宽阈值靠猜:设高了一刀没切干净,设低了等于自废带宽。
NetworkOptimizer 帮你自动调:
- 双 WAN 独立配置;
- 连接档案为 DOCSIS / 光纤 / 无线 / Starlink / 蜂窝各自预设(每种链路特性不同);
- 定时 Speedtest 根据实测性能动态调整速率;
- 检测到拥塞时自动回退带宽;
- 一键 push 到 UDM/UCG,重启后配置不丢。
4. ISP Health(ISP 综合健康评分)
这一项是该工具的"杀手锏"——把之前累积的 SNMP 设备健康、延迟/丢包探测、WAN 吞吐、Upstream Path Discovery 数据汇成一条"单一诚实的 ISP 评分"。
最聪明的地方在于:评分"技术感知"。同样是 9ms 空闲延迟,在 DOCSIS 上是绿灯,在 GPON 上就是红旗——所以它会根据你在 Upstream Discovery 选定的接入技术(GPON / XGS-PON / DOCSIS / DSL / 固定无线 / 蜂窝 / Starlink …)来锚定阈值。评分三等分:你的 Access Layer(基于 UniFi 里填的套餐做对标)、ISP 自家网络、你的流量穿过的 Transit 网络,每个维度独立显示贡献。
Transit 评分还会逐 ASN 看:延迟稳定性、抖动、丢包、拥塞。看两件 UniFi 永远不会告诉你的事:拥塞事件(傍晚固定时段的链路过载)、路径切换(RTT 出现阶梯型跳变)。一旦检测到 bufferbloat 或丢包过了阈值,会推荐 Smart Queues;如果发现"每天固定时段都堵",则推 Adaptive SQM。多 WAN 支持正在路上(数据已采集,仅主 WAN 在用)。
5. Self-Hosted Network Monitoring(自托管监控)
基于 SNMP + InfluxDB 的全时间序列网络监控,部署在自己机器上。SNMP 拉接口计数器、设备健康(CPU、内存、温度、uptime)、延迟探测、SFP 光功率、WiFi 客户端统计。本地存、可配置保留期,有 Setup Wizard 帮你开 InfluxDB bucket 和 token,不用手改 yaml。想再深一层?自备 Grafana 接进去即可。
Live View 给两张实时拓扑图:
- 3D Map:Three.js 渲染、双向粒子流展示 LAN 全部流量(不只是 WAN-bound,这点和 UniFi Network 不一样)。WASD 摄像机控制,双击任意客户端跳其性能仪表板。
- 2D Map:层次化流图、同一组实时吞吐/设备健康徽章/客户端连接,画布可平移缩放。
两张都支持"历史回放"——往后拖你的监控数据,看任意时间点网络长什么样,调速也支持。
延迟/丢包图表分四类目标(LAN fabric、ISP access、transit、internet services),每类带 filter badge、时间范围预设(15 分钟到 30 天)、亚 15ms 查询响应。设备健康图表把 CPU/内存/温度归到一屏——UniFi 里这些只能在每台设备的 Insights 单看,没法集中巡检。
README 还专门强调了一个细节:CPU 温度读 LM-SENSORS temp-cpu(直接读 SoC die),不是 UniFi Network 那个为风扇控制服务的"钝化板载温度"——后者低几度、滞后于负载。内存也算"真实已用"(剔除 Linux page cache),所以 htop 看到的数字才和 Network Optimizer 一致。
6. Multi-Site Support(多站点集中管控)
如果你手里管着几条线——MSP 一堆客户网、几个办公点、家里那台加上顺手照看的几处——这个功能可以一台 Network Optimizer 全管。每个站点部署一个轻量 agent,通过一条出站 HTTPS 隧道拨号回中心——不用端口转发、CGNAT 后面也工作。
中心仪表板对所有站点统一给出 ISP Health 评分与路径分析、安全审计、Wi-Fi/信道优化、Adaptive SQM、LAN/WAN/客户端测速,agent 在隧道里代理该站的探测、SNMP、UniFi Console、device SSH。每个站点的数据相互隔离,详细安装见 agent guide。
7. WAN Steering / Threat Intelligence / HTTPS / API Key / 告警
- WAN Steering:UniFi 只让你在 Failover 和 Load Balance 之间二选一,Policy-Based Routes 又只能按目标 IP/域名匹配(不能按端口/协议)。WAN Steering 把这个限制解除——主 WAN 默认走延迟敏感流量,把 Steam 下载、OS 更新、Xbox 下载这种大块批量按端口/协议 Load Balance 到备用线路上。源/目的/端口/协议都能匹配,主备切换自愈、零网关性能损耗。
- Threat Intelligence:UniFi Gateway 的 IPS 整天拦威胁,可 UniFi Console 把它们埋在一片扁平事件日志里没上下文。这个模块拉 IPS 事件做实际分析:谁在攻击你、从哪儿来、想要什么。跨参考你的端口转发与实际威胁数据看哪些暴露服务被打得多;攻击序列检测看同一 source IP 是否在按 kill chain 递进(recon → exploitation → post-exploitation)—是的话判定为"真协调活动"而非"随手扫"。CrowdSec CTI 集成加 reputation 评分与 MITRE ATT&CK 分类。
- HTTPS Reverse Proxy:内置 Traefik 反向代理,开 Let's Encrypt 自动证书。Speedtest 强制 HTTP/1.1(HTTP/2 多路复用会污染测速结果),主 app 仍走 HTTP/2。Windows MSI 安装时可作为可选 feature 启用。
- API Key Auth:用 API Key(UniFi Network → Integrations → Create New API Key)连 Console,替代传统用户名密码。Key 静态加密、日志和 UI 永不暴露。对于不想单独建 Local Admin 的站点、或 UniFi Fabrics(已无法创建 Local Admin)的场景特别合适。
- Alerts & Scheduling:定时自动 Speedtest 和安全审计,调度引擎支持多 WAN/LAN 测速可配频率时间窗口、定期审计追踪分数。告警规则盯关键事件:审计分数跌、WAN 速度掉、LAN 速度相对近期基线回退、IPS 攻击链进入 active exploitation、定时任务失败。每条规则有阈值严重度+冷却时间免噪声。投递通道支持 SMTP(STARTTLS)、Discord、Slack、Microsoft Teams、通用 Webhook。低优先级告警可走 digest-only 模式,每天一封摘要而不是每次微波炉干扰 2.4GHz 都 ping 你一遍。
8. Client Performance(每设备分析)
选一台客户端,得到:
- 实时信号监控
- 速度测试历史 + 上下行趋势
- 延迟与抖动图表
- 网络路径可视化(每个 hop 与瓶颈链路)
- 连接时间轴(AP 漫游、断连)
- 走 HTTPS 开手机页面 + GPS 信号热图
Speed / Signal / Connection 三个 Tab 覆盖调试"为什么这台设备又慢又掉"。
📥 安装与使用
两种部署方式:Linux Docker 和 Windows MSI。下面挑 Linux Docker 演示。
准备
需要一台 Linux 主机(Ubuntu/Debian 都行),Docker + Docker Compose 已装好。还需要 UniFi Console 的连接方式——传统用户密码、或者新 API Key 都支持。SNMP 需要在 UniFi 设备上提前配好 community string。
一键 Docker Compose
version: "3.8"
services:
networkoptimizer:
image: ghcr.io/ozark-connect/networkoptimizer:latest
container_name: networkoptimizer
restart: unless-stopped
ports:
- "8443:443" # HTTPS Web UI
- "8080:80" # HTTP(建议前端用 Traefik 终止 HTTPS)
volumes:
- ./data:/app/data # 配置、SQLite 库、缓存
- ./influxdb:/var/lib/influxdb2 # InfluxDB 持久化
environment:
- TZ=Asia/Shanghai
- UNIFI_BASE_URL=https://192.168.1.1
- UNIFI_API_KEY=your_api_key_here # 推荐用 API Key
# 老式用户密码
# - UNIFI_USERNAME=admin
# - UNIFI_PASSWORD=your_password启动:
mkdir -p /opt/networkoptimizer/data /opt/networkoptimizer/influxdb
cd /opt/networkoptimizer
docker compose up -d打开浏览器访问 https://your-host:8443,第一次进入会走 Setup Wizard(InfluxDB bucket + token 自动 provision,不用手改配置文件)。
验证部署
容器起来后,检查几件事:
# 1. 容器跑得正常
docker logs networkoptimizer --tail=50 | grep -i "ready\|listening"
# 2. InfluxDB 健康
curl -s http://localhost:8086/health | jq .
# 3. 客户端设备能看到 UniFi sites
# 进入 Web UI → Settings → UniFi Console → "Test Connection"首次配对 UniFi Console 后,进入 Devices 标签能看到所有接入的 AP/Switch/Gateway。再去 Wi-Fi → Optimizer 跑一次信道分析,几分钟内会出推荐。
升级
cd /opt/networkoptimizer
docker compose pull && docker compose up -d数据在 ./data 和 ./influxdb 两个卷里挂着,升级不会丢。
🎯 适用场景
- MSP / 多站点运维:手上有几条到几十条线,集中看 ISP Health、统一做安全审计,统一推送 Adaptive SQM。
- 自托管/隐私党:不想把网络数据喂给第三方 SaaS?这套 InfluxDB + 自带 Grafana 路线完全本地化。
- SMB / 家庭办公重度 UniFi 用户:83 项安全审计帮你每年合规报告不必从头做;Signal Map 让你在加 AP 之前先看见覆盖。
- bufferbloat 重度患者:游戏党 / 视频会议党,Adaptive SQM 配 ISP Health 的拥塞事件捕捉双管齐下。
- 网络优化发烧友:自托管 OpenSpeedTest 服务 + 第三方 VPS 部署,跨城跨网对比不同 ISP 表现。
🔍 对比/替代方案
UniFi Controller 自带的功能(Insights、Topology、Speed Test)作为"基线",NetworkOptimizer 是在它基础上的"放大镜 + 增强器"。它不是要替代 UniFi Console,而是补全 UniFi 不告诉你的部分:MSS/RTT 是不是 ISP 侧问题、丢包走哪个 ASN、规则是不是真的把你想要隔离的 VLAN 隔开了、bufferbloat 阈值要不要调整。
独立开源工具横向看:
| 工具 | 定位 | 差异点 |
|---|---|---|
| ntopng | 流量分析/协议识别 | 强在 NetFlow/sFlow 深度分析,但无线信道建模、UniFi 集成、Security Audit 这些都不做 |
| Zabbix / Observium | 通用网络监控 | SNMP 监控齐全,但 UniFi 特定 API 不集成、没有 Wi-Fi 优化器 |
| PRTG / SolarWinds | 商业网络监控 | 功能全但价格贵、Vendor Lock;本工具免费、个人许可可达 3 站点 |
| Grafana + Telegraf | 自托管仪表板 | 工具链灵活但需要手写一堆 dashboard;NetworkOptimizer 自带可视化 |
| Pi-hole / AdGuard Home | DNS 层过滤 | 互补关系,搭配 NetworkOptimizer 做 DNS 安全审计更稳 |
对 UniFi 用户来说,NetworkOptimizer 几乎是个"专为这个生态定制"的"瑞士军刀"——其他通用监控做不到它把 RSSI/DFS/Channel 评分跟 UniFi 控制台深度绑在一起的程度。
⚠️ 注意事项
- License 限制(BSL 1.1):个人非商业用途最多 3 个站点免费。商业用途或超过 3 站点需要 license key(联系
[email protected])。激活 Key 会出站一次 HTTPS 到licensing.ozarkconnect.net——严格 egress 规则记得放 443。License 服务器宕机不会禁用你的站点,entitlements 本地缓存校验。 - 需要 UniFi Console 凭据:要么传统 admin 用户密码,要么新 API Key(推荐)。选择用户名密码时建议建专用 Local Admin,不要复用主 Admin。
- 资源占用:自托管 InfluxDB 长期跑内存会逐步涨,64GB 以下的家用主机建议给 2-4GB 内存限制(
mem_limit),并定期 compaction。Grafana 如果接进去记得单独容器跑。 - 防火墙出站规则:agent 出站 HTTPS(443)到中心 Network Optimizer 是必须的,纯内网不通的情况请改用 Site-to-Site VPN 或开一道允许。
- Windows MSI:可选启用 Traefik 作为 HTTPS 反代。如果你已经在前端套了别的反代(Nginx / Caddy),别重复启用以免冲突。
- 多 WAN 当前限制:ISP Health 与 Monitoring 当前只对 primary WAN 打分;多 WAN 评分在 roadmap(数据已在采)。
- 不替代 UniFi Console:NetworkOptimizer 强在分析与优化,但配置下发仍要走 UniFi Console。两者是分层关系——分析建议、UniFi 落配置。
- Bufferbloat 检测依赖网关支持:Adaptive SQM 需要 UDM/UCG 系列或类似的可执行 iptables/nftables 的 UniFi 网关,纯 AP/纯 Switch 没 SQM 目标。
✅ 总结
NetworkOptimizer 给 UniFi 用户装了一个"自己看自己"的全套仪表+优化器。83 项安全审计、Adaptive SQM、ISP Health、3D 拓扑自托管监控、Multi-Site 集中管控——这些 UniFi Console 没告诉你的事它替你做了。
数据进出全部本地(InfluxDB + SQLite)、Docker / Windows 双部署、个人免费够用、社区持续 2026 年还在更新(Jul 13 又有 commit)。要挑毛病的话:BSL 1.1 不是 OSI/Apache 那种"随便商用"的协议,大规模商用要付费;多 WAN 评分还未上线;自托管 InfluxDB 在小机器上要预留内存。
总体来说——如果你已经用 UniFi 攒了一台还算可以的网关 + 几台 AP,这套工具的 ROI 相当可观。推荐给:
- 想把自托管网络监控做到 UniFi 内置之上的人;
- 同时管几个站点的 MSP 朋友;
- bufferbloat 与 ISP 拥塞事件的长期观察者;
- 任何想要"看得见、审得了、调得动"的网络管理员。
项目主页 | Releases | Docker 部署指南 | Agent 安装指南