我使用的是一台国内nat服务器,不开80和443端口,不能绑定无备案的域名。内存和硬盘都很小,大宽带是优势,正好用来架设zerotier的planet服务器.
以centos7为列
(1).首先安装centos7系统并更新
yum update
(2).安装必要的编译组件
yum install wget gcc gcc-c++ git -y
(3).安装官方客户端
curl -s https://install.zerotier.com/ | sudo bash
(3-1).记录/var/lib/zerotier-one/目录下
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 #下载/root目录下的planet文件到本地,以后其他机器加入planet服务器需要用到
(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,后续方便虚拟局域网的其他电脑加入
(7-1).把planet服务器自身先加入到刚建立的虚拟网络中,生成第一台虚拟局域网主机
zerotier-cli join 网络ID 网络ID #注意这里是你在planet服务器添加网络生成的id,不是planet服务器自身的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 网络ID 网络ID #注意这里是你在planet服务器添加网络生成的id,不是planet服务器自身的ID
如果一切正常的话,会显示:200 join OK 的提示
(12)在其他设备上执行zerotier-cli listpeers命令可以看到你架设成功的planet服务器,注意这里的planet服务器了。具体见下图
(13).关于客户端加入自己搭建的planet服务器
首先安装官方客户端,客户端下载地址:https://www.zerotier.com/download/ 按照自己的系统选择安装。
linux系统一般安装在“/var/lib/zerotier-one/”目录下。win系统一般安装在“C:\Program Files (x86)\ZeroTier\One”目录下
(13-1).linux系统,把刚才架设planet服务器得到的“planet”文件,上传覆盖“/var/lib/zerotier-one/”下的“planet”文件,然后执行:
zerotier-cli join 网络ID 网络ID #注意这里是你在planet服务器添加网络生成的id,不是planet服务器自身的ID
重启客户端:
systemctl restart zerotier-one.service
到自己搭建的planet服务器管理面板里就可以看到加入的机器了,注意要给加入的机器授权才能正常使用
(13-2).win系统“C:\Program Files (x86)\ZeroTier\One”目录下首先到服务里面停止“ZeroTier One”服务
把planet文件复制到“C:\Program Files (x86)\ZeroTier\One”目录下,如果提示“无权限”,可以下载“管理员.zip”解压开,双击运行注册表,在“C:\ProgramData\ZeroTier\One\”目录上鼠标邮件选择“一键获取超级管理员权限”现在就可以把把planet文件复制到“C:\ProgramData\ZeroTier\One\”目录下了,接下来在服务里面启动“ZeroTier One”服务。以管理员权限运行cmd或者windows powershell执行
zerotier-cli join 网络ID 网络ID #注意这里是你在planet服务器添加网络生成的id,不是planet服务器自身的ID
这里系统会提示你发现一个新网络,点击“是”,在网络适配器界面会多出一个新的“虚拟网卡”ZeroTier One,红框里就是刚才你加入的虚拟局域网ID
最后重启“ZeroTier One”服务
备注:最后planet服务器需要授权每一个加入的客户端。至于这么给虚拟局域网的其他机器开放端口,或者把网站域名绑定到虚拟局域网的其他机器上,以后再写。