zerotier自建planet

news2024/10/6 10:37:54

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.安装编译环境

yum install wget gcc gcc-c++ git -y
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.进入源码目录

#zerotier-one 目录
[root@k8s-master ~]# cd /var/lib/zerotier-one/

#下载的源码目录为ZeroTierOne
[root@k8s-master zerotier-one]# ls
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

#进入目录ZeroTierOne
[root@k8s-master zerotier-one]# cd ZeroTierOne/
[root@k8s-master ZeroTierOne]# ls
artwork         controller            Dockerfile.ci          java           make-mac.mk                one.cpp           RELEASE-NOTES.md  tcp-proxy              zeroidc
attic ...

#进入attic/world   
[root@k8s-master ZeroTierOne]# cd attic/world/
[root@k8s-master world]# ls
build.sh  current.c25519  mkworld  mkworld.cpp  planet  previous.c25519  README.md  world.c

#修改mkworld.cpp
[root@k8s-master ZeroTierOne]# vim mkworld.cpp

修改其中mkworld.cpp文件

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

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

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

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

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

6.编译

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

source ./build.sh
./mkworld
mv ./world.bin ./planet

7.替换planet

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

#替换
cp -r ./planet /var/lib/zerotier-one/

# 备用保存好
cp -r ./planet /root 

替换完成后重启服务

systemctl restart zerotier-one.service

ztncui安装

1 下载ztncui并安装

#下载ztncui
wget https://gitee.com/opopop880/ztncui/attach_files/932633/download/ztncui-0.8.6-1.x86_64.rpm 

#安装
rpm -ivh ztncui-0.8.6-1.x86_64.rpm

2 配置ztncui

#进入ztncui文件
cd /opt/key-networks/ztncui/

#管理面板端口
echo "HTTPS_PORT = 3443" >>./.env  #3443是ztncui默认的web面板端口,可以自行修改

#zt-token,使用3中的字符串,里的字符串是authtoken.secret文件里的字符串
echo "ZT_TOKEN = authtoken.secret文件里的字符串" >>./.env

#这里是面板与本地客户端的通讯端口,保持默认9993就行,千万别修改,修改了本地ztncui和ZeroTier-One通讯就会错误
echo "ZT_ADDR=127.0.0.1:9993" >>./.env  
echo "NODE_ENV = production" >>./.env
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文件

#进入zerotier-one的目录
[root@k8s-master ~]# cd /var/lib/zerotier-one/
[root@k8s-master zerotier-one]# ls
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节点全部注释掉

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

2 macos

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

2.1 替换planet文件

# 进入macos的zerotier文件夹
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服务没有重启

请重启服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/666095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt学习10:MainWindow浅析

文章目录 QMainWindow的基本结构QMenuBarQToolBarQStatusBarQDockWidget QSystemTrayIcon 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 QMainWindow的基本结构 QMenuBar&#xff1a;菜单栏QToolBar&#xff1a;工具栏QDockWidget&#xff1a;浮动窗口QStatusBar&…

基于ENVI的遥感影像解译——以Landsat8数据为例(上)

遥感影像解译是一种指从图像获取信息的基本过程。即根据各专业&#xff08;部门&#xff09;的要求&#xff0c;运用解译标志和实践经验与知识&#xff0c;从遥感影像上识别目标&#xff0c;定性、定量地提取出目标的分布、结构、功能等有关信息&#xff0c;并把它们表示在地理…

火力全开,鏖战争锋|SCTF 2023圆满落幕!

2023年6月19日09:00&#xff0c;第八届XCTF国际联赛分站赛——SCTF 2023圆满落幕。本次赛事由XCTF国际联赛合作单位——成都信息工程大学Syclover战队组织&#xff0c;由赛宁网安提供技术支持。 经过持续48小时的夺旗厮杀&#xff0c;联合战队Nu1L最终力压群雄&#xff0c;夺得…

什么是mAP(mean average Precision)

Mean Average Precision&#xff0c;即 平均AP值 。AP&#xff08;Average precision&#xff09;单类标签平均&#xff08;各个召回率中最大精确率的平均数&#xff09;的精确率。AP: PR&#xff08; Precision-Recall&#xff09;曲线下面积&#xff0c;mAP(Mean Average Pre…

树莓派启用无密码 sudo

启用无密码 sudo&#xff0c;可以在不提供密码的情况下在树莓派上运行程序。 登录 Raspberry Pi 命令行界面。假设 Raspberry Pi 的默认用户名和密码分别为 pi 和 raspberry。在命令行界面中&#xff0c;键入以下命令&#xff1a; sudo nano /etc/sudoers 3. 通过添加以下行启…

被业务员缠着要数据,数据分析师除了加班还有第二种选择吗?

知乎的大数据给我推了这样一个问题&#xff1a;身为数据分析师&#xff0c;却被业务当做取数机&#xff1f; 热度很高&#xff0c;看来很多数据分析师有相似的处境。 作为一个数据分析师&#xff0c;大部分时间却忙于取数&#xff0c;即使996加班也忙不完&#xff0c;不仅没…

Word怎么删除空白页,4个方法轻松解决!

案例&#xff1a;我在编辑文档的时候会遇到空白页&#xff0c;我不能直接对它进行删除操作。我想知道如何删除Word里面的空白页&#xff1f;方法越简单越好&#xff01; Word是广泛使用的办公软件之一&#xff0c;但有时在编辑文档时会遇到一些空白页的问题。空白页的存在可能…

阿里云学生验证流程(申请入口、学生认证图文教程)

阿里云学生用户完成学生认证可以领取一台阿里云服务器&#xff0c;那么问题来了&#xff0c;阿里云学生验证申请入口​在哪&#xff1f;阿里云百科分享阿里云学生验证入口网页链接及学生认证全流程&#xff1a; 目录 阿里云学生验证入口及申请流程 打开学生验证申请入口 支…

BUG越改越多?微信团队用自动化测试化险为夷

&#x1f449;腾小云导读 作为后台开发 Coder&#xff0c;你可能会对以下场景感到似曾相识&#xff1a;历史上处理过的 BUG 反复横跳&#xff1b;版本兼容逻辑多&#xff0c;修复一个 BUG 触发了更多 BUG&#xff1b;上线时系统监控毫无异常&#xff0c;过段时间用户投诉某个页…

关于iOS16 以后屏幕旋转不得不说的事

由于笔者最近刚完成了一个强制屏幕横屏的需求 所以 顺便记录一下 实现过程中遇到 block点 也为广大的iOS开发者做一个笔记&#xff1a; 废话不多说直接上代码 //适配iOS16.0的横竖屏方法public static func switchInterfaceWtihIos16(orientation: UIInterfaceOrientation , o…

墨水屏服务更新及测试

一、更新墨水屏服务 ①删除tomcat/webapps/esls_new 缓存目录 ②替换新的esls_new.war ③重启tomcat,等待war包解压完成 ④修改数据库配置applicationContext-common.xml和回调接口配置urlConfig.properties ⑤重启tomcat 重启tomcat&#xff1a; tomcat/bin/shutdown.s…

我们还需要 SRE 吗?

在 「一文讲透研发&#xff0c;SRE&#xff0c;运维&#xff0c;DevOps 的区别」里&#xff0c;我们讲了几大工种的区别&#xff0c;这篇我们重点讲一下 SRE (Site Reliability Engineering)。 SRE 的兴起 SRE 最早起源于 2003&#xff0c;由 Google 提出。SRE 既是一种理念&a…

Linux Vim三种工作模式(命令模式、输入模式和编辑模式)详解

Linux 系统中所有的内容都以文件的形式进行存储&#xff0c;当在命令行下更改文件内容时&#xff0c;常会用到文本编辑器。 我们首选的文本编辑器是 Vim。使用 Vim 编辑文件时&#xff0c;存在 3 种工作模式&#xff0c;分别是命令模式、输入模式和编辑模式&#xff0c;这 3 种…

一文讲透研发,SRE,运维,DevOps 的区别

研发&#xff0c;SRE &#xff0c;运维是工种&#xff0c;而 DevOps 是体系。如果拿足球来打比方&#xff0c;研发&#xff0c;SRE &#xff0c;运维对应的就是前锋&#xff0c;中场&#xff0c;后卫这样的位置&#xff0c;而 DevOps 则是诸如 4-3-3 这样的阵型。 研发 也叫研…

聊聊如何独立使用ribbon实现业务客户端负载均衡

前言 ribbon是Netflix开源的客户端负载均衡工具&#xff0c;ribbon实现一系列的负载均衡算法&#xff0c;通过这些负载均衡算法去查找相应的服务。ribbon被大家所熟知&#xff0c;可能是来源于spring cloud&#xff0c;今天就来聊聊如何单独使用ribbon来实现业务客户端负载均衡…

我心中的编程语言之王:Python

我心中的编程语言之王&#xff1a;Python 在当今日益发展的信息技术领域&#xff0c;编程语言的地位愈发重要。它们是构建现代软件和应用的基石&#xff0c;也是实现科技进步的关键工具。在众多编程语言中&#xff0c;Python 以其简单、易用、高效等诸多优点&#xff0c;成为了…

Dubbo架构分层总结

进来闲来无事看了些有关dubbo源码的书籍和《极客时间》何辉老师的课程&#xff0c;由于知识点比较碎&#xff0c;遂以笔记的方式纪录&#xff0c;毕竟好记性不如烂笔头&#xff0c;也希望对感情趣的同学提供点帮助 假设你是个新手开发者&#xff0c;可能只是简单使用过dubbo框…

数字孪生世界建设核心能力:数据治理能力

随着世界经济由工业经济向数字经济转型&#xff0c;数据逐步成为关键的生产要素&#xff0c;企业开始将数据作为一种战略资产进行管理。数据从业务中产生&#xff0c;在IT系统中承载&#xff0c;要对数据进行有效治理&#xff0c;需要业务充分参与&#xff0c;IT系统确保遵从&a…

前端开发必须要知道的package.json文件

前言 package.json 文件是一个 Node.js 项目的配置文件&#xff0c;用于描述项目的元数据信息&#xff08;如名称、版本、作者、依赖等&#xff09;&#xff0c;以及运行和构建该项目所需的脚本命令。 在项目开发过程中&#xff0c; package.json 文件的维护和更新是非常重要…

Axure8 零基础操作入门

参考&#xff1a;黑马产品经理课程 视频资源&#xff1a;day1&day2&#xff0c;Axure部分 Axure8常用功能 选择/缩放 选择 包含选中&#xff1a;全部选中才有效&#xff08;避免误操作&#xff0c;建议使用这个&#xff09;相交选中&#xff1a;相交即全选中 缩放 元件等…