Ozark-Connect/NetworkOptimizer

GitHub: Ozark-Connect/NetworkOptimizer

专为 UniFi 网络设计的一体化性能优化与安全审计平台,自动化检测配置缺陷并智能调度优化与告警。

Stars: 587 | Forks: 14

Network Optimizer

# UniFi 网络优化器 [![GitHub Release](https://img.shields.io/github/v/release/Ozark-Connect/NetworkOptimizer)](https://github.com/Ozark-Connect/NetworkOptimizer/releases) [![Docker Pulls](https://img.shields.io/badge/docker_pulls-149k-blue?logo=docker)](https://github.com/orgs/Ozark-Connect/packages?repo_name=NetworkOptimizer) [![Windows Downloads](https://img.shields.io/github/downloads/Ozark-Connect/NetworkOptimizer/total?label=windows%20downloads)](https://github.com/Ozark-Connect/NetworkOptimizer/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/Ozark-Connect/NetworkOptimizer)](https://github.com/Ozark-Connect/NetworkOptimizer/commits) [![GitHub Stars](https://img.shields.io/github/stars/Ozark-Connect/NetworkOptimizer)](https://github.com/Ozark-Connect/NetworkOptimizer/stargazers) [![License](https://img.shields.io/badge/license-BSL_1.1-green)](https://github.com/Ozark-Connect/NetworkOptimizer/blob/main/LICENSE) ## 新功能:控制台 API 密钥认证 使用 API 密钥而非用户名和密码连接到 UniFi 控制台。在 UniFi 网络的“集成”->“创建新 API 密钥”中生成。该密钥在存储时加密,且不会暴露于日志或 UI 中。对于不需要创建本地管理员账号的场景非常有用,或在使用 UniFi 结构组(Fabric)且无法再创建本地管理员用户时尤为方便。 ## 新功能:WAN 路由优化 UniFi 迫使你在“WAN 故障转移”和“负载均衡”之间二选一,且其基于策略的路由只能匹配目标 IP 或域名——无法按端口或协议匹配。WAN 路由优化器消除了这两项限制。默认情况下将主要 WAN 保留用于响应敏感型流量,并按需选择性地将批量流量(如 Steam 下载、操作系统更新、Xbox 下载)通过次要 WAN 进行负载均衡,让它们不再闲置等待故障切换事件。 支持基于源、目的、端口或协议的路由,并具备完整的负载均衡功能。可将游戏流量固定到最快链路,同时让 HTTP/HTTPS 流量在所有 WAN 间 50/50 拆分。具备网关健康检查、故障自动恢复,且对网关性能零影响。 ## 新功能:HTTPS 反向代理 启用 HTTPS 并使用内置的 [Traefik 反向代理](https://github.com/Ozark-Connect/NetworkOptimizer-Proxy) 自动获取 Let's Encrypt 证书。它会强制使用 HTTP/1.1 进行速度测试(HTTP/2 复用会扭曲结果),同时为主应用保留 HTTP/2。Windows MSI 用户可在安装时选择启用 Traefik 作为可选功能。HTTPS 也解锁了基于 GPS 的标签功能,用于自托管的 Speed Test 和 Signal 走测数据,因为浏览器需要安全上下文才能访问地理位置。 ## 新功能:威胁情报 你的 UniFi 网关 IPS 整天都在阻断威胁,但 UniFi 控制台将这些数据埋没在扁平的事件日志中毫无上下文。威胁情报会提取这些 IPS 事件并进行实际分析:谁在攻击你、来自哪里、攻击目标是什么,以及是随机扫描还是有组织的协同攻击。 暴露分析尤为实用。它会交叉引用你的端口转发规则与实际威胁数据,让你看清哪些暴露服务正在被猛攻以及来源何处。攻击序列检测会追踪同一源 IP 是否按杀伤链阶段推进(侦察到利用再到后利用),并标记出看起来像真实攻击而非路过式扫描的行为。地理和 ASN 分解可显示哪些国家和网络正在对你的基础设施发起最多流量。 CrowdSec CTI 集成会为每个源 IP 添加信誉评分和 MITRE ATT&CK 分类,这样你看到的并非原始事件,而是了解该 IP 是否在更广泛互联网上存在恶意活动历史。 ## 新功能:告警与调度 按计划自动执行速度测试和安全审计,并在出现问题时收到通知。调度引擎支持可配置频率和时间窗口的周期性 WAN 与 LAN 速度测试,以及持续跟踪评分变化的安全审计。 告警规则监控关键事项:评分下降、WAN 速度退化、LAN 速度回退(与近期基线相比)、IPS 攻击链进入活跃利用阶段,以及计划任务失败。每条规则均可配置严重性阈值和冷却时间,避免被噪音淹没。基于阈值的规则(例如“当 WAN 速度低于近期平均值 40% 时告警”)可让你根据环境调整敏感度。 交付渠道支持电子邮件(带 STARTTLS 的 SMTP)、Discord、Slack、Microsoft Teams 和通用 Webhook。低优先级告警可设为仅摘要模式,避免邻居微波炉一开或 2.4 GHz 信道拥堵时就不断打扰你。 ## 新功能:客户端性能 为网络中的每个设备提供独立的分析仪表板。选择任意设备即可查看实时信号监控、带下载/上传趋势的速度测试历史、延迟与抖动图表、展示每个跳点和瓶颈链路的可视化网络路径,以及记录 AP 漫游和断连的连接时间线。在手机(通过 HTTPS)上保持页面打开即可构建基于 GPS 的实际覆盖热力图。三个标签页——速度、信号和连接——提供排查设备卡顿或不稳定的全部所需信息。 你已经配置了 VLAN、设置了防火墙规则,甚至可能部署了 Pi-hole 进行 DNS 过滤。UniFi 控制器赋予了你强大能力,但它从未告诉你配置是否有效。防火墙规则是否按预期工作?那个 IoT VLAN 真的被隔离了吗?如果设备绕过 DNS 设置直接外联,你能否察觉? 网络优化器能回答这些问题。它连接你的 UniFi 控制器,分析配置,并告诉你哪些在正常工作、哪些已损坏、哪些需要修复。不再猜测。 ## 主要功能 ### Wi-Fi 优化器与信号热力图 站点健康评分、射频环境分析、客户端统计、漫游追踪、频段引导以及十二项分析标签中的 airtime 公平性。信道推荐引擎利用信号传播、实时射频扫描数据和邻近网络三角测量来建模 AP 间的相互干扰,并结合历史信道压力(利用率、干扰、TX 重试)找出全网干扰最小的信道分配。它尊重 Mesh 上行链路约束、DFS 偏好和监管信道可用性,并通过改进阈值验证每一步推荐,避免建议不值得中断的配置变更。 在客户端侧,你获得可排序、可搜索的表格视图,支持在线/离线过滤、每个客户端的信号与漫游历史,以及按频段划分的 Wi-Fi 生成分解,直观展示 airtime 流向。环境相关性热力图按一天中的时间和一周中的天展示干扰模式,每条推荐都包含在 UniFi 网络 UI 中应用更改的具体导航路径。 信号热力图允许你绘制建筑布局、放置 AP,并查看实时射频传播热力图。支持墙体材质(石膏板、混凝土、玻璃等)、多层建筑中的跨层传播,以及从控制器获取的每 AP 天线模式。模拟 TX 功率和天线模式变更,观察其对覆盖的影响后再操作实际配置。可添加计划中的 AP 以在购买或安装前模拟覆盖。 ### 安全审计 审计引擎运行 83 项安全检查,覆盖五个类别,并对网络评分 0–100。这不是走形式的复选框审计,而是真正分析规则行为及其正确性。 防火墙分析可捕捉隐蔽问题:互相遮蔽的规则、绕过拒绝规则的允许规则、穿透网络隔离的允许规则。VLAN 安全检查确认 IoT 设备与摄像头是否真的位于你设定的网络中(使用 UniFi 指纹、MAC OUI 查找和端口命名模式)。DNS 安全验证 DoH 配置,检查包括 DoT、DoQ 和 HTTP/3 DoH 绕过在内的绕行路由,并验证 WAN 接口的 DNS 设置是否与配置一致。端口安全检查 MAC 限制、端口隔离以及是否启用了未使用端口。UPnP 分析会标记已启用的 UPnP、暴露的高权限端口以及可能被遗忘的静态端口转发。 你会获得一个评分、按严重性(严重、推荐、信息)的分解,以及针对每个问题的具体建议。如有必要可忽略误报以适配你的部署,导出 PDF 报告用于文档记录,并跟踪评分随时间的变化。 ### WAN 路由优化 UniFi 的 WAN 故障转移会让次级链路保持空闲,直到主链路失效。负载均衡会将所有流量分散到所有 WAN,但无法控制流向。WAN 路由优化器兼顾两者:默认将主链路作为延迟敏感流量的首选,同时按需选择性地将批量流量通过多个 WAN 进行完全端口与协议匹配的负载均衡。 通过源、目的、端口或协议定义流量类别,并将其分配到特定 WAN 或在多个 WAN 间按权重负载均衡。运行在网关上的轻量级 Go 二进制文件会在 UniFi 路由表之上插入规则,监听 WAN 状态变化和重新配置事件并自动恢复。网关健康检查仍按预期工作——如果某个 WAN 失效,流量会重新分配到健康链路。 ### 自适应 SQM 如果你使用 Cable、DSL 或 Cellular,你一定知道缓冲膨胀(Bufferbloat)——当有人开始下载或加入视频通话时的延迟尖峰。SQM 可以解决它,但正确设置带宽限制如同猜谜;过高则无法有效整形,过低则浪费带宽。 网络优化器会自动处理此问题。它支持双AN 并为每个接口提供独立配置,连接配置文件针对 DOCSIS、光纤、无线、Starlink 和 Cellular(各有不同特性)进行优化。定时速度测试会根据实际测量性能动态调整速率。延迟监控在检测到拥塞时自动退让。一键部署会将配置推送到你的 UDM 或 UCG 网关,并在重启后保持持久。 ### WAN 速度测试 直接从服务器测试互联网连接速度。测量下载、上传、延迟、带缓冲延迟检测(Bufferbloat)和抖动,并记录完整历史与每个 WAN 连接的数据。结果以时间序列图表展示,可按连接筛选,便于比较不同供应商并在多 WAN 环境中跟踪性能变化。 还包含一个可独立部署在 VPS 或远程机器上的 OpenSpeedTest 服务器,这样你可以在自己的私有基础设施上运行 WAN 速度测试,而无需依赖第三方服务。在“设置”中配置并获取可直接复制的部署命令——详见[外部 WAN 速度测试服务器](docker/DEPLOYMENT.md#external-wan-speed-test-server-optional)。如果你是这类玩家。 ### LAN 速度测试 想知道新交换机是否真的提供 10 Gbps 速度?或者到商店的网线是否成了瓶颈? 网络优化器在网关与网络设备之间运行 iperf3 测试,自动发现 UniFi 设备,支持带每设备 SSH 凭据的自定义设备,自动索引来自其他设备发起的测试(若已启用内置服务器),并关联跳数与基础设施路径,同时记录详细的 Wi-Fi 统计和链路速度以及 UniFi 固件版本。 测试历史可让你随时间跟踪性能,识别并表征任何变化。 ![LAN Speed Test](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/fe919ef638160125.png) ### 客户端速度测试 无需 SSH 即可测试 LAN 速度。在手机、平板或电脑上打开浏览器即可运行速度测试,结果自动记录设备标识。对于 CLI 用户,内置 iperf3 服务器可接受客户端连接并记录结果。参见[客户端速度测试](docker/DEPLOYMENT.md#client-speed-testing-optional)中的部署指南。 ![带网络路径的客户端速度测试](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a1418f3159160126.png) 启用 HTTPS 后,浏览器测试可收集位置数据(经许可)来构建速度/覆盖热力图,展示实际环境下的性能表现。 ![速度/覆盖热力图](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/89b18ee6cd160127.png) ### 蜂窝调制解调器监控 如果你使用 U-LTE 或 U5G-Max 作为备份(或主要)连接,可在仪表板上监控信号质量:RSRP、RSRQ、SNR、小区信息及连接状态。支持多个调制解调器并可轻松切换。 ![蜂窝状态演示](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/3c870b2cda160129.gif) ### UPnP 检查器 你是否好奇网络实际对外暴露了哪些端口?你的 Xbox、Plex 服务器和智能设备都在通过 UPnP 穿透防火墙,而 UniFi 并未让这一切变得透明。 UPnP 检查器将所有动态映射与静态端口转发集中展示,按设备分组,并用颜色标识状态,一眼即可分辨活跃、空闲或即将过期的条目。为每个映射添加备注(因为你总会忘记用途)。搜索与过滤功能可帮你定位引发问题的端口。 ### 即将推出 Cable 调制解调器状态(信号电平、不可纠正计数、T3/T4 超时),适用于与 ISP 协商线路质量问题的用户。 ## 系统要求 - UniFi 控制台(又称控制器)——UDM、UCG、UDR、CloudKey 或自托管 UniFi 网络服务器 - 对 UniFi 控制台 API 的网络访问(HTTPS) 大多数功能仅需 API 访问。SSH 仅在速度测试和自适应 SQM 中需要: | 功能 | 需要 SSH? | |------|-----------| | 安全审计 | 否 | | 配置优化器 | 否,但网关 SSH 用于即将推出的功能 | | Wi-Fi 优化器 | 否 | | 威胁情报 | 否 | | 告警与调度 | 否(计划速度测试可能需要 SSH) | | 客户端速度测试 | 否 | | WAN 速度测试 | 否,但基于网关的需要网关 SSH | | LAN 速度测试 | 是——网关 SSH 和/或设备 SSH | | WAN 路由优化 | 是——网关 SSH | | 自适应 SQM | 是——网关 SSH | 如需启用 SSH,请参见[部署指南中的 SSH 配置](docker/DEPLOYMENT.md#unifi-ssh-configuration)。SSH 必须通过 UniFi 网页界面配置(而非移动应用)。 ## 安装 | 平台 | 方法 | 指南 | |------|------|------| | Linux 服务器 | Docker(推荐) | [部署指南](docker/DEPLOYMENT.md#1-linux--docker-recommended) | | Proxmox VE | LXC 一键命令 | [Proxmox 指南](scripts/proxmox/README.md) | | Synology/QNAP/Unraid | Docker | [NAS 部署](docker/DEPLOYMENT.md#3-nas-deployment-docker) | | Home Assistant | 插件 | [Home Assistant](docker/DEPLOYMENT.md#5-home-assistant) | | Windows | 安装程序(推荐) | [从发行版下载](https://github.com/Ozark-Connect/NetworkOptimizer/releases) | | macOS | 原生(最佳性能) | [macOS 安装](docs/MACOS-INSTALLATION.md) | | Linux | 原生(无 Docker) | [Linux 原生](docker/NATIVE-DEPLOYMENT.md#linux-deployment) | macOS 和 Windows 上的 Docker Desktop 会限制网络吞吐量,不适合速度测试。对于准确的千兆级测量,请使用原生部署。 ### HTTPS 反向代理 如需 HTTPS 并自动获取 Let's Encrypt 证书,请使用 [NetworkOptimizer-Proxy](https://github.com/Ozark-Connect/NetworkOptimizer-Proxy)——一个 Traefik 配置,强制速度测试使用 HTTP/1.1(HTTP/2 复用会扭曲结果),同时为主应用保留 HTTP/2。Proxmox LXC 和 Windows MSI 用户可在安装时启用 Traefik 作为可选功能。这也便于为自托管 Speed Test 和 Signal 走测数据启用 GPS 标签,因为浏览器需要 HTTPS 才能传输位置数据。 ### 快速启动(Linux Docker) **选项 A:拉取 Docker 镜像(推荐)** ``` mkdir network-optimizer && cd network-optimizer curl -o docker-compose.yml https://raw.githubusercontent.com/Ozark-Connect/NetworkOptimizer/main/docker/docker-compose.prod.yml curl -O https://raw.githubusercontent.com/Ozark-Connect/NetworkOptimizer/main/docker/.env.example cp .env.example .env docker compose up -d # 检查日志以获取自动生成的管理员密码 docker logs network-optimizer 2>&1 | grep -A5 "AUTO-GENERATED" ``` **选项 B:从源码构建** ``` git clone https://github.com/Ozark-Connect/NetworkOptimizer.git cd NetworkOptimizer/docker cp .env.example .env docker compose build docker compose up -d # 检查日志以获取自动生成的管理员密码 docker logs network-optimizer 2>&1 | grep -A5 "AUTO-GENERATED" ``` 打开 http://localhost:8042 ### 快速启动(Proxmox) ``` bash -c "$(wget -qLO - https://raw.githubusercontent.com/Ozark-Connect/NetworkOptimizer/main/scripts/proxmox/install.sh)" ``` ### 首次运行 1. 进入设置并输入 UniFi 控制器的 URL 2. 在控制器上创建一个 **仅本地访问** 的账户(Ubiquiti SSO 不适用): - 快速模式:超级管理员角色 - 受限模式:仅网络查看、仅保护查看、无用户管理 - 请参阅应用内设置向导或[详细说明](docker/DEPLOYMENT.md#unifi-account) 3. 点击连接以完成身份验证 4. 导航到“审计”以运行首次安全扫描 ## 项目结构 ``` src/ ├── NetworkOptimizer.Web # Blazor web UI ├── NetworkOptimizer.Alerts # Alerts & Scheduling engine ├── NetworkOptimizer.Audit # Security Audit ├── NetworkOptimizer.Core # Shared helpers and utilities ├── NetworkOptimizer.Diagnostics # Config Optimizer ├── NetworkOptimizer.Monitoring # SNMP/SSH polling ├── NetworkOptimizer.Reports # PDF/Markdown report generation ├── NetworkOptimizer.Sqm # Adaptive SQM ├── NetworkOptimizer.Storage # SQLite database ├── NetworkOptimizer.Threats # Threat Intelligence ├── NetworkOptimizer.UniFi # UniFi API client ├── NetworkOptimizer.WiFi # Wi-Fi Optimizer ├── cfspeedtest/ # WAN Speed Test (binary for gateway) └── OpenSpeedTest/ # Client Speed Test ``` ## 技术栈 .NET 10、Blazor Server、SQLite、iperf3、SSH.NET、QuestPDF、OpenSpeedTest™、Go(WAN 速度测试二进制文件) ## 密码重置 如果忘记管理员密码,请使用对应平台的重置脚本: **Docker / macOS / Linux:** ``` curl -fsSL https://raw.githubusercontent.com/Ozark-Connect/NetworkOptimizer/main/scripts/reset-password.sh | bash ``` **Windows(PowerShell 管理员权限运行):** ``` irm https://raw.githubusercontent.com/Ozark-Connect/NetworkOptimizer/main/scripts/reset-password.ps1 -OutFile reset-password.ps1 .\reset-password.ps1 ``` 该脚本会停止服务、清除密码、重启并显示新的临时密码。 ## 许可证 业务源许可证 1.1 **许可方:** Ozark Connect **被许可作品:** UniFi 网络优化器 **个人使用:** 你可以在最多三个站点上将该许可作品用于个人、非商业用途。 **商业使用:** 托管服务提供商(MSP)、网络安装商、IT 咨询公司或任何将该软件用于付费服务交付的实体需要商业许可。 **变更日期:** 2028 年 1 月 1 日 **变更许可证:** Apache License 2.0 商业许可咨询请联系 tj@ozarkconnect.net。 © 2026 Ozark Connect ## 支持 - 问题反馈:[GitHub Issues](https://github.com/Ozark-Connect/NetworkOptimizer/issues) - 文档:参见 `src/` 和 `docker/` 中的组件 README ## 其他项目 - [UniFi Lightshow](https://github.com/Ozark-Connect/unifi-lightshow) - 为 UniFi Etherlighting LED 控制器自定义 RGB 光效。将你的交换机机架变成空间光画布,支持 SignalRGB 集成、季节性效果和多交换机控制。 - [UNVR NAS 备份](https://github.com/Ozark-Connect/unvr-nas-backup) - 自动将 UniFi NVR 摄像头的备份存储到 NAS。 UniFi 网络优化器是一个独立项目,由 Ozark Connect 开发,与 Ubiquiti, Inc. 无关,也得到其认可或赞助。Ubiquiti、UniFi、UDM 和 Cloud Key 是 Ubiquiti, Inc. 的商标或注册商标。其他所有商标均为其各自所有者所有。
标签:API 密钥认证, DNS 安全, DNS通配符暴力破解, Docker, LAN 测速, U5G-Max 监控, UniFi, VLAN 安全, WAN 测速, WAN 转向, Wi-Fi 优化, 二层追踪, 信道优化, 安全防御评估, 性能优化, 情报分析, 无线健康评分, 日志审计, 服务器监控, 检测绕过, 策略路由, 网络优化, 网络诊断, 自托管, 负载均衡, 配置优化, 防火墙检查, 集中式测速