
前期在《极空间部署Tailscale实现没有公网IP也能外网访问》一文中介绍了很多内网穿透的玩法,Tailscale作为常用环境下的个人自用是一种不错的方式,但是不适合更换环境、访问也比较麻烦。这里以Homeassistant内网穿透为例,再介绍另外一种个人比较常用的方式Cpolar,结合docker部署,实现在外轻松访问内网。
访问cpolar官网,注册一个账号,然后下载并安装客户端,具体安装教程可以参考官网文档教程。
windows系统。在cpolar官网下载安装包后,双击安装包一路默认安装即可。
Linux系统。cpolar支持一键自动安装脚本。
macOS系统。可通过homebrew安装。
在Docker中搜索并下载镜像probezy/cpolar。


设置目录映射,不设置则默认真实路径。
...docker/Cpolar=/usr/local/etc/cpolar

设置网络,修改为host。

• 点击应用,部署成功。
cpolar安装成功后,在浏览器上访问本地9200端口,访问cpolar web UI管理界面【http://localhost:9200】,使用cpolar账号登录。
点击左侧仪表盘的【隧道管理】-【创建隧道】,创建一个http隧道,指向8123端口 ,即Home Assistant的端口。
隧道名称:可自定义命名,注意不要与已有的隧道名称重复
协议:选择http
本地地址:home assistant 局域网ip+端口
域名类型:免费选择随机域名
地区:选择China vip
点击创建。

隧道创建成功后,点击左侧的【状态】-【在线隧道列表】,查看所生成的公网地址,然后复制地址。
以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。
登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称。
登录cpolar web UI管理界面,点击左侧仪表盘的【隧道管理】-【隧道列表】,找到所要配置的Home Assistant隧道,点击右侧的编辑,修改隧道信息,将保留成功的二级子域名配置到隧道中。
域名类型:选择二级子域名
Sub Domain:填写保留成功的二级子域名
点击更新
更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了保留过的二级子域名名称,将其复制下来,即可通过浏览器访问。

【参考原文】https://mp.weixin.qq.com/s/SMoXTmk9p2kNPesrKpkF_A