Zerotier Moon 节点搭建及自定义端口小记

前言

首先阐明目标,即搭建 Zerotier Moon 节点并自定义服务端口。

步骤

1. 安装 Zerotier One

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

2. 加入虚拟网络

1
zerotier-cli join <network-id>

3. 配置 Moon 服务

进入 Zerotier One 安装目录:

1
cd /var/lib/zerotier-one

生成 moon.json 配置文件:

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

修改刚刚生成的 moon.json 配置文件,将其中的 "stableEndpoints": [] 替换为 "stableEndpoints": ["服务器公网地址/9993"]。然后使用下面命令,生成 .moon 文件。

1
zerotier-idtool genmoon moon.json

将刚刚生成的 000000xxxxxxxxxx.moon 移动到 moons.d 目录(没有的话新建一下,完整路径为 /var/lib/zerotier-one/moons.d)。

1
mv 000000xxxxxxxxxx.moon moons.d

然后使用如下命令重启 zerotier-one 服务:

1
systemctl restart zerotier-one

如果不需要自定义端口(即使用默认的9993),那么 Moon 节点搭建部分就到此结束了。

  • .moon 配置文件的名一般为 10 个前导零 + 本机的节点 ID。
  • 9993 是 Zerotier Moon 的默认端口。
  • 注意在防火墙设置中放行 9993 端口 UDP。

自定义端口

完成上面安装步骤后,如果需要自定义 Moon 端口,需要两个步骤。

首先,编辑 /var/lib/zerotier-one/local.conf 文件,将其中的 primaryPort 设置为你想要绑定的端口。

1
2
3
4
5
6
{
    "settings":
    {
        "primaryPort": 9994
    }
}

之后,编辑 /var/lib/zerotier-one/moon.json 文件,替换其中配置项 "stableEndpoints": ["服务器公网地址/9993"] 中的 9993 为你需要的端口(上面配置中为9994)。

修改完成之后,使用下面命令生成新的 .moon 文件。

1
zerotier-idtool genmoon moon.json

将刚刚生成的 000000xxxxxxxxxx.moon 移动到 moons.d 目录。

1
mv 000000xxxxxxxxxx.moon moons.d

然后重启 zerotier-one 服务:

1
systemctl restart zerotier-one

自定义端口的配置就到此结束了,自定义端口核心是需要编辑 local.conf 文件添加对自定义端口的配置

  • 注意在防火墙设置中放行您自定义端口的 UDP,例如使用上文中的配置,需要放行的就是 9994 的 UDP。

番外

关于放行端口,已知有人声称应同时放行 TCP 与 UDP,但经过简单测试只放行 UDP 似乎也没问题。如果在使用中遇到问题,不妨试着将 TCP 也放行以后再次测试。

参考资料

Licensed under CC BY-NC-SA 4.0