
opensoho v0.15.0
轻量级的OpenWRT设备管理平台,适用于小型网络。针对2–20台设备提供集中配置、监控和WiFi管理,部署简单且兼容OpenWISP。
警告:这是早期版本,请阅读截至目前所有版本的发布说明
OpenSOHO
OpenSOHO 旨在管理少量基于 OpenWRT 的网络设备。因此得名 SOHO,即小型办公室/家庭办公室 (SOHO) 网络。
- 2 到 20 台设备(没有硬性限制)
- 不支持多租户
- 与 openwisp-config 和 openwisp-monitoring 兼容。
- 部署简单
它受 OpenWISP 的启发,但针对那些规模太小、不适合用 OpenWISP 维护的网络。正如 OpenWISP 所说:
然而,OpenWISP 可能不适合非常小的网络(少于 20 台设备)、缺乏 IT 专业知识的组织,或仅仅为了节省成本而寻求开源替代方案的企业。
以下版本已测试
- OpenWRT 24.10.x DSA
- OpenWRT 25.12.x DSA(测试版支持)
开始使用 OpenSOHO
概述
设置 OpenSOHO 只需几个简单步骤,以下各节详细介绍:
- 在服务器上安装 OpenSOHO。
- 在 OpenWRT 设备上安装 OpenWisp 软件包。
- 在每个 OpenWRT 设备上配置 OpenWisp,使其连接到 OpenSOHO。
- 开始在 OpenSOHO 中进行配置!
安装 OpenSOHO
-
下载最新的 OpenSOHO 版本(或使用 Docker 容器)
-
启动 OpenSOHO
首先,选择一个共享密钥,允许 OpenWRT 设备(使用 openwisp-config)注册到 OpenSOHO。
选择一个长的随机字符串以获得最佳安全性。
它应与下一步在 LuCI 中配置的内容一致。
OPENSOHO_SHARED_SECRET=randompassphrase ./opensoho serve --http 0.0.0.0:8090
现在,OpenSOHO 会在命令行输出一个 URL,允许你创建管理员账户。只需在浏览器中打开该 URL。
或者,通过命令行创建管理员账户:
./opensoho superuser upsert EMAIL PASS
配置(采用)OpenWRT 设备
安装 OpenWISP 软件包
opkg install openwisp-config openwisp-monitoring luci-app-openwisp # OpenWRT 24.10
apk add openwisp-config openwisp-monitoring luci-app-openwisp # OpenWRT 25.12+
如果你想使用 802.11v 客户端漫游,则需要完整的 wpad-mbedtls。
在 OpenWRT 24.10 上
opkg remove wpad-basic-mbedtls && \
opkg install wpad-mbedtls && \
service wpad restart
在 OpenWRT 25.12+ 上
apk del wpad-basic-mbedtls && \
apk add wpad-mbedtls && \
service wpad restart
安装 wpad-mbedtls 后,先尝试 service restart wpad,否则可能需要重启才能切换到新的 wpad 二进制文件。如果没有重启,你可能会遇到类似 daemon.notice netifd: radio1 (28210): WARNING (wireless_add_process): executable path /usr/sbin/wpad does not match process 1842 path (/usr/sbin/wpad (deleted)) 的错误。
(请注意,802.11v 客户端漫游仍在开发中)
在 LuCI 中配置 OpenWISP
- 仅设置
服务器 URL和共享密钥。- 不要在
服务器 URL后面添加斜线。示例 URL:http://192.168.1.1:8090 - 共享密钥是之前选择的值(
OPENSOHO_SHARED_SECRET)。
- 不要在
- 可选择将
更新间隔降低到 30 秒,以加快更新速度。(如果你不设置,OpenSOHO 会为你做这件事) - OpenSOHO 还会启用监控,并将监控间隔降低到 15 秒,以便更快地更新网络状态。
强烈建议启用监控,因为 OpenSOHO 会推断许多当前的 OpenWRT 设置并自动填充,方便配置。
配置 OpenSOHO
- 等待 OpenWRT 设备使用共享密钥完成自我注册。
- 将设备的
已启用标志设置为 true。 - 将
numradios设置为正确值。例如,对于 2.4 + 5GHz 设备,该值应为 2。 - 设置一个 Wi-Fi 接入点(SSID+密钥)。此过程使 OpenSOHO 能够在设备注册时正确检测无线电配置。
- 将配置好的 Wi-Fi 接入点附加到设备上,以便进行配置。
- 目前,每个网络将自动在所有无线电上配置(使用
numradios配置)。 - 可选地,LED 也可以打开或关闭(目前仅支持静态配置)。
- 现在支持配置无线电频率。OpenSOHO 会读取当前的无线电配置一次,并在无线电配置中提供。可能需要一两分钟才会出现无线电配置(配置和监控步骤需要一些时间才能完成)。
仪表盘
OpenSOHO 附带一个基本仪表盘。可通过左侧边栏最下方的按钮访问,该按钮位于 OpenSOHO 徽标下方。
请注意,此仪表盘并非旨在替代更高级的图形化工具,它有意保持简单。
配置
现在可以通过 http://ipaddress:8090/_/ 访问 OpenSoho。
有多个配置集合:
客户端
这些是连接到 Wi-Fi 的客户端。此表只读,但别名除外。可用于为设备提供人类可读的名称。仅当客户端不随机化其 MAC 地址时,此功能才能正常工作。
已连接客户端
包含当前连接到 Wi-Fi 的客户端列表。要显示设备的 IP 地址,OpenSOHO 需要访问 DHCP 租约。因此,需要在包含 DHCP 服务器的设备上运行 openwisp 监控守护进程。静态 IP 设备不会获得 IP。这是 0.12.0 版本已知的限制。
设备
这些是已连接的设备。
- 使用启用/禁用来禁用配置更新。这有助于避免同时更新所有设备。监控仍保持活动。
- 健康状态为只读字段。
healthy表示设备在过去一分钟内已通信。如果没有通信,健康状态变为unhealthy,设备或其连接可能存在问题。 - LED 允许选择 LED 配置
- Numradios 允许设置设备上的无线电数量。OpenWisp 初始不会发送此信息,因此需要由用户设置。
- Wifis 允许选择要应用于该设备的 SSID。
LED
- 基本 LED 配置(目前更像是一个概念验证)
无线电
- 允许设置每个无线电的频率。
- 不应修改频段,因为这允许 OpenSOHO 验证频率配置。由于 PocketBase 的限制,这是必要的。
Wi-Fi
- 允许设置各种 SSID。加密模式的选择目前有限。出于设计考虑,不支持 WEP 或开放式网络。
监控
设备监控
验证设备健康状态是否为 healthy。
已连接客户端
此视图显示在前 30 秒内仍连接的所有 Wi-Fi 客户端。
Home Assistant 集成
OpenSOHO 监控可以与 Home Assistant 集成。(更多信息) 此 REST API 设计用于 Home Assistant,但也可以与其他工具集成。
故障排除
重新注册设备
当在 LuCI 中更改 OpenWISP 的 服务器 URL 似乎没有正确注册到新控制器时。
解决方法:
uci delete openwisp.http.uuid
uci delete openwisp.http.key
/etc/init.d/openwisp-config restart
第一个 SSID 未启用
OpenWRT 中似乎存在一个问题,Wi-Fi 设备上配置的第一个 SSID 不会自动启用。 解决方法:在 LuCI 中点击启用按钮。
开发者
- 安装依赖
go mod tidy
- 启动 OpenSOHO
共享密钥用于 openwisp-config 注册。选择一个长的随机字符串以获得最佳安全性。
运行单元测试:
go test -cover -v -coverprofile=coverage.out
go tool cover -html=coverage.out
范围
功能
一些 OpenWISP 功能目前被认为不在 OpenSOHO 范围内:
- 固件更新:OpenWRT 不需要频繁更新;在每台设备上手动使用 Attended sysupgrade 功能。
- 多租户
- 模板:OpenWISP 有一个强大且通用的模板机制,这里用一组更具针对性的功能子集替代,以提供更简单的配置体验。
开发
目标是充分利用 pocketbase。由于 pocketbase 后端目前缺乏插件系统,可以进行小修改。但目标不是创建 pocketbase 的分支,因此保持合并上游更改简单。
发布
GITHUB_TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa goreleaser release