公网域名通过Cloudflare Zero Trust隧道登陆HomeAssistant服务

HomeAssistant公网登陆方式有几种:

  1. Home Assistant Cloud当您不在家时,Home Assistant Cloud 可让您安全地远程连接到您的服务器。它还允许您连接 Amazon Alexa 和 Google Assistant(仅限云服务)。
  2. 使用Nginx Proxy Manager插件配置反向代理+ssl证书。
  3. 群晖反代服务配置,需要加端口号。

登录新方法

下面介绍我认为是简单安全的一种方法,绑定Cloudflare自定义域名+ssl,供大家探讨。
公网域名通过Cloudflare Zero Trust隧道登陆HomeAssistant服务,需要的条件是:

  • 有自己的域名,并设置由Cloudflare DNS解析。
  • 申请Cloudflare账号,免费计划就行。
  • 有软路由OpenWrt、爱快、ROS,群晖NAS或者安装Casaos、Mac OS、Linux、Windows等系统的主机。

实现步骤

你已有Cloudflare账号(申请步骤搜索一下很多),有一台群晖NAS。

  1. 登录Cloudflare页面,选择Zero Trust项
  2. 选择网络
  3. 选择Tunnels–创建隧道
  4. 选择Cloudflared
  5. 自定义隧道名称–保存
  6. 选择你的操作系统–复制Cloudflare的代码安装到你系统,群晖NAS先安装Cloudflard插件,只要复制安装代码的Token部分(install后面的值)按插件配置指示输入启动就完成本地设置了。
    1
    sudo cloudflared service install eyJhIjoiNRhOGI2YmYtMGU1Yy00ZTQ2LWJkE4OGM1YmRiY2YiLCJ0IjoitMGU1Yy00ZTQ2LWJkEGM1YltWTFNaTAwWkdA4MDJkNTU3ZDdiIiwicyI6Ik4yE5qa4WlRJdFltWTFNaTAwWkdNMExUZzBNMkV0T0dGbE5qSTByRmxOallGaiJ9

  7. 现在新建的隧道–编辑
  8. 选择公告主机名–添加公共主机名

  9. 自定义子域名–自有Cloudflare DNS解析域名–选择HTTP类型–填写HomeAssistant服务的ip:端口号(localhost:8123)
  10. 打开HomeAssistant页面,安装File editor插件,打开File editor页面–打开系统配置文件configuration.yaml,添加如下配置:
    1
    2
    3
    4
    5
    http:
    use_x_forwarded_for: True
    trusted_proxies:
    - 127.0.0.1 # 这个在我的使用环境下一定要填写
    - 192.168.10.0/24 # 修改成代理服务器的网段或者代理服务器的ip,我这里是192.168.10.110

  11. 重启HomeAssistant

现在手机终端可以公网连接HomeAssistant了。