ZeroTier?何方神圣?
Connect team members from anywhere in the world on any device.
ZeroTier creates secure networks between on-premise, cloud, desktop, and mobile devices.
在任何设备上连接来自世界任何地方的团队成员。
ZeroTier 在本地、云、桌面和移动设备之间创建安全网络。

不错如果您需要跟您遍布全球的伙伴进行协同工作的话,ZEROTIER 很是适合你。如果您有在外出时访问家中nas资源的需求,却苦于没有公网IP抑或是FRP服务体验太差的话,ZEROTIER也很适合你。
价格&原理
之前单个FREE账号好像是可以添加100个设备,现在则是50个(估计是被白漂得多了把),不过50个设备也基本够用了吧。

相较于其他FRP服务需要本地映射主机跟FRP服务器建立连接,再由客户端访问FRP服务器来说,ZEROTIER会在所有设备之间建立一个虚拟局域网,每两台设备之间都是直接的进行链接(即所谓的P2P模式),而并没有经过中间的ROUTE/中转服务器。这种模式就有点像我们在公有云上经常提到的VPC/私有网络,只不过公有云上的资源可能是由同一服务器/或同一地域服务器上的虚拟化软件如VMware提供的虚拟网卡将云上资源链接起来,因此可以做到
较低的延时。而zerotier也充当了虚拟网卡这一项功能,虚拟出一个网段如(10.147.17.0/24,这个可以在zerotier的后台更改),另外一个客户端也能够加入这一网段,从而实现了访问。

通过路由跟踪可以看到是这样的。
当然你也可以选择搭建MOON中转服务器,实现两个BPG路由链路不是很有好的服务器之间的快速/低延迟访问。
这当然是后话了。
与之形成对比的是FRP服务的使用势必会占用了公有云上的特定资源,如PORT/TRAFFIC等,这也是某些FRP服务费用如此高昂的原因。

将我的设备加入虚拟局域网吧
恭喜你被成功种草了,以下内容将逐步教会你使用他。
注册一个Zerotier账号

键入你的信息并注册罢!
在完成注册以及邮箱验证后,进入
zerotier后台
https://my.zerotier.com
预配置您的虚拟局域网
在后台点击 Create A Network
成功后您可以看到一个16位的network id,将他以适当方式保存下来,这将在你后续加入网络中有用。

然后在这个网络的配置里,你也可以看到你的network id,默认网络类型为private,这样一个设备加入网络之前是需要您在web上进行授权的。另外,你也可以在IPv4 Auto-assign中选择您喜欢的网段。另外你也可以预先将某个节点同意加入网络,这样就可以免去复杂的工作。
在您的设备上安装zerotier
下载页面:https://www.zerotier.com/download/
zerotier客户端对各类系统进行了广泛的支持,您可以在包括但不限于您的Windows设备,Android手机/平板,mac,nas等上建立起一个广泛的虚拟局域网。
这里以linux为例介绍如何使用
Step1 安装
curl -s https://install.zerotier.com | sudo bash
(如果你有安装了GPG,这里提供一个更加安全的安装方式
curl -s 'https://raw.githubusercontent.com/zerotier/ZeroTierOne/master/doc/contact%40zerotier.com.gpg' | gpg --import && \
if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi

像这样就安装好了,在最后可以看到你的node id
你可以通过zerotier-cli info查看到你当前安装节点的node id
Step2 加入虚拟网络
sudo zerotier-cli join 你的16位network id
200 join OK
看到这样的提示后,回到zerotier的后台,进入你的虚拟网络,拉到members部分,确认nodeid跟你先前看的一至后,点击Auth勾选。
这样你的第一个设备就成功加入ZeroTier的虚拟局域网了!
同理,你也可以在你的其他设备上加入,这样就成功组建了一个局域网力。
用途
比如说,你需要测试你部署在docker上的服务,通常,我们的做法是nginx反代docker的端口或者直接将服务端口开放访问(当然你可以在防火墙规则限定你的ip才能访问服务),但是zerotier则为我们提供了一个新思路--在docker容器内安装zerotier,这样你在其他加入这个虚拟局域网的机器上就可以通过ip访问到你的服务了