homeassistant内网穿透和Nginx证书配置
距离上一期的homeassistant的文章已经过去很久了,这次补充上次留下的远程访问相关问题
文章目录
前言
首先要想实现远程访问让我们看看需要哪些条件
- 公网(可以是服务器,也可以是家庭的公网IP) 好像有这个就能搞定了
- 如果要配置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内网穿透的补充,欢迎大家一起指点学习,如果有问题可以评论或者私信,看到会回复,动动小手收藏点赞吧~~~