Linux部署ZeroTier Moon节点

前言

ZeroTier是一个虚拟网络系统,可以让你在本地网络中建立虚拟局域网,并且可以连接到其他的局域网。

其主要有三部分组成:行星服务器Planet、月亮服务器Moon、客户端节点LEFA。

但是对于国内而言,由于其官方节点都位于海外,实际使用起来延迟会较高,这时候就需要部署MOON节点以加快转发和P2P的速度。

本文将介绍最近在Linux上部署Moon节点的一次经历。

准备工作

1. 配置ZeroTier网络

首先,你需要注册一个ZeroTier账号,并在管理页创建一个网络。

接着需要配置网络属性,主要是设置网段和是否公开(设为Private的话,别人在得到网络代码加入后,还需要你在管理页勾选Auth才能加入)。

2. 安装ZeroTier One客户端

其次,你需要一台运行Linux的服务器,并安装ZeroTier One客户端。

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

配置Moon节点

如果服务器有防火墙(运营商防火墙和机器防火墙都需要操作),请在防火墙放行9993端口。

1. 加入ZeroTier网络

1
sudo zerotier-cli join <你的Network ID>

如果网络为Private,加入后还需要在ZeroTier管理页面勾选Auth,否则无法加入网络。

2. 生成Moon配置文件

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

3. 编辑Moon配置文件

1
sudo vi moon.json

配置文件中可以看到当前服务器的ID,后面会用到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"id": "xxxxxxxxxx",
"objtype": "world",
"roots": [
{
"identity": "xxxxxxxxxx:xxxxxxxxxx",
"stableEndpoints": ["你的公网IP/9993"]
}
],
"signingKey": "xxxxxxxxxx",
"signingKey_SECRET": "xxxxxxxxxx",
"updatesMustBeSignedBy": "xxxxxxxxxx",
"worldType": "moon"
}

4. 生成签名

1
sudo zerotier-idtool genmoon moon.json

5. 配置 moons.d 目录

此处的*******.moon是你刚才生成的签名文件名,也就是服务器的ID。

1
2
mkdir moons.d
mv *******.moon moons.d/

6. 启动ZeroTier服务

1
2
sudo systemctl enable zerotier-one
sudo systemctl restart zerotier-one

验证Moon节点

1. 加入Moon节点

Windows直接管理员模式打开Powershell,输入以下命令加入Moon节点:

1
zerotier-cli orbit <Moon节点服务器ID> <Moon节点服务器ID>

2. 验证Moon节点

继续在Powershell中输入以下命令查看Moon节点状态:

1
zerotier-cli listpeers

看到存在Moon节点的ID,说明Moon节点加入成功。

1
200 listpeers 服务器ID 服务器IP/9993;4452;1476 17 1.14.2 MOON

至此,Linux部署ZeroTier Moon节点完成。

结语

通过部署自己的ZeroTier Moon节点,你可以显著改善虚拟网络的连接质量和稳定性。这对于需要跨地域组网或官方服务器连接不畅的情况尤其有用。

相比于自建Planet节点,Moon节点的操作简单,维护成本低,是提升ZeroTier使用体验的经济有效方案。