homeassistant内网穿透远程访问,以及证书配置

homeassistant内网穿透和Nginx证书配置

距离上一期的homeassistant的文章已经过去很久了,这次补充上次留下的远程访问相关问题



前言

首先要想实现远程访问让我们看看需要哪些条件

  1. 公网(可以是服务器,也可以是家庭的公网IP) 好像有这个就能搞定了
  2. 如果要配置HTTPS证书最好还是得有服务器,如果实在不想买服务器,那么可以考虑软路由,例如:低功耗的工控机,或者拿出你不用的笔记本刷个openwrt系统或者其它系统,总之就是替代服务器来实现穿透本地的HA

一、如何获取公网IP?

  • 家庭宽带:这个放在现在家宽可能有点麻烦,因为IPV4枯竭的原因,很难像之前一个电话就能拿到了,现在应该是要支付费用才能给你个动态的IP,但是IPV6应该能拿到的,如果能拿到IPV6也是可以的,不过现在IPV6的访问还是没有IPV4方便,纯IPV6必须要你的网络支持IPV6
  • 云服务器:这个就很多了,国内很多云服务器的厂商,购买一台就可以拥有公网IP了,这个其实也是最省事的方案
  • stun打洞也可以获取到IP,这个也挺不错的,缺点就是不能固定端口,这个就不在这里展开说了,想了解这个可以si信我

二、如何实现在公网访问(有公网的前提下)

1.如果使用的是openwrt、istore的软路由系统(我这里以openwrt为例)

  • 我这里是软路由拨号的,所以我的IP可以在网络>接口这里找到,如果是在路由器拨号,那就去路由器找好了在这里插入图片描述
  • 要去防火墙转发一下来自wan口的端口,就是将公网的端口通过转发 转发到你的HA的服务上面
    在这里插入图片描述
    -这里设置好了,通过你公网IP+外部端口就可以远程访问你的HA的服务了

2.内网穿透(我这里使用frpc)

  • frpc分为一个server端和一个client端,server端放在云服务器上,client装在软路由上(或者自己本地的服务器上)下载地址
  • 关于frpc的配置,在下载解压完成之后会有一个frpc.ini(客户端)和一个frps.ini(服务端)的文件,各个端配置对应的文件就好
frps.ini

[common]
bind_port = 绑定端口 默认7000
dashboard_port = 面板端口
dashboard_user = 面板用户
dashboard_pwd = 面板密码
vhost_http_port = http服务端口(自己设置就好了)
token = 访问凭证 这个配置了 客户端也需要设置

frpc.ini

[common]
server_addr = 云服务器地址
server_port = 7000(bind_port地址)
token = 客户端token
[服务名字]
type = tcp
local_ip = 192.168.1.2  # 本地ha服务的ip
local_port = 8123 # ha端口
remote_port = xxxx

通过以上的配置应该就能通过云服务器的IP+remote_port端口访问到HA的服务了

3.域名配置

  • 如果用的是软路由系统可以通过类似Dnspod、阿里云等一些ddns解析将动态IP解析到域名上,这样就能直接通过域名直接访问了,就不用担心每次IP的变动
  • 配置https最简单的方式我觉得就是使用Nginx啦,这个Nginx说难也不难,说简单也确实不简单,本文就只说如何配置HA使用https访问,有很多小伙伴可能只配置了 loation / ,其实HA还得配上websocket的代理才能正常使用,下面我给到我的一个配置
server {
      listen 443 ssl;
      # listen [::]:443 ssl;  这个是IPV6的监听
      server_name 域名;

      index index.html index.htm;
      ssl_certificate      证书公钥;
      ssl_certificate_key  私钥;

      ssl_session_cache    shared:SSL:1m;
      ssl_session_timeout  5m;

      ssl_ciphers  HIGH:!aNULL:!MD5;

      location / {
        proxy_set_header HOST 域名;
        proxy_pass 穿透地址,如果是本地就是本地的ha服务地址;
      }

      location /api/websocket {
        proxy_http_version    1.1;
        proxy_set_header      Upgrade "websocket";
        proxy_set_header      Connection "Upgrade";
        proxy_read_timeout    86400;
        proxy_set_header HOST 域名;
        proxy_pass 穿透地址,如果是本地就是本地的ha服务地址/api/websocket;

   }

}

三、总结

以上就是对之前HA内网穿透的补充,欢迎大家一起指点学习,如果有问题可以评论或者私信,看到会回复,动动小手收藏点赞吧~~~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tuple-Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值