当你兴致勃勃地配置好 Lucky、Nginx 或 FRP 等内网穿透工具,准备实现 Home Assistant (Hass) 的远程访问时,网页上冰冷的 400: Bad Request 可能会让你瞬间冷静下来。别担心,这并不是你的穿透工具坏了,而是 Hass 为了保护你的家庭安全,默认拒绝了“陌生”代理服务器的访问请求。
本文将带你通过简单的四个步骤,彻底解决这个反向代理安全拦截问题。
第一步:确认内网穿透状态
在修改 Home Assistant 配置之前,请务必先确认你的内网穿透工具(如 Lucky)是否运行正常。如果你的穿透页面显示连接数正常,且能够通过公网域名访问到 Hass 的报错页面(即看到那个 400 提示),说明网络隧道已经打通,问题出在 Hass 的安全策略上。
第二步:查看 Home Assistant 日志获取关键 IP
Hass 会在日志中明确告诉你它拒绝了谁。这是解决问题的关键:
登录你的 Home Assistant 局域网后台。
依次点击 配置 -> 系统 -> 日志。
你会看到一条类似这样的红字报错:"A request from a reverse proxy was received from 192.168.1.1, but your HTTP integration is not set-up for reverse proxies"。
注意:请记下报错信息中出现的那个 IP 地址(例如图片中的 192.168.1.1),这就是我们需要加入白名单的“受信任代理”。
第三步:修改 configuration.yaml 配置文件
现在我们需要修改 Hass 的核心配置文件,告诉它这个代理服务器是安全的。
找到并打开你的 configuration.yaml 文件,在文件中添加或修改以下 http 字段的内容,我这边用的是File editor插件:
http: use_x_forwarded_for: true trusted_proxies: - 192.168.1.1 # 这里填入你日志中报错提示的那个 IP 地址
注意: 如果你是在 Docker 容器中运行 Home Assistant,请确保你修改的是映射到宿主机上的那个 configuration.yaml 文件。
参数详解:
use_x_forwarded_for: true:允许 Hass 读取请求头中的原始访问者 IP,这样你就能在日志里看到谁在异地登录,而不是只看到代理服务器的 IP。
trusted_proxies:这是信任名单。如果你使用 Docker 安装 Lucky 且 IP 变动,或者未来更换了网段,按需在此列表下增加新行即可。
第四步:完全重启并测试访问
修改完代码后,不要直接断电重启,要按照官方推荐流程操作:
检查配置:前往“开发工具” -> “YAML” -> 点击“检查配置”。确保显示“配置正确”。
完全重启:点击“重新启动”,选择重新启动 Home Assistant。
重启完成后,再次使用你的公网域名或 Lucky 提供的地址访问。你会发现那个令人头疼的 400 报错已经消失,取而代之的是熟悉的登录界面。
温馨提示:如果你是在 Docker 环境下运行 Home Assistant,修改配置后请确保文件已成功保存到挂载的宿主机目录中,否则重启容器后配置可能会失效。










还没有评论,来说两句吧...