Linux 搭建 ZeroTier 的 Moon 服务器

系统:centos 7.6

轻量云服务器:腾讯云

Moon是什么,为什么需要Moon?

ZeroTier通过自己的多个根服务器帮助我们建立虚拟的局域网,让虚拟局域网内的各台设备可以打洞直连。这些根服务器的功能有些类似于通过域名查询找到服务器地址的DNS服务器,它们被称为Planet。然而这里存在一个非常严重的问题,就是Zerotier的官方行星服务器都部署在国外,从国内访问的时候延迟很大,甚至在网络高峰期的时候都没法访问,这也会导致我们的虚拟局域网变得极不稳定,经常掉链子。

为了应对网络链接的延迟和不稳定,提高虚拟局域网的速度和可靠性,Zerotier允许我们建立自己的moon卫星中转服务器。

作为Moon服务器不需要具备太强大的CPU性能/内存空间和存储空间,虚拟机、VPS、或者云服务器甚至一个树莓派都行,当然,这台服务器需要长时间可靠在线并且具有静态IP地址(ZeroTier官网上说公网IP或者内网IP都可以,只是如果用的是内网IP的话,在外网的设备就只能依靠Planet而不能使用moon了)。

Moon服务器配置过程

TIPS:

由于ZeroTier本身使用UDP协议,因此如果存在防火墙的话,需要开放UDP,否则无法连接。
本篇内容仅介绍ZeroTier-Moon服务器的配置。

下载并安装ZeroTier:
bash 复制代码
curl -s https://install.zerotier.com/ | sudo bash

效果如上图

开始配置moon

1、进入ZeroTier的默认安装目录,生成Moon配置文件
bash 复制代码
cd /var/lib/zerotier-one
sudo zerotier-idtool initmoon identity.public > moon.json
vim moon.json

生成的配置信息如下:

bash 复制代码
{
 "id": "f9a6ed58",
 "objtype": "world",
 "roots": [
  {
   "identity": "f92ba6d58:0:1dd2a1a397f78ea3fbc8318c7bf803fd453669d5dfc8e1bb0342a53194fce05d134189e1a228ec4eff3e69be902767a091456c023dc8386c3816eb5afd9",
   "stableEndpoints": []
  }
 ],
 "signingKey": "f3525c8967690e4b5c071734188c43bf05fc975223568c634fcda1e5851d634852f76eb6b4495266277faafba403e3d1cb22b7bd8f93643438d1058841c",
 "signingKey_SECRET": "f71efe062310f696dac44ccce35e5ecb77dd36852186df917c3d26580e3f48ffca5aff392f09abc0cb2b64a92b7c6ddfa22155c82d742acad04d1a4b673b",
 "updatesMustBeSignedBy": "3525c8967690e4ee557b5c071734188c43bf05fc975223568c634fcda1e5851d634852f76eb6b4495266277faafba403e3d1cb22b7bd643438d1058841c",
 "worldType": "moon"
}

这里我们需要根据自己服务器的公网静态IP,修改stableEndpoints那一行格式如下,假设其中101.2.3.4为你的公网IP,9993是默认的端口号:

bash 复制代码
"stableEndpoints": [ "101.2.3.4/9993" ]
2、根据moon.json文件生成真正需要的签名文件.moon
复制代码
sudo zerotier-idtool genmoon moon.json

输出:

复制代码
wrote 0000009c960b9ac2.moon (signed world with timestamp 1280398410930)

执行该命令以后会在软件目录下生成一个类似000000xxxxxxxxx.moon的文件,妥善保存该文件,因为要使用moon服务器,必须在所有客户端上面都发送一个这个文件。

3、移动.moon签名文件到moons.d目录下并且重启服务
复制代码
cd /var/lib/zerotier-one
mkdir moons.d
mv 000000*.moon moons.d
service zerotier-one restart

至此,moon服务配置完成

如何使用moon

使用命令zerotier-cli orbit

bash 复制代码
# zerotier-cli orbit
sudo zerotier-cli orbit f92ba6e58 f92baed58
200 orbit OK
# zerotier-one restart
sudo service zerotier-one restart
zerotier-one stop/waiting
zerotier-one start/running, process 18347

注意:其中的'f92baed58'是服务器安装ZeroTier 生成的id

【如果我的分享能为你指引方向,那便是我最大的荣幸】

相关推荐
maosheng11468 小时前
RHCSA的第一次作业
linux·运维·服务器
wifi chicken9 小时前
Linux 端口扫描及拓展
linux·端口扫描·网络攻击
旺仔.2919 小时前
Linux 信号详解
linux·运维·网络
放飞梦想C9 小时前
CPU Cache
linux·cache
Hoshino.4110 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
恒创科技HK10 小时前
通用型云服务器与计算型云服务器:您真正需要哪些配置?
运维·服务器
吴佳浩 Alben11 小时前
GPU 生产环境实践:硬件拓扑、显存管理与完整运维体系
运维·人工智能·pytorch·语言模型·transformer·vllm
播播资源11 小时前
CentOS系统 + 宝塔面板 部署 OpenClaw源码开发版完整教程
linux·运维·centos
源远流长jerry12 小时前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip
学不完的12 小时前
Docker数据卷管理及优化
运维·docker·容器·eureka