当前位置:   article > 正文

zerotier自建planet

zerotier自建planet

ZeroTier 是一个由 C++ 开发的软交换机,可以让多台内网机器组成一个私有的局域网。ZeroTier 的节点分为三类:

  • Planet Server: 官方的根服务器,用于记录和配置每个局域网下客户端信息(以下简称 Planet);
  • Moon Server: 官方推荐的私有 Planet Server 的部署方法,在默认 Planet 无法访问的时候承担 Planet 的作用(以下简称 Moon);
  • Leaf: 局域网中既不是 Planet 也不是 Moon 的其他客户端。

目录

准备:

zerotier-one安装和生成planet文件

1.安装编译环境

2.安装zerotier-one

3.查看认证信息

4.下载zerotier-one源码

5.进入源码目录

6.编译

7.替换planet

ztncui安装

1 下载ztncui并安装

2 配置ztncui

3.查看ztncui是否运行正常

4. 访问控制面板

5.创建一个网络

 客户端加入网络

1.linux

1.1先安装zerotier-one

1.2 替换planet文件

1.3 重启服务

1.4 加入网络

1.5 在控制面板授权后,查看

2 macos

2.1 替换planet文件

2.2 替换完成后重启服务

2.3 重启完成后,加入网络

3 windwos

3.1 替换planet文件

3.2 重启服务

3.3 加入网络

问题

如果在替换planet后重启服务,加入网络,控制面板刷新没有该节点申请信息

1.原因可能是你的planet文件使用错误,或者没有替换planet文件

2.有可能是你的zerotier服务没有重启


准备:

需要一台公网ip固定的服务器,可以是自建也可以是云服务器,当需要公网ip且IP固定

服务器端口放行:

新增允许访问的规则 UDP:9993 和 TCP:9993,TCP: 3443(后面的显示面板用)

zerotier-one安装和生成planet文件

1.安装编译环境

  1. yum install wget gcc gcc-c++ git -y
  2. yum install json-devel -y

2.安装zerotier-one

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

3.查看认证信息

安装完成后,进入目录 /var/lib/zerotier-one/

查看认证信息,文件为identity.public 和 authtoken.secret

记录下来,后续需要用到

4.下载zerotier-one源码

/var/lib/zerotier-one/路径下执行命令

git clone https://github.com/zerotier/ZeroTierOne

没有git的先安装git

yum install git

5.进入源码目录

  1. #zerotier-one 目录
  2. [root@k8s-master ~]# cd /var/lib/zerotier-one/
  3. #下载的源码目录为ZeroTierOne
  4. [root@k8s-master zerotier-one]# ls
  5. authtoken.secret controller.d identity.public identity.secret networks.d planet zerotier-cli zerotier-idtool zerotier-one ZeroTierOne zerotier-one.pid zerotier-one.port zerotier-one.te
  6. #进入目录ZeroTierOne
  7. [root@k8s-master zerotier-one]# cd ZeroTierOne/
  8. [root@k8s-master ZeroTierOne]# ls
  9. artwork controller Dockerfile.ci java make-mac.mk one.cpp RELEASE-NOTES.md tcp-proxy zeroidc
  10. attic ...
  11. #进入attic/world
  12. [root@k8s-master ZeroTierOne]# cd attic/world/
  13. [root@k8s-master world]# ls
  14. build.sh current.c25519 mkworld mkworld.cpp planet previous.c25519 README.md world.c
  15. #修改mkworld.cpp
  16. [root@k8s-master ZeroTierOne]# vim mkworld.cpp

修改其中mkworld.cpp文件

搜索roots.push_back,这里的四个就是默认的根服务器

注释一个根服务器 ,添加一个新的

将3中的identity.public中的字符串写入Identity中

InetAddress写服务器公网ip,端口为9993

  1. roots.push_back(World::Root());
  2. roots.back().identity = Identity("identity.public中的字符串");
  3. roots.back().stableEndpoints.push_back(InetAddress("公网IP/9993"));

6.编译

在world目录下,执行如下三条命令

  1. source ./build.sh
  2. ./mkworld
  3. mv ./world.bin ./planet

7.替换planet

替换服务器的planet,并保留一份供其他客户端使用

  1. #替换
  2. cp -r ./planet /var/lib/zerotier-one/
  3. # 备用保存好
  4. cp -r ./planet /root

替换完成后重启服务

systemctl restart zerotier-one.service

ztncui安装

1 下载ztncui并安装

  1. #下载ztncui
  2. wget https://gitee.com/opopop880/ztncui/attach_files/932633/download/ztncui-0.8.6-1.x86_64.rpm
  3. #安装
  4. rpm -ivh ztncui-0.8.6-1.x86_64.rpm

2 配置ztncui

  1. #进入ztncui文件
  2. cd /opt/key-networks/ztncui/
  3. #管理面板端口
  4. echo "HTTPS_PORT = 3443" >>./.env #3443是ztncui默认的web面板端口,可以自行修改
  5. #zt-token,使用3中的字符串,里的字符串是authtoken.secret文件里的字符串
  6. echo "ZT_TOKEN = authtoken.secret文件里的字符串" >>./.env
  7. #这里是面板与本地客户端的通讯端口,保持默认9993就行,千万别修改,修改了本地ztncui和ZeroTier-One通讯就会错误
  8. echo "ZT_ADDR=127.0.0.1:9993" >>./.env
  9. echo "NODE_ENV = production" >>./.env
  10. echo "HTTP_ALL_INTERFACES=yes" >>./.env

配置完成后重启ztncui

systemctl restart ztncui

3.查看ztncui是否运行正常

systemctl status ztncui

如果是running,没有报错,就行了

4. 访问控制面板

是https,不是http

访问地址: https://公网ip:3443

默认用户名:admin

默认密码:password

5.创建一个网络

创建完成后,选择简易安装,分配ip

 客户端加入网络

1.linux

1.1先安装zerotier-one

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

1.2 替换planet文件

  1. #进入zerotier-one的目录
  2. [root@k8s-master ~]# cd /var/lib/zerotier-one/
  3. [root@k8s-master zerotier-one]# ls
  4. authtoken.secret controller.d identity.public identity.secret networks.d planet zerotier-cli zerotier-idtool zerotier-one ZeroTierOne zerotier-one.pid zerotier-one.port zerotier-one.te

将服务器的planet文件替换该目录 /var/lib/zerotier-one/ 下的planet文件

1.3 重启服务

systemctl restart zerotier-one

1.4 加入网络

zerotier-cli join 网络id

网络id为上面创建网络是的id

1.5 在控制面板授权后,查看

可以发现服务器的对应节点已经变成planet,连接方式为直连

其他planet未连接,之所以还有显示,是因为在修改cpp文件时没有将是个planet节点全部注释掉

  1. #查看
  2. [root@localhost ~]# zerotier-cli peers
  3. 200 peers
  4. <ztaddr> <ver> <role> <lat> <link> <lastTX> <lastRX> <path>
  5. 34e0a5e174 - PLANET -1 RELAY
  6. 3a46f1bf30 - PLANET -1 RELAY
  7. 4178cd60e0 1.10.6 LEAF 89 DIRECT 12 13071 192.168.0.10/27898
  8. 8e57d686ef 1.10.5 PLANET 31 DIRECT 3149 3116 122.15.23.21/9993
  9. de8950a8b2 - PLANET -1 RELAY

2 macos

在zerotier官网下载macos版本,安装完成后,如下操作

2.1 替换planet文件

  1. # 进入macos的zerotier文件夹
  2. cd /Library/Application\ Support/ZeroTier/One

将服务器的planet文件替换当前planet文件

2.2 替换完成后重启服务

cat /Library/Application\ Support/ZeroTier/One/zerotier-one.pid | sudo xargs kill

2.3 重启完成后,加入网络

zerotier-cli join 网络id

在控制面板授权,完成

3 windwos

在官网下载windows对应版本,安装完成后,如下操作

3.1 替换planet文件

将服务器的planet文件替换到C:\ProgramData\ZeroTier\One目录下【隐藏目录,需要打开显示隐藏文件夹】

3.2 重启服务

win +r 搜索 服务

将zerotier one服务重启

3.3 加入网络

管理员打开PowerShell

zerotier-cli.bat join 网络id

问题

如果在替换planet后重启服务,加入网络,控制面板刷新没有该节点申请信息

1.原因可能是你的planet文件使用错误,或者没有替换planet文件

这种情况请正确替换服务器的planet文件 

2.有可能是你的zerotier服务没有重启

请重启服务

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/157068
推荐阅读
  

闽ICP备14008679号