(1).首先更新系统
apt update
(2).安装必要的编译组件
apt install wget gcc gcc-c++ git -y
(3).安装官方客户端
curl -s https://install.zerotier.com/ | sudo bash
(3-1).记录identity.public和authtoken.secret文件里的字符串,以后有用。注意每台设备不同,字符串也不同,别抄我的
identity.public里的是:
2dcdb49f24:0:2e39cb1b36c96bea35a4ae506e15bad97019c48880e66fe9310453977dd9ce7981987bdb94e1e8eb4cd14d09d27aeeaf1c9658bb98b1bc7107a7e3d427d5bdc2
authtoken.secret里的是:
w8cl25tzb38dvwffenucrbug
(4).下载并编译配置文件
git clone https://gitee.com/opopop880/ZeroTierOne.git cd ./ZeroTierOne/attic/world/ sed -i '/roots.push_back/d' ./mkworld.cpp sed -i '/roots.back()/d' ./mkworld.cpp sed -i '85i roots.push_back(World::Root());' ./mkworld.cpp sed -i '86i roots.back().identity = Identity(\"'"填写identity.public里的字符串"'\");' ./mkworld.cpp sed -i '87i roots.back().stableEndpoints.push_back(InetAddress(\"'"服务器ip地址/通讯端口"'\"));' ./mkworld.cpp #默认通讯端口是9993,可以自行修改 source ./build.sh ./mkworld mv ./world.bin ./planet \cp -r ./planet /var/lib/zerotier-one/ \cp -r ./planet /root
(4-1).重启官方客户端
systemctl restart zerotier-one.service
(5).安装planet服务器的管理系统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
(5-1).生成接口文件
cd /opt/key-networks/ztncui/ echo "HTTPS_PORT = 3443" >>./.env #3443是ztncui默认的web面板端口,可以自行修改 echo "ZT_TOKEN = authtoken.secret文件里的字符串" >>./.env #这里的字符串是authtoken.secret文件里的字符串 echo "ZT_ADDR=127.0.0.1:9993" >>./.env #这里是面板与本地客户端的通讯端口,保持默认9993就行,千万别修改,修改了本地ztncui和ZeroTier-One通讯就会错误 echo "NODE_ENV = production" >>./.env echo "HTTP_ALL_INTERFACES=yes" >>./.env
(5-2).启动ztncui管理面板
systemctl restart ztncui
(6).现在可以使用:https://服务器ip:3433登录了,默认账号和密码是:admin/password
备注:【注意这里的证书是不可信的,所以要点浏览器页面上的高级--继续前往服务器ip(不安全)】第一次登录需要改密码,改完密码后在页面上点注销,然后用新密码登录。
登录以后点:add a network建立一个虚拟网路,network name:名称随便写,最后按create a network 按钮保存
(7).记住there are no members on this network - users are invited to join后面的网络id,后续方便虚拟局域网的其他电脑加入
(8).下载/root目录下生成的“planet”文件,来替换需要组网客户端里的“planet”文件
(9).其他需要加入虚拟局域网的电脑正常安装客户端,各系统的客户端下载地址:https://www.zerotier.com/download/
(10).使用刚才下载的“planet”文件替换其他电脑“ZeroTier-One”安装目录下的“planet”文件,并重启系统
(11).在设备上执行 “zerotier-cli join 你的planet服务器网络ID”加入刚组建虚拟局域网
zerotier-cli join xxxxxxxxxx
如果一切正常的话,会显示:200 join OK 的提示
(12)在其他设备上执行zerotier-cli listpeers命令可以看到你架设成功的planet服务器,注意这里的planet服务器是不显示ip的。具体见下图
最后planet服务器可以添加虚拟局域网的dns服务器,虚拟路由器等功能,但是无法控制各虚拟节点,这里官方已经给出了明确的说明。
客户端配置
客户端主要为Windows, Mac, Linux, Android
4.1 Windows 配置
首先去zerotier官网下载一个zerotier客户端
将 planet
文件覆盖粘贴到C:\ProgramData\ZeroTier\One
中(这个目录是个隐藏目录,需要运允许查看隐藏目录才行)
Win+S 搜索 服务
找到ZeroTier One,并且重启服务
4.2 加入网络
使用管理员身份打开PowerShell
执行如下命令,看到join ok字样就成功了
PS C:\Windows\system32> zerotier-cli.bat join 网络id(就是在网页里面创建的那个网络) 200 join OK PS C:\Windows\system32>
登录管理后台可以看到有个个新的客户端,勾选Authorized就行
执行如下命令:
PS C:\Windows\system32> zerotier-cli.bat peers 200 peers <ztaddr> <ver> <role> <lat> <link> <lastTX> <lastRX> <path> fcbaeb9b6c 1.8.7 PLANET 52 DIRECT 16 8994 1.1.1.1/9993 fe92971aad 1.8.7 LEAF 14 DIRECT -1 4150 2.2.2.2/9993 PS C:\Windows\system32>
可以看到有一个 PLANTET 和 LEAF 角色,连接方式均为 DIRECT(直连)
到这里就加入网络成功了
4.2 Linux 客户端
步骤如下:
- 安装linux客户端软件
- 进入目录
/var/lib/zerotier-one
- 替换目录下的
planet
文件 - 重启
zerotier-one
服务(service zerotier-one restart
) - 加入网络
zerotier-cli join
网络id
- 管理后台同意加入请求
zerotier-cli peers
可以看到planet
角色