ZeroTier创建Moon节点

前言

折腾过内网穿透的玩家,ngrok、frp 都应该不陌生了,自己搭也好,用别人提供的免费服务也好,配置过程都显得有些繁琐。

有幸了解到 ZeroTier 的存在,使用起来真是非常方便,可以很轻松的将自己的电子设备加入同一个局域网,但由于其根服务器在国外,导致前期建立链接时访问速度较慢,好在 ZeroTier 也提供了加速方法,就是创建自己的根服务器,也就是 Moon 节点。

ZeroTier

ZeroTier 用户手册

ZeroTier is a smart Ethernet switch for planet Earth.

It’s a distributed network hypervisor built atop a cryptographically secure global peer to peer network. It provides advanced network virtualization and management capabilities on par with an enterprise SDN switch, but across both local and wide area networks and connecting almost any kind of app or device.

大白话:ZeroTier 组建了一个虚拟局域网。

创建 Moon 节点

官方指引:4.4. Creating Your Own Roots (a.k.a. Moons)

前提

The first step in creating a moon is to deploy a set of root servers. In most cases we recommend two. These are regular ZeroTier nodes, but ones that are always on and have static (physical) IP addresses. These static IPs could be global Internet IPs or physical intranet IPs that are only reachable internally. In the latter case your moon’s roots won’t work outside your office, but that doesn’t matter. Roaming nodes will just use planetary roots instead.

按照官方的意思,我们得有一个云服务器(常开且有固定的公网 IP),例如,我就有一台腾讯云的云服务器,这就符合条件了,我用的操作系统是 CentOS 7.6 64位

配置 Moon 节点(Linux)

插播广告:用宝塔面板进行以下操作,简单高效,没开玩笑。ennnnnn,话说在后记中,有更详细的广告。

  1. 登录云服务器,安装 ZeroTier,官方提供了简便的命令
1
curl -s https://install.zerotier.com | sudo bash
  1. 使用 zerotier-idtool 生成 Moon 配置文件
1
2
cd /var/lib/zerotier-one
sudo zerotier-idtool initmoon identity.public > moon.json
  1. 编辑 moon.json,你可以用 vim 或其他方式,在 stableEndpoints 里添加你云服务器的公网 IP,例如 119.29.29.29 ,端口号默认为 9993
1
vim moon.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"id": "deadbeef00",
"objtype": "world",
"roots": [
{
"identity": "deadbeef00:0:34031483094...",
"stableEndpoints": []
}
],
"signingKey": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
"signingKey_SECRET": "ffc5dd0b2baf1c9b220d1c9cb39633f9e2151cf350a6d0e67c913f8952bafaf3671d2226388e1406e7670dc645851bf7d3643da701fd4599fedb9914c3918db3",
"updatesMustBeSignedBy": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
"worldType": "moon"
}
1
"stableEndpoints": [ "119.29.29.29/9993" ]
  1. 生成 Moon 文件,执行命令后,会在 /var/lib/zerotier-one 目录下生成一个 0 开头的 .moon 的文件,例如 000000096a34c024.moon
1
sudo zerotier-idtool genmoon moon.json
  1. 创建 moons.d 文件夹,并将 .moon 文件移入该文件夹内
1
2
mkdir moons.d
mv 000000096a34c024.moon moons.d/
  1. 重启 zerotier-one 服务,或者直接重启云服务器,就完成配置了
1
service zerotier-one restart

使用 Moon 节点(Win 10 )

配置 Moon 节点

  1. 将云服务器中生成的 .moon 文件下载出来,例如用宝塔面板进行下载
  1. 进入 C:\ProgramData\ZeroTier\One\ 目录,同样创建 moons.d 文件夹,并将 .moon 文件移入该文件夹内
  1. 打开任务管理器,重启 ZeroTierOneService 服务

测试 Moon 节点

用管理员身份启动 CMD 或 Powershell,执行命令,如何有出现你的 Moon 节点,就成功了。

1
zerotier-cli listpeers

后记

此文参考了官方用户手册,以及知乎 Doitky 的文章——云服务器配置 ZeroTier one Moon 节点

另外,推广一下 宝塔面板

宝塔 Linux 面板是提升运维效率的服务器管理软件,支持一键 LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA 等 100 多项服务器管理功能。

有 20 个人的专业团队研发及维护,经过 200 多个版本的迭代,功能全,少出错且足够安全,已获得全球百万用户认可安装。运维要高效,装宝塔。

宝塔服务器面板,一键全能部署及管理,送你 3188 元礼包,点我领取

没注册过的朋友,点击上面的链接注册,你有礼包,我有返利,何乐而不为呢?