本文最后更新于 2026年5月11日。
教程与代码链接
https://blog.csdn.net/qq_41813208/article/details/125568313
https://github.com/key-networks/ztncui
tailscale
https://tailscale.com/kb/1245/set-up-servers/
https://github.com/mokeyish/zerotier-edge
https://github.com/key-networks/ztncui
[key-networks/ztncui]汉化及一键安装ZtnCui控制器 – ZeroTier根节点服务端
https://github.com/TcDhlPro/ZeroTierOne-SelfHostingNetworkControllers-ZtnCui
https://github.com/search?q=ztncui&type=repositories
目前在用方案
轻量服务器
loganjindev/zerotier-ztncui
https://hub.docker.com/r/loganjindev/zerotier-ztncui
esc搭建
1panel的编排
“`
version: “3.7”
networks:
1panel-network:
external: true
services:
ztncui:
image: keynetworks/ztncui:1.2.16
container_name: ztncui
ports:
– “127.0.0.1:3000:3000”
– “0.0.0.0:3180:3180”
– “0.0.0.0:8000:8000”
– “0.0.0.0:9993:9993”
volumes:
- ./ztncui:/opt/key-networks/ztncui/etc
- ./zerotier-one:/var/lib/zerotier-one
restart: unless-stopped
networks:
- 1panel-network
“`
docker一键部署私有 zerotier 构建私有plant moon 突破50台设备限制
前言
- 由于最近测试项目需要用到家里的
MacBook开虚拟机,前一段用frp内网穿透,但是测试项目需要转发很多端口,配置起来也很麻烦,于是乎想到了zerotier。 - 之前用过
zerotier官网的服务,使用起来各种限制,于是就决定自己搭建planet和moon。 - 大概查阅了一些资料发现很多教程都不是构建真正的planet,而且配置繁琐,于是决定自己构建docker镜像。
- 镜像地址:loganjindev/zerotier-ztncui
- Github地址:https://github.com/LoganJinDev/zerotier-planet-moon
- Gitee地址:https://gitee.com/logandev/zerotier-planet-moon
镜像简介
- 默认用户:
admin - 默认密码:
loganjin.cn - zerotier-one版本:
1.10.1 - 基础镜像:
debian:bullseye-slim - 附加功能:
构建planet、构建mooon、查询配置moon方法 - 访问地址:
http://IPaddress:3000或https://IPaddress:3443 - docker仓库镜像:
loganjindev/zerotier-ztncui:latest - 阿里云仓库镜像:
registry.cn-shanghai.aliyuncs.com/logandev/zerotier-ztncui:latest - 环境变量:
MYADDR MYDOMAIN HTTP_PORT HTTPS_PORT ZTNCUI_PASSWD NODE_ENV HTTP_ALL_INTERFACES
部署教程
一、如未安装docker请自行安装也可参考我博客此篇文章:快速安装Docker及配置
二、Docker命令行部署:
“`shell
下载项目
git clone https://gitee.com/logandev/zerotier-planet-moon.git
or
git clone https://github.com/LoganJinDev/zerotier-planet-moon.git
切换到项目目录
cd zerotier-planet-moon
启动命令
docker run -d \
–net=host \
–name zerotier-planet \
–restart unless-stopped \
-v ./zerotier-one:/var/lib/zerotier-one \
-v ./ztncui/etc:/opt/key-networks/ztncui/etc \
loganjindev/zerotier-ztncui:v1.0.0
参数注释
–net=host #使用主机网络
–name zerotier-planet # 容器名
–restart unless-stopped # 容器重启策略
-v ./zerotier-one:/var/lib/zerotier-one \ # 将容器/var/lib/zerotier-one挂载到主机./zerotier-one
-v ./ztncui/etc:/opt/key-networks/ztncui/etc \ # 将容器/opt/key-networks/ztncui/etc挂载到主机./ztncui/etc
“`
三、docker-compose部署
“`shell
下载项目
git clone https://gitee.com/logandev/zerotier-planet-moon.git
or
git clone https://github.com/LoganJinDev/zerotier-planet-moon.git
切换到项目目录
cd zerotier-planet-moon
启动命令
docker-compose up -d
如果未指定密码,可执行 docker exec -it zerotier-planet cat /var/log/docker-ztncui.log|grep Password 获取密码
“`
四、构建planet和moon
“`shell
构建 moon
docker exec -it zerotier-planet build moon
构建 planet
docker exec -it zerotier-planet build planet
查询客户端配置moon方法
docker exec -it zerotier-planet build moonid
“`
五、zerotier客户端配置planet
-
防火墙开放端口:
3000 3443 9993/tcp 9993/udp 3180 -
端口简介:
- 3000:
ztncui http访问 - 3443:
ztncui https访问 - 9993:
9993/tcp 9993/udp 均为zerotier使用 必须开放 - 3180:
planet moon下载端口 如果不需要可不开放 -
windows配置planet
-
下载planet文件:
可通过浏览器访问http://IPaddress:3180或通过服务器./ztncui/etc/myfs目录获取 - 替换planet:
将下载的planet替换C:\ProgramData\ZeroTier\One\目录下的planet - 重启服务:
系统搜索 "服务" 然后找到"ZeroTier One"点 重启动 即可 -
linux配置planet
-
下载planet文件:
可通过浏览器访问http://IPaddress:3180或通过服务器./ztncui/etc/myfs目录获取 - 替换planet:
将下载的planet替换/var/lib/zerotier-one目录下的planet - 重启服务:
service zerotier-one restart - 完成以上步骤planet配置就完成了
- 3000:
六、zerotier客户端配置moon
- 查询方法:
docker exec -it zerotier-planet build moonid会得到以下内容Your ZeroTier moon id is 89xxxxxxab, you could orbit moon using "zerotier-cli orbit 89xxxxxxab 89xxxxxxab"
- windows配置moon
- 以管理员方式打开cmd输入
zerotier-cli orbit 89xxxxxxab 89xxxxxxab即可
- 以管理员方式打开cmd输入
- linux配置moon
- 命令行输入
zerotier-cli orbit 89xxxxxxab 89xxxxxxab即可
- 命令行输入
七、创建网络及加入网络
- 浏览器打开网站:
http://IPaddress:3000或https://IPaddress:3443 - 登录:
默认用户:admin 默认密码:loganjin.cn - 点击
Add network输入网络名称 点击Create Network - 点击
Network查看Network ID - 客户端加入网络:
zerotier-cli join Network ID - 客户端常用命令
“`shell
加入网络
zerotier-cli join Network ID
查看当前加入的网络列表
zerotier-cli listnetworks
删除网络
zerotier-cli leave Network ID
“`
结语
- 此镜像基于kmahyyg/ztncui-aio项目改造,在此特别感谢,此外已将zerotier更新至v1.10.1最新版。
- 配置官方planet+moon 不是很稳定有时ping会丢包,因此推荐 配置私人planet+moon 更稳定。
- 经测试配置私人planet+moon对比只配置私人planetping time基本都在10-20s,可根据实际情况部署planet moon。
- 如果部署或者其他问题欢迎去我的博客(www.loganjin.cn)留言或者微信公众号(Python技术交流圈)留言交流哦。
轻量服务器的网络id
9690e43d223e8a34
目前公司电脑版本:
ZeroTier 1.10.2
Desktop System Tray UI
(c)2021-2022 ZeroTier, Inc.
Released under the terms of the Mozilla Public License V2.0 (MPL)
Source URL: https://github.com/zerotier/DesktopUI
This UI application contains the following additional open source software:
- https://github.com/zserge/tray by Serge Zaitsev (with modifications)
- https://github.com/libui-ng/libui-ng by Pietro Gagliardi and others
企业组网:ZeroTier与Tailscale技术比较
随着现代企业迁移到基于云的服务和远程工作,加固的企业围墙正在恶化,传统VPN的使用也是如此。网络架构师正在采用新的“零信任”方法,这意味着物理网络不可信,并且每个设备都必须始终进行端到端加密和身份验证。
人们希望能够以高度安全的方式从任何地方连接到私有资源,这就是ZeroTier和Tailscale的用武之地。
ZeroTier是一个分散的网络虚拟化平台。他们的口号是“去中心化直到它受伤,然后集中化直到它起作用。他们提供了一个定制的协议,具有2个虚拟化层:
- 虚拟第 1 层(VL1) 是对等网络主干,用于加密通信、确保端点身份验证并使用非对称密钥验证凭证。
- 虚拟第 2 层(VL2) 建立在 VL1 之上,利用软件定义的网络原理作为虚拟可扩展局域网 (VX-LAN) 发挥作用。VL2 负责创建安全网络边界、多播、实施基于规则和功能的安全性以及基于证书的访问控制。ZeroTier的集中式组件是一组12个根服务器,这些服务器分布在全球,提供了稳定的服务,有助于快速建立点对点连接,并保证一切正常运转。
ZeroTier的硬件无关技术适用于大多数工业、商业或个人设备。它们可以在Windows,macOS,Android,iOS,Linux,FreeBSD和NAS设备上运行。产品是开源的,但受其商业源代码许可证的约束。
相比之下,Tailscale的架构使用SaaS中央协调服务,该服务对最终用户来说是不可见的。节点通过登录到中央身份系统(如Google,Microsoft AzureAD或Okta)进行授权。Tailscale不使用自定义协议,而是使用标准的WireGuard VPN协议进行数据传输。
ZeroTier和Tailscale用途相同,但它们具有不同的底层结构。下面我们将进行全面的比较,来分析它们各自的优势和存在的差异。
初始设置
ZeroTier被设计为一种“零配置”技术。用户启动 ZeroTier 节点时无需写入配置文件或提供其他节点的IP地址。ZeroTier的虚拟化第 2 层 (VL2) 充当配置管理器。通过共享计算机生成的密码,可以将新节点添加到 ZeroTier 网络,该密码必须由用户在连接时输入。
Tailscale使连接设备变得简单:只需使用组织的SSO标识提供程序在每个设备上安装并登录到Tailscale即可使用。Tailscale管理密钥分发、密钥轮换、设备证书和用户的所有配置,相对来说,使用安装更方便,对技术的要求并不重要。
连接
ZeroTier的点对点连接可靠且快速,是因为采用了低延迟的直接通信。与Tailscale一样,ZeroTier负责NAT遍历。ZeroTier的根服务器帮助各个节点建立对等连接。如果NAT遍历失败,ZeroTier的根服务器将继续中继通信,这将导致增加延迟。
WireGuard通常需要任意连接的一端具有静态IP地址。但是,Tailscale在WireGuard顶部添加了一层按需NAT遍历,以便设备可以直接通信,甚至通过防火墙进行通信,而无需手动配置。如果无法进行NAT遍历或UDP被阻止,Tailscale会自动通过TCP(HTTPS) 中继加密流量,以便设备始终可以进行通信。它根据网络条件自动在这些不同的传输机制之间切换WireGuard。
安全
ZeroTier的目标是成为“零信任”网络解决方案。数据包是端到端加密的,未经授权的各方无法读取。VL1上的每个对等体都拥有一个全局唯一的40位ZeroTier地址,但与IP地址不同,这些是不透明的加密标识符,不编码任何路由信息。ZeroTier使用现代256位ECC,遵循创建它的专业密码学家制定的最佳实践。
截至目前,ZeroTier还不支持单点登录 (SSO) 或多重身份验证 (MFA)。ZeroTier用户必须使用其私钥登录,并且需要在控制平面上单独获得批准。获得授权后,每个设备的密钥将永久受信任,没有能力强制执行密钥刷新或轮换期。
Tailscale提供完整的端到端数据加密。设备的私钥永远不会离开设备,因此Tailscale无法解密网络流量。通过针对公司的SSO标识提供者进行授权,可以将新节点添加到 Tailscale 网络。默认配置会导致节点从Tailscale 网络过期,除非定期重新进行身份验证,这会触发密钥轮换。还提供可选的设备状态检查,以防止设备加入网络,除非它们得到公司策略的批准。
在Tailscale中,管理员配置中央RBAC ACL策略,以便可以精确限制网络流量。尽管管理员可以在一个中央策略中制定访问规则,但该策略被编译成一组数据包过滤器,这些过滤器由各个节点本身强制执行,从而提供零信任网络所期望的安全属性。
Tailscale通过其标识提供者集成支持多重身份验证 (MFA)。
性能
与传统VPN相比,ZeroTier提供非常低的延迟连接,一旦建立了对等连接。现有带宽就会得到有效利用,用户很少遇到延迟问题。与Tailscale一样,ZeroTier用户遇到延迟问题的唯一情况是当对等连接被完全阻止并且必须回退到通过外部服务器进行中继时才会发生。
在大多数环境中,Tailscale的吞吐量与ZeroTier相似。从理论上讲,Tailscale使用的WireGuard协议占用的开销更低,因此延迟低于ZeroTier的协议,但在实际使用当中,这种差异并不明显。
网络管理
ZeroTier和Tailscale都提供多种定价计划,其中包含多个功能包。这两种产品都提供基于Web的仪表板,可以监视和配置网络。
总结
ZeroTier和Tailscale都提供点对点网状VPN技术。它们使用不同的协议来提供功能相似的服务。ZeroTier的协议是定制的,而Tailscale则使用行业标准的WireGuard协议作为其数据平面。这两种产品都提供NAT 遍历、加密的对等连接和管理仪表板。
补充说明:
2021年新的类似 Zerotier、Nebula、Tailscale 的组网软件:
1) netmaker: https://github.com/gravitl/netmaker
2) innernet: https://github.com/tonarino/innernet
好像是基于 WireGuard。