【网络通信】【ZeroTier】ZeroTier Moon 部署

学习研究 ZeroTier 的系列文章.

本文介绍 ZeroTier Moon 的部署.
环境:
  机器 A:Notebook, Windows8
  机器 B:Desktop, Ubuntu16.04
  机器 C:Cloud Server, Ubuntu16.04, 公网 IP:1.2.3.4
通过 ZeroTier 建立虚拟局域网,在机器 C 的云服务器上部署 ZeroTier Moon,加速网络.

1. 部署 Moon 服务

  官方手册部署 Moon.

1. 1 设置 ZeroTier Node

Moon 节点可以是具有固定 IP 的公网设备,也可以是具有物理 IP 的内网设备. 如果使用内网设备,依然需要借助官方根服务器作为中间链路. 因此,这里我们在云服务器上搭建 Moon 服务,云服务器的公网 IP 为 1.2.3.4.
我使用腾讯云搭建云服务器.
在机器 C 上部署 ZeroTier Moon 首先需要安装 ZeroTier One 将其部署为为 ZeroTier Node,参考 ZeroTier 的安装与使用.

1.2 设置 Moon.json 配置文件

在机器 C 上进入 root 账户,或者 sudo 提权.
 
1.进入 ZeroTier HOME 目录:

cd /var/lib/zerotier-one/

 
2.获取 moon.json 文件:

zerotier-idtool initmoon identity.public >>moon.json

 
产生的 moon.json 文件如下:

{
  "id": "deadbeef00",
  "objtype": "world",
  "roots": [
    {
      "identity": "deadbeef00:0:34031483094...",
      "stableEndpoints": []
    }
  ],
  "signingKey": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
  "signingKey_SECRET": "ffc5dd0b2baf1c9b220d1c9cb39633f9e2151cf350a6d0e67c913f8952bafaf3671d2226388e1406e7670dc645851bf7d3643da701fd4599fedb9914c3918db3",
  "updatesMustBeSignedBy": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
  "worldType": "moon"
}

 
3.在 moon.json 文件中添加公网 IP(s),如下:

{
  "id": "deadbeef00",
  "objtype": "world",
  "roots": [
    { 
      "identity": "deadbeef00:0:34031483094...",
      "stableEndpoints": [ "1.2.3.4/9993"]    # wrrite the IPv4 or IPv6 in Square brackets, if you have IPv6
    },
    {
      "identity": "feedbeef11:0:83588158384...",
      "stableEndpoints": [ "1.2.3.5/9993","2001:abcd:abcd::3/9993" ]    # add the second root if you have
    }
  ],
  "signingKey": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
  "signingKey_SECRET": "ffc5dd0b2baf1c9b220d1c9cb39633f9e2151cf350a6d0e67c913f8952bafaf3671d2226388e1406e7670dc645851bf7d3643da701fd4599fedb9914c3918db3",
  "updatesMustBeSignedBy": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
  "worldType": "moon"
}

moon.json 文件中的 "id": "deadbeef00" 就是机器 C 的 ZeroTier Node ID.

1.3 设置 000000deadbeef00.moon 签名文件

1.修改完 moon.json 文件后,获取 000000deadbeef00.moon 签名文件:

zerotier-idtool genmoon moon.json

此时,在 /var/lib/zerotier-one/ 下产生 000000deadbeef00.moon 文件. deadbeef00 就是机器 C 的 ZeroTier Node ID.
 
2.新建 moons.d 目录,并将 000000deadbeef00.moon 文件移动到其下:

mkdir moons.d
mv 000000deadbeef00.moon moons.d

 
3.重启 ZeroTier One 服务,激活设置:

service zerotier-one restart

2. 使用 Moon 服务

要想使用 Moon 服务,还需要在机器 A 和机器 B 上添加签名文件. 有两种方式:1.手动添加;2.命令行通过 ZeroTier Root Server 添加.

2.1 手动添加签名文件

1. 在 ZeroTier One 的 HOME 目录新建 moons.d 目录, 将 1.3 小节中产生的 000000deadbeef00.moon 拷贝出来并放入 {ZeroTier_One_HOME}\moons.d 目录中.

以下是各种操作系统中 ZeroTier One 默认的 HOME 目录

  • Linux: /var/lib/zerotier-one
  • FreeBSD / OpenBSD: /var/db/zerotier-one
  • Mac: /Library/Application Support/ZeroTier/One
  • Windows: \ProgramData\ZeroTier\One (That’s for Windows 7. The base ‘shared app data’ folder might be different on different Windows versions.)

2. 然后,重启 ZeroTier One 服务,激活设置.
 
 

2.1.1 在机器 A(Windows)上添加

 
Windows 操作系统中 ZeroTier One HOME 目录为 \ProgramData\ZeroTier\One,如下图所示:
在这里插入图片描述

\Program Files (x86)\ZeroTier\One 为 ZeroTier One 图形界面与命令行界面所在目录,如下图所示:
在这里插入图片描述

1.在 \ProgramData\ZeroTier\One 下建立 moons.d 目录,并将 000000deadbeef00.moon 拷贝放入.

2.重启 ZeroTier One 服务.
win + R 打开运行
在这里插入图片描述
输入 services.msc 打开服务,选择 ZeroTier One 服务并重新启动
在这里插入图片描述
3.测试
\Program Files (x86)\ZeroTier\One 下打开 cmd,测试 MOON 节点是否添加成功

>zerotier-cli.bat listpeers

结果如下图,出现 MOON 节点则表示添加成功
在这里插入图片描述
 

2.1.2 在机器 B(Ubuntu)上添加

 
1.Ubuntu 操作系统中 ZeroTier One HOME 目录为 /var/lib/zerotier-one,建立 moons.d 目录,并将 000000deadbeef00.moon 拷贝放入.
 
2.重新启动 ZeroTier One 服务:

sudo service zerotier-one restart

3.测试:

sudo zerotier-cli listpeers

出现 MOON 标识的节点标识添加成功.

2.2 命令添加

Windows 下:

C:\Program Files (x86)\ZeroTier\One>zerotier-cli.bat orbit deadbeef00 deadbeef00    # deadbeef00 twice

重启 ZeroTier One 服务
 
Ubuntu 下:

sudo zerotier-cli orbit deadbeef00 deadbeef00    # deadbeef00 twice

重启 ZeroTier One 服务
 

  1. 命令行实际上是通过 ZeroTier 根服务器将 000000deadbeef00.moon 拷贝放入 {ZeroTier_One_HOME}/moons.d 目录中. 由于网络原因,可能会有延迟或无效的情况,重复、等待或使用手动方式.
  2. 重启 ZeroTier One 服务是非常重要的步骤,不重启 ZeroTier One 服务将无法激活设置.

3. 效果对比

未使用 Moon 服务时:延迟较高,并且经常性有丢包现象
在这里插入图片描述
使用 Moon 服务后:延迟显著降低,无经常性丢包现象
在这里插入图片描述

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
zerotier-moonZeroTier公司开发的一种虚拟化网络技术。它是ZeroTier软件中的一个关键组件,用于构建虚拟网络之间的连接和通信。在ZeroTier网络中,通常有一个或多个moon节点,它们具有特殊的角色和功能。 首先,zerotier-moon充当网络的控制中心,管理和维护整个网络中各个节点之间的连接。它拥有一个唯一的网络ID,作为网络的标识符。其他节点必须通过与moon节点连接来加入网络并获得独特的ip地址。这种连接是安全加密的,确保通信的安全性和隐私性。 其次,zerotier-moon允许在不同的地理位置和网络环境下连接和扩展ZeroTier网络。它通过利用特殊的网络隧道和代理技术,将分散的节点连接在一起,形成一个统一的虚拟网络。这为企业和个人用户带来了更大的灵活性和方便性,可以轻松实现跨地域和跨网络的通信和协作。 此外,zerotier-moon还提供流量路由和负载均衡的功能。它可以根据网络的负载情况和性能要求,智能地分配和管理网络流量,以提供最佳的传输速度和稳定性。这在需要高效网络通信的场景中非常有用,例如企业内部的分布式应用、多地点的数据中心连接等。 总的来说,zerotier-moonZeroTier虚拟化网络技术的核心组件之一,它提供了网络管理、连接扩展和流量管理等重要功能。通过使用zerotier-moon,用户可以轻松构建安全、灵活和高效的虚拟网络,满足不同场景下的通信和协作需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值