警告:这是早期版本,请阅读截至目前所有版本的发布说明
感谢您考虑支持本项目!
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 客户端引导功能仍在开发中)
Server URL 和 Shared secret。
Server URL 末尾添加斜杠。示例 URL:http://192.168.1.1:8090OPENSOHO_SHARED_SECRET)。Update Interval 降低到 30 秒以获得更快的更新。(如果你不设置,OpenSOHO 会为你完成此操作)强烈建议启用监控,因为 OpenSOHO 会推断出大量当前的 OpenWRT 设置并自动填入,以便于配置。
Enabled 标志设置为 true。numradios 设置为正确的值。例如,对于 2.4 + 5GHz 设备,该值为 2。numradios 配置)。OpenSOHO 附带一个基础仪表盘。可通过最左侧边栏中 OpenSOHO 标志正下方的按钮访问。
请注意,这并非旨在替代更高级的图表工具,它是有意保持基础功能的。
现在可以通过 http://ipaddress:8090/_/ 访问 OpenSoho
有几个配置集合:
这些是连接到 Wifi 的客户端。此表为只读,别名除外。 它可用于为设备提供人类可读的名称。仅当客户端不随机化其 mac 地址时,此功能才能正常工作。
包含当前连接到你的 wifi 的客户端列表。为了显示设备的 IP 地址,OpenSOHO 需要访问你的 DHCP 租约。为此,你需要在包含 DHCP 服务器的设备上运行 openwisp 监控守护进程。使用静态 IP 的设备将不会获得 IP。这是 0.12.0 版本的已知限制。
这些是已连接的设备。
healthy 表示设备在过去一分钟内进行了通信。如果没有,健康状态将变为 unhealthy,设备或其连接可能存在问题。创建一个包含主机名、MAC 地址、IPv4 地址以及一个或多个 DHCP 服务器的保留项。OpenSOHO 会在每个选定的服务器上向 /etc/config/dhcp 添加相同的命名 config host 段。清除 DHCP 服务器选择即可禁用该保留项而不删除它。名称、MAC 地址和 IP 地址在整个保留项列表中唯一。
验证设备健康状况是否为 healthy。
此视图显示在过去 30 秒内仍保持连接的所有 wifi 客户端。
OpenSOHO 监控可与 Home Assistant 集成。(更多信息) 此 REST API 专为与 Home Assistant 配合使用而设计,但也可与其他工具集成。
当在 LuCI 中更改 OpenWISP Server URL 后,似乎无法正确地向新控制器注册时。
要修复此问题:
uci delete openwisp.http.uuid
uci delete openwisp.http.key
/etc/init.d/openwisp-config restart
OpenWRT 中似乎存在一个问题:WiFi 设备上第一个配置的 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