家里有Home Assistant有NAS,经常会有需要在外访问内部设备的需求。
而多年前申请的公网IPv4地址也随着时间的推移被收了回去。
如果在外访问家里的资源便成了一个挑战。网上有一堆的工具不是因为不稳定,就是要收费,对于我们这种白嫖党来说,既要免费,又要稳定才是王道。
偶尔间便发现了ZeroTier,再配合家里的OpenWrt,发现这是一个绝佳利器,无时无刻可以访问家里内部资源,甚至安全性上来说比内部资源暴露在公网上更佳。
当然,第一步永远是打开网页https://my.zerotier.com/注册帐号 这里不赘述了,你也可以选择用Google, GitHub, Microsoft 单点登录来跳过注册这个环节
这里面要说一下,免费账户是有限制的,共可以加入25个设备终端,对于普通用户来说绰绰有余。如果家里路由器是OpenWrt,全家的设备只要装一个终端就可以了。
登录之后最主要的就是新建网络,也相当简单,点一下Create A Network就建好了,其中这个Network ID是非常关键的,后面的组网都是通过这个ID的
建完网络,主要的配置关键点如下图:
在Access Control里
Private:任何终端加入都要进这个后台人工批准了这个设备才可以加入
Public:知道你Network ID的人就可以加入
如果你家里的信息还是有一定保密性的,还是建议用Private,这样可以更好的做到万一Network ID泄露了又得重新建网络才可以恢复安全性
IP地址配置保持默认就可以使用,并且默认路由也给你加好了(除非和家里的网段冲突了):
网络配置好之后,当然是在路由器端加入网络,目前ZeroTier已经在官方源里面,可以通过命令直接安装。
opkg install zerotier/etc/init.d/zerotier enable #保持开机启动/etc/init.d/zerotier start
然后就可以开始加入网络了
你要简单,可以去Github找luci-app-zerotier,装了这个之后就可以图形化了,但这个是一次性的事,我就直接用命令了
zerotier-cli info #确保服务启动成功的,返回200就是正常的zerotier-cli join network ID #替换成你的network ID
引用两个说明文档地址,可能对你进阶使用有帮助
https://docs.zerotier.com/openwrt/
https://openwrt.org/docs/guide-user/services/vpn/zerotier
到这里基本上加入就完成了
zerotier-cli peers #也可以通过这个命令检测连接状态
为了可以内网穿透做防火墙规则,我们还登录路由器管理页面添加一个接口,仅管这个ZeroTier在ifconfig里已经可以看到接口状态,但是在图形化还是有不行,这对图形化做防火墙规则非常不友好
Device一定要绑定你你新出现的看起来很奇怪的这个接口
如果不确定是哪一个,可以在终端里运行下面这个命令确认
zerotier-cli listnetworks
然后再在防火墙这里确保数据可以在不同的zone之间互相流转,一定要添加一个ZeroTier的接口并允许进,出,转发才可以
目前支持的系统客户端基本上涵盖了我们常见的设备类型,如果家里没有OpenWrt,用NAS也是一个不错的选择
手机端就不说了,找ZeroTier One 这个客户端下载安装就行了,都不用登录,直接加入网络就可以组网成功。
文章来源: 微信公众号-老王杂谈说,原始发表时间:2024年10月13日。