zerotier自建planet

2024-03-27 13:30
文章标签 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.安装编译环境

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服务没有重启

请重启服务

这篇关于zerotier自建planet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/852256

相关文章

记录|自建Form窗口,实现消息提示+自动消失

目录 前言一、UI准备Step1. 创建窗体控件Step2. 设置FormAlert的属性Step3. 增加LabelStep4. 增加ButtonStep1~4 效果展示: 二、Icon和Timer准备Step5. 准备相应的iconStep6. 添加PictureBoxStep7. 添加定时器Timer 三、代码编写四、代码调用Step8. 创建ButtonStep9. Form中调用

使用RedisShake迁移自建Redis数据至阿里云Redis

一、前言 最近有个需求,需要把自建的Redis数据迁移至阿里云的Redis RDS。阿里云有官方的数据传输服务DTS(Data Transmission Service)。全量迁移是免费的,但增量迁移需要按量收费,遂放弃。经过一番搜索,发现了一个RedisShake的工具,而这个也是阿里开源的,秒啊~ 二、 RedisShake介绍 2.1 什么是 RedisShake RedisShak

zerotier-one自建根服务器方法二

一、简介 zerotier-one免费账户有25设备的限制,如果自己的设备多了就需要付费。不过zerotier-one是开源软件,我们可以自己建立根服务器,不用付费速度还很快。 由于时间关系上一篇文章没有写完,今天继续。 二、准备工作 准备一个有公网IP的云主机。 我用的是“三丰云”,同时提供"免费虚拟主机"和“免费云服务器”产品,有兴趣的可以试一下。 “三丰云”我已经用了一段时间,感

动态更新自建的Redis连接池连接数量

/*** 定时更新Redis连接池信息,防止资源让费*/private static final ScheduledThreadPoolExecutor DYNAMICALLY_UPDATE_REDIS_POOL_THREAD = new ScheduledThreadPoolExecutor(1, new ThreadFactory() {@Overridepublic Thread newTh

zerotier自建moon方法

简介 使用zerotier已经有一段时间了,现在偶尔会出现服务器连接不上的情况。我就想自己建个moon来试试。记录一下过程,用作备忘录。 准备工作 准备一个有公网IP的云主机。我用的是“三丰云”,速度很快同时提供"免费虚拟主机"和“免费云服务器”产品,有兴趣的可以试一下。三丰云控制台界面如下图: 安装配置 切换路径到ZeroTier客户端下,生成moon.json文件,打开moon.json文件

【Spring Cloud Alibaba】13.自建存储对象服务与集成(minio版)

文章目录 简介什么是云存储服务(OSS)为什么选择MiniIOMiniIO相关地址 搭建(docker)安装Docker部署MinIO创建存储桶配置存储桶设置存储桶可以直接在浏览器访问 集成到Spring Cloud Alibaba项目创建子模块引入依赖包项目结构配置文件工具类接口类测试 简介 接下来对分布式项目实现存储对象服务器搭建与集成,本操作与前置步骤关系不大,大家可酌情

如何自建yum源仓库

文章目录 1,创建可用的yum源文件夹,把你自己的软件包,并放在这个目录文件夹中2,将yum源文件夹目录复制到/var/www/html/中3,客户端修改配置文件4,创建一个 RPM 软件包存储库5,查验是否成功6,浏览器访问你的yum仓库 1,创建可用的yum源文件夹,把你自己的软件包,并放在这个目录文件夹中 创建一个文件夹/home/media/repo1/ mkdir /

宝塔面板如何创建ZeroTier-Moon节点

本文转自博主的个人博客:https://blog.zhumengmeng.work,欢迎大家前往查看。 原文链接:点我访问 序言:折腾过内网穿透的玩家,ngrok、frp 都应该不陌生了,自己搭也好,用别人提供的免费服务也好,配置过程都显得有些繁琐。有幸了解到 ZeroTier 的存在,使用起来真是非常方便,可以很轻松的将自己的电子设备加入同一个局域网,但由于其根服务器在国外,导致前

robosuite-自建夹具bug

场景: 在 robosuite 中创建自己的夹具 问题描述 Traceback (most recent call last):File "collect_human_demonstrations_auto.py", line 436, in <module>dataset_states_to_obs(output_filename, save_name+"-obs.hdf5")File "

U-Mail自建企业邮箱域名解析设置

如果域名没有做解析,只能用于内网收发邮件。要想实现与外网邮箱的收发,需要做域名解析。是在“域名解析后台”进行设置(域名提供商提供“域名解析后台")。 1. 域名的申请 目前在国内提供域名申请的服务商很多,下面列表常见的服务商以供考。 万网 新网  商务中国  有关域名的申请可以请见各网站的相关说明,在此就不作详细说明。域名一般是每年是要缴一定的服务费的。 2. 域名的设置 下面我们以万网 为