Zerotier 这个软件稳定使用半年以上了,但是存在一点小问题,晚上延迟会高点。在网上也搜索到不少的解决方案,搭建moom服务来中续,效果好一点。偶然在搜索的时候,发现可以自建一个planet核心节点,就尝试一下安装。

服务概念

  • Planet:就类似官方的行星服务器,用来管理zerotier客户端的地址信息,帮助建立客户端之间的链接,以及无法建立直接的链接的时候,可以作为中续服务器来转发客户端之间的流量。
  • moom:作为中续服务器存在,官方节点的都在海外,建立国内节点做为中续,可以使转发的效率更高,延迟也低。

服务器选择

这里我选择了一个吃灰的服务器,腾讯的4H4G8M活动机。国内主流的云服务提供商:腾讯云、华为云、阿里云等等,当然配置不要太高,转发速度主要看带宽,单核、128m、5G硬盘、1M带宽,我测试可以运行,满足这个基本配置以上都可以跑起来了。这里我选择Debian 11.1的系统。

安装Planet

升级系统软件包

1
2
apt-get upgrade
apt-get dist-upgrade

安装Zerotier和Ztncui

作者文档:一键搭建zerotier planet服务器脚本_独步-的博客
一键脚本仓库地址:opopop880/zerotier_planet

  • 适合于Debian和Ubuntu安装

需要root权限执行

1
wget https://gitee.com/opopop880/zerotier_planet/raw/master/zerotier_planet_debain.sh && chmod +x zerotier_planet_debain.sh && ./zerotier_planet_debain.sh
  • 适用redhat centos安装
1
wget https://gitee.com/opopop880/zerotier_planet/raw/master/zertotier_planet.sh && chmod +x zertotier_planet.sh && ./zertotier_planet.sh 

Debian和Ubuntu、如果zerotier编译过程中提示nlohmann/json.hpp找不到的问题,需要安装nlohmann-json-dev软件包

1
wget http://kr.archive.ubuntu.com/ubuntu/pool/universe/n/nlohmann-json/nlohmann-json-dev_2.1.1-1.1_all.deb && dpkg -i nlohmann-json-dev_2.1.1-1.1_all.deb
查看监听端口
1
netstat -tunlp

netstat

出现zerotier-one和ztncui相对应的进程和端口

查看管理页面

执行完成后,打开ip:3000或者 https://ip:3443 用户名admin 密码password

ztncui

能打开页面表示服务器安装成功,安装完成会在执行目录,生成planet文件,找到这个文件并下载下来。

云服务器放行规则

  • TCP:3000、3443、9993

  • UDP:9993

  • 3000端口是控制台的http

  • 3443端口是控制台的https

  • 9993端口是planet的根服务器之间通讯

创建网络

zerotier

配置网络

控制台找到- 网络 - 简易安装 - 生成网络地址 -提交保存

zerotier

配置ipv4和ipv6分配模式

ipv4

ipv6

配置zerotier客户端

Linux端

官方安装方式

1
curl -s https://install.zerotier.com | sudo bash

/var/lib/zerotier-one/ 找到刚刚下载的planet,上传替换

linux

重启zerotier

1
systemctl restart zerotier-one.service

加入网络,在控制台找到 网络ID 复制下来

1
zerotier-cli join <NETWORK ID>

加入网络后,需要在控制台点授权和分配IP才能正常使用

授权

运行zerotier-cli listpeers 检查是否加入根服务器

planet

这里的IP都是自己的设备,已经完成组网的设备,如果出现海外IP,可能是文件替换了没有重启、要排除海外IP组网。

Winows端

下载地址:Download – ZeroTier

点自动安装后,默认会在任务栏启动,需要在右下角找到zerotierUI点击 Quit 退出

  • 停止Zerotier任务

任务管理器

  • 替换planet文件

打开C:\ProgramData\ZeroTier\One,用刚刚下载的planet替换掉本地的planet

文件管理器

  • 重启Zerotier服务

在任务管理器点击重新启动Zerotier服务,等已停止变成正在运行

  • 连接私有网络

在控制台找到你想加入网络的 网络ID,复制下来

网络ID

打开ZerotierUI,在任务栏找到 右键 - join New Network

网络ID

在服务端界面,给本地客户端授权

网络授权

在客户端查看状态OK表示连接成功。

安卓端

安卓端的开源地址:https://github.com/kaaass/ZerotierFix

找到刚才下载的planet的文件,然后通过软件加载下载的planet文件即可。

然后添加网络ID,然后去控制台授权当前设备就可以愉快玩耍了。

安卓端

Linux图形化桌面端

Linux端的开源地址:https://github.com/tralph3/ZeroTier-GUI

下载源码后进行解压,然后执行编译安装

1
./make_deb.sh

测试网络

延迟测试

  • 使用ping测试

  • 客户端距离(客户端位于深圳到广西),延迟还是很低的

ping