Forest
Zerotier 部署笔记

Zerotier 部署笔记

一、ZT 根服务配置

  1. ZT 安装 & 加入一个 “网络” 用于生成必要的身份“标识文件”
    文件生成后,就可以断开服务器加入的网络,从 ZT 官方删除对应网络(必须注意先后顺序)。
  2. 根据官方文档方法,根据 identity.public 生成 moon.json 文件
    zerotier-idtool initmoon identity.public >>moon.json
  3. 配置 moon.json 文件中根节点 Moon 的网络地址参数 stableEndpoints
    {
        ...
        "roots": [
        {
            "identity": "deadbeef00:0:34031483094...",
            "stableEndpoints": []
        }
        ],
        ...
    }
    
    ************************如下,填写根节点的公网IP地址********************
    IPV4地址和IPV6地址,二者填其一即可
    {
        ...
        "roots": [
        {
            "identity": "deadbeef00:0:34031483094...",
            "stableEndpoints": [ "10.0.0.2/9993","2001:abcd:abcd::1/9993" ]
                                   IPV4地址/端口        IPV6地址/端口
        }
        ],
        ...
    }
    
  4. 根据 moon.json 文件生成根节点网络信息文件 .moon ,用于客户端节点在网络中找到根节点 Moon 的网络位置。
    zerotier-idtool genmoon moon.json
  5. 将上一步生成的 .moon 文件放到需要加入网络的计算机 star 的对应位置。
    需要在对应位置新建 moons.d 目录,并把文件放进去:
    • windows 系统: C:\ProgramData\ZeroTier\One\moons.d
    • linux 系统: /var/lib/ZeroTier-One/moons.d
  6. 在根节点 Moon 上创建网络,并配置网络名称、网络地址池、网段信息、自动分配IP地址,然后等待客户端节点的加入并授权即可。

二、根服务控制器部署

ztncui

该服务依赖于开源项目 ztncui ,该项目有控制器管理用户认证、网络的增删改、网络成员授权及成员 IP 管理等功能。

  1. Node 运行环境
    最好是要部署完整的 C++ 编译环境,因为 ztncui 项目初始化时,需要一些编译工作,所以很重要。
  2. ztncui 部署
    • 克隆或下载 ztncui 项目源代码
    • 进入 src 目录进行项目初始化
    • npm start 运行
      提醒:尽量要保证,项目解压后,一次性初始化成功,不然可能有坑!!!!我是本地电脑初始化后,打包后再放服务器上部署的。
  3. 配置根据项目说明在 src 目录下新建 .env 文件,并逐一配置需要的环境变量值
    找到 Zerotier-one 的验证文件 `authtoken.secret` 并将里面的内容给到该变量作为变量值
    ZT_TOKEN=######################## : 
    
    根节点地址和对应端口
    [ZT_ADDR=localhost:9993]
    
    环境
    NODE_ENV=production
    
    控制器页面访问端口
    [HTTP_PORT=3000]
  4. src 目录下的 etc 目录中有一个 default.passwd 文件,需要复制并改名为 passwd
    提醒:需要删除 default.passwd ,当忘记用户密码后,可以重新覆盖 passwd 用于恢复默认密码。
  5. npm start 启动控制器,然后到浏览器访问网址 http://localhost:3000,登录账号密码分别为:admin、password,首次登陆需要修改密码。

结束,只要修改密码后能正常登录,且页面没有 ERROR 等错误信息即代表成功!此时,恭喜你拥有了自己的根(Moon)服务器。