您的位置首页生活百科

如何使用域名访问Home Assistant

如何使用域名访问Home Assistant

的有关信息介绍如下:

如何使用域名访问Home Assistant

利用加载项Nginx Proxy Manager快速配置,可以实现通过域名HTTPS隐藏端口方式访问Home Assistant管理系统,默认配置后直接访问会提示:400: Bad Request错误信息,本文将介绍如何正确设置Home Assistant去实现通过域名正常访问。

Home Assistant 是一个基于Python 3开发的开源自动化设备控制平台。可以跟踪和控制网络中的所有设备,并实现自动化控制。系统默认使用8123端口进行管理,带端口访问既不方便也不安全。

如果系统只在内部运行,相对还安全些,如果需要对互联网提供服务或需要映射后对互联网提供服务,使用http端口访问时容易被中间人截获数据,拿到API的KEY后就可以远程控制,存在安全风险。

要实现域名访问的方式有多种,如直接在Home Assistant控制台,配置-系统-网络中,配置Home Assistant URL选项即可(访问时带端口)

或者使用加载项Let's Encrypt和NGINX Home Assistant SSL proxy来实现https的访问,但配置相对复杂,本文不做介绍。

本文主要介绍使用Nginx Proxy Manager加载项进行域名访问设置。

首先在配置-加载项-加载项商店里找到Nginx Proxy Manager,安装后启动服务,查看日志如果启动错误,报DB类的错误,可以先安装下加载项MariaDB并进行参数配置。

再重新启动Nginx Proxy Manager,查看运行日志,如图为正常启动信息。

Nginx Proxy Manager的默认管理地址是81端口,直接访问你的服务器ip:81即可访问管理登录界面,输入初始账号admin@example.com,密码changeme(进入后可在后上角用户头像位置点击修改密码)即可登录。

在Host菜单下点击proxy host进入域名管理项,点击右侧Add proxy host添加域名项。域名是需要对外提供服务(需要提前解析到该服务器IP或是映射服务前端IP);Forward Hostname / IP可以直接填写:homeassistant或者是你访问管理台的IP,端口为系统的8123,开启websocket support支持。先不要配置ssl证书,点保存,生效服务后进行http访问测试。

直接浏览器访问刚才填写的域名,如果配置正常就可以直接出现登录界面,说明配置正常,可以到Nginx Proxy Manager中开启SSL证书配置了。

如果访问时出现【400: Bad Request】错误提示,需要在Home Assistant设置中开启反向代功能并设置白名单。

在Home Assistant的配置中设置启用反代功能,并设置IP白名单功能步骤如下:

首先到系统日志中查看请求错误信息,查找到实际请求的IP。

如:A request from a reverse proxy was received from 172.30.33.6,

这条日志中的172.30.33.6为实际请求IP,可以添加到白名单中

然后在文件编辑器中打开:/config/configuration.yaml

添加:

http:

use_x_forwarded_for: true

trusted_proxies:

- 127.0.0.1

- 172.30.33.6

- ::1

保存后,重启

重启后就可以直接使用域名不带端口的方式访问了。

然后就可以在Nginx Proxy Manager的域名配置中,修改配置SSL证书(自动模式),以启用HTTPS访问模式。

也可以提前先准备好证书,设置SSL时选择已有证书:

进入SSL certificates证书管理,右侧的Add SSL certificates可以选择申请Let's Encrypt免费证书和Custom自定义证书(导入现有域名证书)。

证书配置完成后,可以直接使用https模式访问控制台了,包括使用API接口时也可以使用安全模式传输了,增加了系统的安全性。