【VPS 自建应用大赏 01】把 Home Assistant 跑在 VPS 上:远程控制智能家居的可行性与坑
2026-08-15 · DevCraft Studio
Home Assistant 一般跑在家里树莓派,但放 VPS 能实现远程访问与高可用。本文分析在 VPS 上跑 HA 的延迟、局域网设备接入、Tailscale 组网与备份,以及什么时候不该这么做。
专题连载:VPS 自建应用大赏
本文是该系列第 1 篇。阅读该系列其他文章:
延伸阅读
更多相关攻略推荐:从 Git Push 到秒级上线:CI/CD 流水线与"无中断"发布、【VPS 进阶玩法精选 030】用 VPS 搭建云端 IDE(cod、连云厂商也看不到你的数据?机密计算(Confidential Com、被割裂的"云上互联网":数据主权(GDPR)、本地化存储与主权云(S、什么时候非得要独立 IPv4?便宜国外 VPS 独立 IP 适用场景。
Home Assistant 是什么,为什么它通常是"本地"的
Home Assistant(圈里常简称 HA)是一款开源、本地优先(local-first)的智能家居中枢,采用 Apache 2.0 协议。它的设计哲学很硬核:数据不出屋、控制不依赖任何厂商云。官方声称已接入 2800 多个设备集成、拥有 50 万以上的活跃安装量。换句话说,你家的灯、插座、摄像头、温控、音箱,理论上都能被它统一调度。
正因为它强调"本地",绝大多数人的 HA 是跑在家里那台树莓派、或者 NAS 的 Docker 里。注意一个时间点:从 2025.6 版本起,官方把安装方式精简成了两种——Home Assistant OS(HAOS,自带 Supervisor、插件商店和托管备份/更新)和 Home Assistant Container(纯 Docker,没有 Supervisor 与插件商店)。以前那种 Core 和 Supervised 安装方式已经被弃用。这意味着,当你说"把 HA 跑在 VPS"上,实际上只有两条路:在云服务器里开个虚拟机装 HAOS,或者用 Docker 跑 Container。
为什么有人想把 HA 搬到 VPS
既然 HA 天生是本地派的,为啥还有人想把它搬到云上?社区里被反复提到的动机就那么几个,说白了都是为了解决"家里方案太脆"的问题。
第一是远程访问稳。家里那台 Pi 直连公网,经常被运营商封掉 80/443 端口;用 NAS 加 Docker 配 DDNS,延迟又高还容易掉。迁到云之后,服务器永远在线、IP 固定、带宽稳定,HTTPS 证书也能自动续签。有用户实测过,上云之后实现连续 117 天零手动干预。
第二是不怕家里断电、断网、路由器重启。本地 HA 一旦停电或者宽带断了,你人在外面手机就彻底失联;VPS 把这个"家庭大脑"的单点故障给抹掉了。
第三是高可用与快照恢复。云平台自带 snapshot、自动备份和故障切换。有用户在 Hetzner 上用快照 4 分钟就把 HA 实例拉了回来;而本地 SD 卡一旦损坏,往往是几个小时重刷加重配对。
第四是成本低到离谱。中文圈实测,阿里云轻量应用服务器(2 核 2G、40GB SSD)月付不到 30 元,腾讯云同配置 25 元起,比一个智能音箱一年电费还低。海外像 DigitalOcean 4 到 6 美元一个月的 droplet,或者 RackNerd、CloudCone 年付几十元人民币的套餐,也都跑得动。
最大的坑:HA 在云,设备在家
这是整件事最关键、也最容易被忽略的矛盾。HA 真正的价值在于控制你家里那些真实的 Zigbee、Z-Wave、Matter 设备和局域网设备——飞利浦 Hue 灯、Sonos 音箱、Chromecast、摄像头、智能插座等等。当 HA 进程在云端、设备在家时,本地设备根本没法被云端 HA 发现和直接控制,除非你在家和云之间架一条加密隧道。
HA 社区有一句很直白的话:"Home Assistant will not work on a VPS"——前提是没有 VPN。要让本地设备连到远程 VPS 上的 HA,"要么做大量端口转发,要么建 VPN"。纯 VPS 上的 HA 能用,但"基本没用(essentially worthless)",因为它连不到 HOME 里的设备。
所以别以为装了 HA 就能直接控家里的灯,这是新手最常见的误区。解决模式叫"解耦控制平面"(decoupled control plane):编排逻辑(HA)放云端,数据平面(Zigbee/Matter 射频)留在家里一个小协调器(coordinator)上,两者用 Tailscale 或 WireGuard 加密隧道相连。
用 Tailscale 把家里网段"拉"进云端 HA
组网方案里最省心的是 Tailscale。HA 里有官方 Tailscale 插件(由核心开发者 Frenck 维护),直接装好就行。启用 MagicDNS 和 HTTPS 证书后,HA 就有一个好记的地址;然后用命令把你家子网通告进 tailnet,比如把 192.168.1.0/24 整个网段广播进去。之后你手机装个 Tailscale,就能像在局域网里一样控制家里设备。
免费的个人套餐最多支持 6 个用户,对家庭场景完全够用。注意一个配置细节:在 HA 的 configuration 里要加 http 段,设置 use_x_forwarded_for 为 true,并把 100.64.0.0/10 加进 trusted_proxies,否则 HA 不认这条隧道来的请求。
当然还有别的路子。Nabu Casa(Home Assistant Cloud)是官方云服务,约 6.5 美元一个月(约 7.5 欧元、约 50 元人民币),提供远程访问加 Google/Alexa 语音集成,最省事但要付费而且部分数据经过它服务器。WireGuard 自建完全可控但最折腾。Cloudflare Tunnel 适合被运营商封端口或处于 CG-NAT 的环境。ngrok、frp 这类内网穿透中文社区用得多,但要留意国内 ICP 备案——把云服务器公网 IP 绑域名做 Web 服务,通常要先用接入商审核加管局审核,免费但耗时;不备案可能被直接阻断。
解耦架构:云端 brain 加本地协调器
采用解耦架构后,延迟是躲不开的代价。多数设置会增加约 30 到 80 毫秒(参考值),控制灯开关这种无感,但对存在传感器等实时性敏感的场景可能能感觉到。
这里有个很关键的特性叫 Zigbee binding:开关和灯泡可以在协议层直接对话,不经过控制器。也就是说,就算云端大脑宕机,关键照明依然能工作,这是本地射频的韧性兜底。
Matter 和 Thread 是难点。Matter 假设控制器和设备在同一局域网,Thread 边界路由器必须本地,而且 Matter 依赖 mDNS 发现——mDNS 默认不能跨 Tailscale 子网工作,需要额外配置 mDNS 反射器,或者把家网段通过 subnet routes 通告进 tailnet。不少新手就栽在这个坑里。
VPS 上怎么部署
如果你想走 Docker 路线,镜像用 ghcr.io/home-assistant/home-assistant:stable,把 ./config 挂到 /config,映射 8123 端口,设好时区,网络模式根据需求选择。注意:如果 HA 要发现局域网设备,需要 network_mode 为 host,否则容器隔离的网络看不到 mDNS 和 SSDP;要接 USB Zigbee 协调器,得把设备映射进去或开 privileged。
安全要求不能马虎。VPS 公网暴露时,务必创建非 root 用户加 sudo、用 SSH 密钥登录并禁用密码和 root 登录、用 UFW 只放行必要端口、装 fail2ban,前面再套一层 Caddy、Nginx Proxy Manager 或 Traefik 并配 Let's Encrypt 证书。如果用反代,HA 的 http 配置里把反代网段加进 trusted_proxies。
想用完整插件商店和托管备份,就走 HAOS 虚拟机路线,在 VPS 上用 KVM、VirtualBox 或 Proxmox 跑官方镜像,分配 2GB 内存以上和 2 个 vCPU,桥接网络即可。
推荐起步套餐:综合各方指南,2 核 4GB 内存加 50GB SSD 起步,系统用 Ubuntu 22.04 或 24.04 LTS;复杂场景(本地语音、摄像头加 Frigate、大量集成)建议 8GB。只做远程访问、设备少的话 1 到 2GB 也行。选机时避开超售严重的共享 vCPU,看 NVMe 和 steal time,内存不够会频繁 swap 拖慢整体。
备份与灾难恢复
从 2025.1 起 HA 内置了自动备份,官方推荐 3-2-1 策略:3 份数据(活系统加 2 个备份)、2 种存储介质、1 份异地(Google Drive、OneDrive 或异地 NAS)。2025.2 之后原生集成 Google Drive 和 OneDrive,自动上传到 "Home Assistant" 文件夹,Google Drive 免费额度 15GB。
重点提醒:从 2025.1 起备份默认加密,密钥由你掌握,而且密钥必须存在 HA 之外(密码管理器、纸质、或托付信任的人)。丢了密钥,加密备份就不可恢复,等于白备。备份内容主要是 /config 卷,只想备配置可以排除数据库和 backups 目录来减小体积。建议夜间自动备份、更新前手动备一份,并且至少实测恢复一次。
什么时候不该这么做
如果你的智能设备高度依赖本地射频(Zigbee/Z-Wave/Matter/Thread),又追求极低延迟或离线可用,纯云端 HA 反而增加了对 ISP 和 VPS 商的依赖。此时"本地大脑加 Tailscale 远程访问"比"云端大脑"更稳。
还要想清楚:家里宽带一断,本地协调器就连不上云大脑,自动化就停(虽然有 Zigbee binding 兜底关键照明)。这本质上是把单点故障从 SD 卡搬到了 VPS 提供商和 ISP。另外 Nabu Casa 的订阅是持续开销,纯本地则零订阅。
结论其实很清楚:不是"把 HA 整体搬到云",而是"HA 在云加本地协调器经 VPN 回连"。如果你只是想随时远程开个灯,Tailscale 加本地 HA 更简单;只有当你追求"家里断电也不失联加高可用"时,才值得上云端大脑架构。
💡 延伸阅读:关于架构与基础设施的更多深潜指南,请前往 VPS 主题导读中心 (Hub) 获取全盘策略。