搭建记录
更新:建议使用docker安装zerotier的Planet,使用docker安装planet很简单,坑少。MOON不需要。完成本文的操作需要云服务器。
Zerotier原理
参考链接:Zerotier 搭建私有根服务器及创建虚拟局域网完整教程
概念
- planet:核心角色,官方不允许自建私有,zerotier 的行星服务器,用于管理全球所有的 zerotier 客户端的地址信息,帮助建立客户端间的直接链接,以及在无法建立直接链接时,作为中继服务器转发设备间的流量。
- moon:官方允许自建私有,作为离客户端更近的中继服务器存在,可以使转发的效率更高。
Planet有私有实现:zerotier-planet
- 解除官方的设备连接数限制
- 提升手机客户端连接的稳定性
安装
Planet (Server)
安装私有的Planet
构建Zerotier私有根服务器(Planet),实现比MOON更稳定的内网穿透
需要有一个云服务器
私有的Planet就是平替的官网界面,云服务器防火墙需要把3443的tcp和9993的UDP开放。
1、在云服务器上ssh等方式登录,下载运行
wget https://gitee.com/opopop880/zerotier_planet/raw/master/zerotier_planet_debain.sh && chmod +x zerotier_planet_debain.sh && ./zerotier_planet_debain.sh
2、保存Planet
在下载好后,在root
权限下cd /root
能看到生成的planet
文件。保存出来,给各个client留用。
3、安装成功后,登录ztncui
- https://你的云服务器ip或者域名:3443
- 登录用户名 admin 密码默认 password
- 进入界面的,登录在最右上角。
4、进入planet界面后:
- 需要创建新网络。
- 添加成员,Moon也可以添加。
- 简易安装,设定网段,之后会自动给成员分配IP。
- 保留网络的ID
Client端
有windows端 Linuex端等。
windows端:
- 安装zerotier终端
win + R
打开services.msc
,找到zerotier
对应位置文件位置。将之前保留的planet
复制进文件夹,替换原有的planet。- 重启zerotier服务。
- 然后
Join New Network
,添加之前保留的网络ID。 - 管理员权限打开
powershell
,运行zerotier-cli listpeers
看下是否连上Planet
Linuex端
类似windows
- 到/var/lib/zerotier-one替换planet
- 重新启动zerotier
sudo systemctl restart zerotier-one
Moon
云服务器在安装planet后,不用重复安装moon
现在需要的是配置私有moon
配置私有moon
- 进入 ZeroTier 配置文件目录。
cd /var/lib/zerotier-one
- 生成 moon.json 签名文件。
zerotier-idtool initmoon identity.public >>moon.json
- 编辑 moon.json
{
"id": "0123456789",
"objtype": "world",
"roots": [
{
"identity": "xxxxxxxx:0:xxxxxxxx",
"stableEndpoints": []
}
],
"signingKey": "xxxxxxxx",
"signingKey_SECRET": "xxxxxxxx",
"updatesMustBeSignedBy": "xxxxxxxx",
"worldType": "moon"
}
找到 "stableEndpoints": []
。
添加 "IPv4地址/9993"
或者 "IPv4地址/9993"
,"IPv6地址/9993"
。
- 生成 .moon 签名文件 0000006xxxxxxxxx.moon
zerotier-idtool genmoon moon.json
mkdir /var/lib/zerotier-one/moons.d
cp 0000006xxxxxxxxx.moon moons.d/
- 重启 ZeroTier 服务
/etc/init.d/zerotier-one restart
设备连入 moon 服务器
自动配置
- 输入命令
Linux
sudo zerotier-cli orbit [moon.json 文件中的 id] [moon.json 文件中的 id]
Windows 有一点不同,需要使用管理员权限的 PowerShell 输入:
zerotier-cli orbit [moon.json 文件中的 id] [moon.json 文件中的 id]
docker-zerotier-planet
建议使用docker安装zerotier,使用docker安装planet很简单,坑少。MOON不需要。
两个环节
1、云服务器上安装私有Planet,
2、将终端加入私有Planet
参考: 1、docker-zerotier-planet 在云服务器上安装私有的planet。2、zerotier使用 将LEAF终端加入Planet。