之前一直在纠结怎么实现把树莓派映射到公网上,从公网连接homeassistant,实现随时随地登录。尝试过很多方法,用过花生壳,nat123,也试过在路由器上设置内网穿透,甚至也买过阿里云弹性ECS就为了有个公网地址。
经过一段时间使用,花生壳免费版很慢,收费的有流量限制,很不方便,当然土豪大大们可以使用企业版的,绝对快
nat123免费版的很不稳定,经常掉线,我在homeassistant里设置了configurator panel,连接的是内网的一个端口,当我在外网登录的时候,打开configurator永远显示的是连接超时,很多时候连homeassistant页面也load不出来,果断被我放弃了
然后是用了路由器+阿里云弹性ECS,把内网地址映射到ECS的公网地址上,很快,非常快,但是唯一的缺点是很贵,一年大概在1200元左右,也被我果断放弃了,当然土豪大大们可以忽略。。。
最后我发现了ngrok反代,试了一下,发现10M的贷款足够,不卡,也比较稳定,在免费版里算是非常好的了,翻了翻论坛没有发现相关的帖子,就大概写一下,抛砖引玉
首先浏览器打开ngrok.cc网址,
注册账号,登录,然后你会来到下面这个界面
左边栏目最下方点击开通隧道,进入购买界面,选择右边免费的,足够用了
然后到隧道设置的界面上
对于前置域名这里要解释一下,如果没有自己的域名,可以使用ngrok的域名,那这里就需要填写前置域名,比如我现在写的myhass,那么到时候映射完了在公网的地址就是myhass.ngrok.cc,如果有自己的域名,这里可以随便写一个,开通隧道成功之后再去设置个人域名。
然后点击确认开通,再次点击确认开通
然后你就可以在左边隧道管理tab中看到你创建的隧道了
记下你的隧道ID,后面在树莓派上启动服务的时候需要用到
然后回到ngrok.cc主页上,找到客户端下载tab
点击进去,找到Linux ARM版本下载
等下载完成后打开看到里面是一个sunny的可执行文件
现在通过Samba服务把sunny文件放入homeassistant文件夹
执行:
cd /home/homeassistant/.homeassistant/
ls
看一下sunny文件是否存在
如果存在,执行
sudo ./sunny clientid 隧道id
隧道ID就是上面图中管理后台中的隧道ID
看到上面那样的返回就说明连接该隧道成功,打开浏览器输入myhass.ngrok.cc就可以看到自己的hass了
如果需要启动多条隧道把多条隧道id使用英文逗号隔开就可以了
sudo ./sunny clientid c7fb2defb4081919,3e23d14f040b2b12
如果要设置个人域名,在隧道管理界面点击隧道条目最右边的编辑,进入下面界面
在域名类型选择自定义域名
然后在自定义域名里写入自己的域名
记得在自己域名的服务商那里加一条CNAME记录
解析到server.ngrok.cc
重新保存,重启服务,打完收工
============================================
不敢在各位大神面前班门弄斧,只是分享一下自己的设置经过,抛砖引玉抛砖引玉,有任何不对的地方,欢迎指正。
|