ZeroTier 是一个由 C++ 开发的软交换机,可以让多台内网机器组成一个私有的局域网。ZeroTier 的节点分为三类:
目录
准备:
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(后面的显示面板用)
yum install wget gcc gcc-c++ git -y
yum install json-devel -y
curl -s https://install.zerotier.com/ | sudo bash
安装完成后,进入目录 /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
#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"));
在world目录下,执行如下三条命令
source ./build.sh
./mkworld
mv ./world.bin ./planet
替换服务器的planet,并保留一份供其他客户端使用
#替换
cp -r ./planet /var/lib/zerotier-one/
# 备用保存好
cp -r ./planet /root
替换完成后重启服务
systemctl restart zerotier-one.service
#下载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
#进入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
systemctl status ztncui
如果是running,没有报错,就行了
是https,不是http
访问地址: https://公网ip:3443
默认用户名:admin
默认密码:password
创建完成后,选择简易安装,分配ip
curl -s https://install.zerotier.com/ | sudo bash
#进入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文件
systemctl restart zerotier-one
zerotier-cli join 网络id
网络id为上面创建网络是的id
可以发现服务器的对应节点已经变成planet,连接方式为直连
其他planet未连接,之所以还有显示,是因为在修改cpp文件时没有将是个planet节点全部注释掉
#查看
[root@localhost ~]# zerotier-cli peers
200 peers
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
在zerotier官网下载macos版本,安装完成后,如下操作
# 进入macos的zerotier文件夹
cd /Library/Application\ Support/ZeroTier/One
将服务器的planet文件替换当前planet文件
cat /Library/Application\ Support/ZeroTier/One/zerotier-one.pid | sudo xargs kill
zerotier-cli join 网络id
在控制面板授权,完成
在官网下载windows对应版本,安装完成后,如下操作
将服务器的planet文件替换到C:\ProgramData\ZeroTier\One目录下【隐藏目录,需要打开显示隐藏文件夹】
win +r 搜索 服务
将zerotier one服务重启
管理员打开PowerShell
zerotier-cli.bat join 网络id
这种情况请正确替换服务器的planet文件
请重启服务