故障现象
第一次给树莓派安装 Home Assistant OS 时,系统能够启动,但初始化页面长时间停留在 Core 安装阶段。主网络访问普通网站没有明显问题,HAOS 却无法稳定拉取容器镜像;把设备接到具备代理出口的独立路由器后,安装能够继续。完成下载后再接回主网络,Home Assistant 又能正常运行。
另一个现象更容易误导排查:设备从代理子网换回主网后,我仍然访问旧地址,于是页面半开、WebSocket 失败,看起来像 Home Assistant 本身损坏。
这实际上是两个问题叠在一起:
1 | 首次初始化阶段:Supervisor 需要下载并创建 Core 容器 |
先区分“启动失败”和“还没安装完”
如果页面提示 Core installation in progress,不能只盯着 8123 端口。先在本机控制台检查:
1 | ha supervisor logs |
需要确认的不是一句笼统的“网络正常”,而是:
- Supervisor 是否仍在拉取镜像。
- Core 容器是否已经创建,状态是否为 running。
- 当前接口拿到的地址、网关和 DNS 属于哪个网段。
- 设备是否还保留上一次网络的静态设置。
本次故障中,代理网络解决的是镜像仓库可达性;它并没有自动解决设备长期应该放在哪个网段的问题。
HAOS 默认应从 DHCP 建立基线
Home Assistant 官方说明 HAOS 使用 NetworkManager 管理主机网络,默认连接处于 DHCP 状态。恢复默认 IPv4 自动配置的当前示例是:
1 | ha network update default --ipv4-method auto |
详见 Home Assistant OS Network Configuration。
这里有两个容易踩坑的地方:
- 接口或连接配置名称不要靠猜,先看
ha network info。 - 不要在一边拉取 Core 镜像时一边频繁换网、改静态地址和 DNS。
对于家庭基础设施,我更倾向于让 HAOS 使用 DHCP,再由主路由根据 MAC 地址分配固定租约。这样地址长期稳定,同时网关与 DNS 仍由同一个权威 DHCP 管理。
“代理网安装、主网运行”的正确流程
如果主网确实无法访问首次安装所需的镜像仓库,而独立代理网络可以,比较稳妥的流程是:
1 | 1. 烧录 HAOS,连接到可完成下载的网络 |
不要把旧子网的地址手工写进长期配置,也不要换网后继续访问旧 URL。浏览器书签、反向代理和 Home Assistant App 中保存的地址都需要一起核对。
为什么 Home Assistant 更适合主网
Home Assistant 需要发现电视、音箱、网关、打印机和各类 IoT 设备。mDNS、SSDP 与局域网广播在二级 NAT 和独立子网之间未必会自动穿透。如果把 HA 长期放在代理路由器下级,它可能能访问互联网,却无法完整发现家里的设备。
我的最终职责划分是:
1 | 主网:NAS、电视、Home Assistant、打印机和稳定终端 |
代理路由器故障时,Home Assistant 和家庭媒体服务仍然应该继续工作。
完成后的验收
1 | [ ] ha core info 显示 Core 正常运行 |
结语
这次最消耗时间的地方,是把“容器还没下载完成”“设备换了网段”和“浏览器仍在访问旧地址”当成了同一个问题。拆开以后,流程就很清楚:首次安装先保证依赖可达,完成后回到设备发现最完整的主网,再用 DHCP 固定租约收口。