前言
- ZeroTier 是一款开源的网络虚拟化工具,它允许用户在全球范围内创建和加入虚拟网络,实现设备之间的直接通信,无论这些设备位于何处。通过 ZeroTier One,用户可以轻松地配置和管理自己的虚拟网络,实现远程访问、文件共享、游戏联机等多种应用场景。
- 搭建自己的私有planet代替官方planet来突破官方10个用户隧道的限制
- 创建自己的网络控制节点。
一、准备具有公网IP服务器
- 当前教程使用的是物理机房的服务器也可选择云服务器部署,实际情况可根据需求选择。
- 服务器系统推荐安装 Ubuntu 22.04 版本。(其他系统没有测试过主要)
二、开始安装
1.开放防火墙端口或直接关闭防火墙
使用Zerotier需要开放端口,服务器一般是在安全组中开放UDP 9993 和 TCP 9993 以及节点控制器UI需要的 TCP 3443
此处为了方便直接关闭防火墙
sudo ufw disable
2.安装环境需要的依赖
# 更新服务器缓存和软件依赖
sudo apt update
sudo apt upgrade
# 下载c++需要的编译环境
sudo apt install g++
sudo apt install libjson-c-dev
3.通过命令自动下载安装服务端的Zerotier
cd /var/lib/
curl -s https://install.zerotier.com/ | sudo bash
4.确认关键文件(后期需要使用的)
# 进入安装好的zerotier-one目录
cd /var/lib/zerotier-one
# 查看当前目录文件
ll
一般zerotier-one目录下会有这些文件 需要注意(identity.public)后面需要使用到这个文件
5.下载源码并替换为自己的云服务器为Planet节点
# 从github下载ZerotierOne的源码
# 我直接用的root用户,/root为root用户的home
cd /root
git clone https://github.com/zerotier/ZeroTierOne
# 进入需要修改编译的wold目录
cd ZeroTierOne/attic/world
# 修改 mkworld.cpp 文件,默认的行星服务器地址写死在里面了
# 可以通过vim或者是其他编辑器修改 参考 图一
# 我只想用自己的planet节点,所以官方的我全屏蔽了,但是官方限制最多4个,添加自己的就需要屏蔽至少一个官方的
sudo vim mkworld.cpp
# 修改完成后执行 source build.sh 这里看情况加 sudo,我是root我不加🤪
source ./build.sh
./mkworld
mv ./world.bin ./planet
图一
三、安装网络控制节点
此处就按官方提供的复制粘贴就可以
curl -O https://s3-us-west-1.amazonaws.com/key-networks/deb/ztncui/1/x86_64/ztncui_0.8.14_amd64.deb
sudo apt install ./ztncui_0.8.14_amd64.deb
sudo sh -c "echo ZT_TOKEN=`sudo cat /var/lib/zerotier-one/authtoken.secret` > /opt/key-networks/ztncui/.env"
sudo sh -c "echo HTTPS_PORT=3443 >> /opt/key-networks/ztncui/.env"
sudo sh -c "echo NODE_ENV=production >> /opt/key-networks/ztncui/.env"
sudo chmod 400 /opt/key-networks/ztncui/.env
sudo chown ztncui.ztncui /opt/key-networks/ztncui/.env
sudo systemctl restart ztncui.service
四、网络配置
1.在 Web 浏览器中通过https://你的公网IP:3443访问web平台 例如https://172.16.98.1:3443
2. 以 admin 用户身份使用密码 password 登录 [第一次登录需要修改密码]
3.添加网络
点击 easy setup 配置,完成点击 submit 提交
六、客户端加入网络
1.windows端
- 安装官方客户端
- 自动安装后在右下角有ZeroTierUI, 先退出
- 将服务端的Planet下载下来用服务端的 planet替换本地的planet默认planet路径 C:\ProgramData\ZeroTier\One\。
- 重启ZeroTier服务
- 重新启动ZeroTier应用程序,等待服务状态变为运行中。
-
连接私有网络
-
打开服务端的管理页面http://云服务器IP:3000的网络界面,复制其中的网络ID
- 打开ZeroTierUI,右键点击加入网络,输入其中的网络ID,点击确认
- 重新打开服务web界面,给本地客户端授权
- 在客户端可以看到状态为OK就表示连接成功