办公室新入手一台mini主机,想着配置配置环境方便,在家偶尔也有访问的需求,临时部署内网穿透。按照以往的经验,部署frp服务,指定端口转发,需要一台公网的服务器,连接的质量取决于公网服务器的宽带质量。折腾一点新鲜的Zerotier虚拟机局域网,类似于VPN,本地新建虚拟网卡,所有的机器都加入到一个虚拟网络中。

什么是 Zerotier

ZeroTier是一种软件定义的广域网络(SD-WAN)解决方案,它允许用户在不同地理位置的设备之间创建安全的虚拟网络。通过ZeroTier,您可以轻松地将多台计算机、服务器和设备连接到一个虚拟的、加密的网络中,就好像它们在同一局域网中一样。这可以帮助程序员和IT专业人员在不同地点之间安全地共享数据和资源,而无需复杂的网络设置和VPN配置。

  1. Zerotier网络:Zerotier网络是一个虚拟的、全球性的局域网络,允许不同设备通过互联网连接在一起,就好像它们在同一个物理网络上一样。这个网络可以包含多个子网,所有设备都通过Zerotier的技术连接在一起。

  2. 行星服务器:行星服务器是Zerotier网络的关键组件之一。它是全球性的,负责维护和管理整个Zerotier网络的拓扑结构、路由信息和网络状态。行星服务器起到全局的网络控制中心作用,但不直接传输数据。用户的设备需要连接至少一个行星服务器来参与Zerotier网络。

  3. 中转服务器:中转服务器是Zerotier网络中的辅助节点,用于帮助设备之间建立直接通信通道。当设备之间无法直接连接时,它们可以通过中转服务器来传输数据。这有助于提高网络的可达性和性能。中转服务器通常位于全球各地,充当数据传输的中转点。

总的来说,Zerotier通过行星服务器和中转服务器的协助,使设备能够在全球范围内创建虚拟的局域网络,实现安全、快速的设备之间通信。行星服务器负责全局网络管理,而中转服务器则帮助设备在需要时建立通信连接。

安装部署

  1. 访问 ZeroTier 官方网站(https://www.zerotier.com/)以获取安装文件和文档。
  2. 根据您的操作系统下载和安装ZeroTier One客户端。支持Windows、macOS、Linux和许多其他平台。
  3. 安装完成后,启动ZeroTier One客户端。
  4. 注册一个ZeroTier账户,如果您还没有账户的话。您可以在客户端中创建一个账户。
  5. 登录您的ZeroTier账户并创建一个新的网络。网络将会有一个唯一的16位ID,您需要记住它。
  6. 在您的设备上加入这个网络。您可以在客户端中输入网络ID或使用QR码扫描功能。
  7. 安装并配置ZeroTier客户端的设备将会被添加到同一虚拟网络中。这些设备之间现在可以直接通信,就好像它们在同一局域网中一样。
  8. 您可以在ZeroTier的控制面板中管理网络设置、添加设备和监视网络流量等。

安装部署 moon

国内运营商很多都禁止了UDP打洞,frp服务稳定,由于走的tcp协议,Zerotier部署中转服务器也能实现类似的效果,防火墙需要开放udp 9993

curl -s https://install.zerotier.com/ | sudo bash

检查安装是否成功

zerotier-cli info

加入到局域网

zerotier-cli join network-id

创建 moon

cd /var/lib/zerotier-one && sudo zerotier-idtool initmoon identity.public > moon.json

编辑配置文件,调整stableEndpoints节点,“服务器公网ip/9993”

生成签名配置,创建moons.d文件夹,前面文件文件移动到此,重启服务

sudo zerotier-idtool genmoon moon.json
mkdir moons.d && mv 000000eb444ec0d8.moon moons.d/
systemctl restart zerotier-one.service

客户端节点加入 moon 服务器, id 取自前面 json 配置文件中的 id 字段

zerotier-cli.bat orbit ztaddr ztaddr
# 观察是否出现新的 mooon 节点,id 和信息为服务器配置的相同
[root@idv-36f9d5 ~]# zerotier-cli listpeers
200 listpeers <ztaddr> <path> <latency> <version> <role>
200 listpeers 0cccb***** 35.236.*.*/64393;110;10726 327 1.6.3 LEAF
200 listpeers 3a46f***** 185.180.*.*/9993;110;757 -1 - PLANET
200 listpeers 3ed7c***** 39.97.*.*/9993;172;79 32 1.6.3 MOON
200 listpeers 4f838***** - -1 - LEAF
200 listpeers 62f86***** 50.7.*.*/9993;110;4796 351 - PLANET
200 listpeers 778cd***** 103.195.*.*/9993;5148;4887 253 - PLANET
200 listpeers 992fc***** 195.181.*.*/9993;10161;4921 226 - PLANET
200 listpeers 9d2b5***** - -1 - LEAF

windows 平台通过管理员权限启动终端,通过 zerotier-cli.bat 命令行操作,Linux 平台通过 zerotier-cli 操作;peers 子命令查看连接、listpeers查看所有节点,能正常展示 moon 节点表示加入成功

如何卸载

Windows平台如何卸载不再赘述,常规操作,通过控制面板卸载即可,我们重点说下ubuntu

  1. 通过dpkg删除zerotier-one服务
sudo dpkg -P zerotier-one
  1. 删除zerotier-one文件夹,该文件夹存储了address地址,删除后再次安装会获得新的address地址
sudo rm -rf /var/lib/zerotier-one/

后记

原本都是已经卸载了,服务器到了,没有合适的服务作为代理节点,阿里云搞业绩,提供了开发特供服务器,配置不高,99一年,价格实惠,弄了两年。看中的就是服务器提供的带宽。

参考资料