警告:这是早期版本,请阅读截至目前所有版本的发布说明
OpenSOHO 旨在管理少量基于 OpenWRT 的网络设备。因此得名 SOHO,即小型办公室/家庭办公室 (SOHO) 网络。
它受 OpenWISP 的启发,但针对那些规模太小、不适合用 OpenWISP 维护的网络。正如 OpenWISP 所说:
然而,OpenWISP 可能不适合非常小的网络(少于 20 台设备)、缺乏 IT 专业知识的组织,或仅仅为了节省成本而寻求开源替代方案的企业。
以下版本已测试
设置 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
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 客户端漫游仍在开发中)
服务器 URL 和 共享密钥。
服务器 URL 后面添加斜线。示例 URL:http://192.168.1.1:8090OPENSOHO_SHARED_SECRET)。更新间隔 降低到 30 秒,以加快更新速度。(如果你不设置,OpenSOHO 会为你做这件事)强烈建议启用监控,因为 OpenSOHO 会推断许多当前的 OpenWRT 设置并自动填充,方便配置。
已启用 标志设置为 true。numradios 设置为正确值。例如,对于 2.4 + 5GHz 设备,该值应为 2。numradios 配置)。OpenSOHO 附带一个基本仪表盘。可通过左侧边栏最下方的按钮访问,该按钮位于 OpenSOHO 徽标下方。
请注意,此仪表盘并非旨在替代更高级的图形化工具,它有意保持简单。
现在可以通过 http://ipaddress:8090/_/ 访问 OpenSoho。
有多个配置集合:
这些是连接到 Wi-Fi 的客户端。此表只读,但别名除外。可用于为设备提供人类可读的名称。仅当客户端不随机化其 MAC 地址时,此功能才能正常工作。
包含当前连接到 Wi-Fi 的客户端列表。要显示设备的 IP 地址,OpenSOHO 需要访问 DHCP 租约。因此,需要在包含 DHCP 服务器的设备上运行 openwisp 监控守护进程。静态 IP 设备不会获得 IP。这是 0.12.0 版本已知的限制。
这些是已连接的设备。
healthy 表示设备在过去一分钟内已通信。如果没有通信,健康状态变为 unhealthy,设备或其连接可能存在问题。验证设备健康状态是否为 healthy。
此视图显示在前 30 秒内仍连接的所有 Wi-Fi 客户端。
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
OpenWRT 中似乎存在一个问题,Wi-Fi 设备上配置的第一个 SSID 不会自动启用。 解决方法:在 LuCI 中点击启用按钮。
go mod tidy
共享密钥用于 openwisp-config 注册。选择一个长的随机字符串以获得最佳安全性。
运行单元测试:
go test -cover -v -coverprofile=coverage.out
go tool cover -html=coverage.out
一些 OpenWISP 功能目前被认为不在 OpenSOHO 范围内:
目标是充分利用 pocketbase。由于 pocketbase 后端目前缺乏插件系统,可以进行小修改。但目标不是创建 pocketbase 的分支,因此保持合并上游更改简单。
GITHUB_TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa goreleaser release