一、两种穿透服务
1、molohub
一种是论坛提供的molohub,但是可能因为自己这边的网络原因在配置过程中一直无法连接到服务器,无法绑定github,因此放弃molohub的方法。如下图所示。molohub教程如下,不再赘述。
molohub的Github教程网址
2、ddnsto
DDNSTO 是一款提供内网穿透功能的在线服务,支持多种设备(梅林、LEDE、OpenWrt、群晖、威联通、Unraid、爱快、老毛子 Padavan、ReadyNAS),多种安装方式(脚本安装、Docker),设置简单(官方说法:小白也能 10 秒上手),提供 4M 带宽,免维护解决内网穿透功能。详情介绍点击这
二、针对HA OS的安装教程
我们这里的HA是从某宝上购买的HA树莓派一体机,省去自己从头下载HA的繁杂流程。但是在后续开发中还是遇到很多问题。
1、获取DDNSTO的Token
注册ddnsto账号
微信扫码登录后,进入下面界面
点击复制自己的令牌,稍后会用到。
2、安装DDNSTO
官网中列举了不同固件的安装方法,这里就需要确认自己的HA属于哪一类,然后根据教程来即可。如果也是某宝买的,要注意HA侧边栏的终端仅仅是单纯的用来控制HA中的功能,只能使用ha命令行,无法通过docker安装想要的东西,如下图。这里我用的是dokcer方式安装ddnsto。
HA内没有进入操作系统的方式(花了很长时间苦苦寻求无果),这里需要在启动自己的树莓派HA后,进入以下网址
homeassistant.local:7681
进入以后就能够拥有root权限,进行docker容器的安装了
大部分人只需要复制粘贴下面的命令,其中的Token就是上面复制的令牌,即TOKEN=xxxxxxxxxx,xxxx替换为自己复制的令牌。
docker run -it -d --restart=always --name=ddnsto -e TOKEN=xxxxxxxxxxxxxxxxxxxxx -e DEVICE_IDX=0 -v /etc/localtime:/etc/localtime:ro -e PUID=0 -e PGID=0 linkease/ddnsto
可能部分人的设备id不一样,参照以下代码
docker run -d \
--name=ddnsto \
--network host \
-e TOKEN=<填入你的token> \
-e DEVICE_IDX=<默认0,如果设备ID重复则为1-100之间> \
-v /etc/localtime:/etc/localtime:ro \
-e PUID=<uid for user> \
-e PGID=<gid for user> \
linkease/ddnsto
-
<填入你的token>: 填写从ddnsto控制台拿到的 token。
-
DEVICE_IDX: 默认0,如果设备ID重复则改为1-100之间。
-
PUID/PGID:获取方式如图:终端输入id即可。
-
Docker在某些Linux发行版,可能要加上“sudo”前缀才能运行,按提示输入Linux的密码,命令如下:(Docker里面的网关设置,不能为路由器的网关,保证 Docker 里面有网络才能访问 ddnsto 服务器。)
sudo docker run -d \
--name=ddnsto \
--network host \
-e TOKEN=abcdefg-8888-8888-1111-abcdefghijk \
-e DEVICE_IDX=0 \
-v /etc/localtime:/etc/localtime:ro \
-e PUID=0 \
-e PGID=0 \
linkease/ddnsto
第一次如果安装不上就是访问不了外网的原因,需要自己去修改docker 的镜像,清华镜像等都可,请自行百度。还有一个关键是设置ddnsto容器自启动,避免每次运行要自己手动开启,很麻烦。containerID改成自己的ddnsto容器ID即可。代码详细意思百度一下就有了。
docker update --restart=no containerID
3、确认安装成功
安装成功后如图所示
第二行显示的就是安装成功的ddnsto容器ID。然后利用下面代码对比查看安装的容器是否正在运行
docker ps
回到刚刚的DDNSTO控制后台,进行相关配置。未显示设备就刷新以下。
点击添加HA的相关信息
-
主域名自定义,比如myhome,自由发挥。
-
目标主机地址就是自己的Homeassistant地址,从HA的终端/Terminal可以看到自己的HA IP地址(下图)。目标主机地址是:你的IP:8123。比如
http://192.168.11.11:8123
.8123不变,变得是IP地址,切记! -
备注信息随便备注
以上就是你的HA域名了。
4、外网访问域名登录
1、浏览器域名登录
2、下载app绑定验证DDNSTO
验证方式有2种:
A.登录ddnsto官网,访问控制台,微信扫码登录。
PS:这是最原始的方法,如果是纯手机端操作,很不方便,那么就说到第二种方法了。
B.易有云APP——验证DDNSTO。下载地址
打开易有云APP——我的,能看到“验证DDNSTO”即可。
1.登录到DDNSTO控制台,登录后点击右上角用户头像,选择“个人资料——易有云绑定——立即绑定”,会出现一个二维码界面;
2.打开“易有云APP——我的”,右上角二维码扫码,会提示绑定成功,然后点击“验证DDNSTO”,会提示已经绑定的账号和当前的IP;
完成以上操作后就能够随时随地外网访问了。over