Skip to content

ZeroTier - 异地组网,内网穿透利器

发表: at 02:00

家里有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日。


上篇文章
GitHub上的这个项目让你拥有全网所有编程类中文书籍,太实用了
下篇文章
打造一个全开源的开发环境