ZeroTier One 版本发布说明深度解读:从 1.2 到 1.16 的关键演进与配置实战

发布时间:2026/9/13 18:29:18
ZeroTier One 版本发布说明深度解读:从 1.2 到 1.16 的关键演进与配置实战 ZeroTier One 版本发布说明深度解读从 1.2 到 1.16 的关键演进与配置实战【免费下载链接】ZeroTierOneA Smart Ethernet Switch for Earth项目地址: https://gitcode.com/GitHub_Trending/ze/ZeroTierOne本篇技术指南以仓库根目录的 RELEASE-NOTES.md 为骨架逐版本梳理 ZeroTier One 从 1.2 到 1.16 的核心更新并结合node/、service/、include/等目录下的真实源码讲清每个特性在代码中的落点——例如ZT_MAX_NETWORK_SPECIALISTS容量上限、enableMetrics与encryptedHelloEnabled两个local.conf开关、多线程包 I/O 与 multipath 的实现位置。读完本文你将能够对照源码理解各版本更新背后的设计意图并直接上手配置 1.16 系列引入的新选项。版本总览ZeroTier One 的发布节奏从 RELEASE-NOTES.md 可以看出ZeroTier One 的 1.x 主线大致分为三个阶段1.2.x2017 年奠定现代架构引入规则引擎、联邦根federated roots、multipath 前身的多路径选择。1.4.x – 1.6.x2019 – 2021 年引入 multipath 正式支持、DNS 推送、AES-GMAC-SIV 加密模式、Apple Silicon 支持并完成从 GPL3 到 BSL 1.1 的许可证变更。1.8.x – 1.16.x2021 年至今SSO/OIDC 完善、低带宽模式、Prometheus 指标、多线程包 I/O、HELLO 包加密、网络特定中继以及 1.16.0 的 MPL 许可证重构。官方在 1.10.2 的说明中明确提到“大部分开发精力已投入 2.0 版本”Most of our dev effort is going into version 2因此 1.x 的更新更多是稳定性修复与 2.0 特性回移back-port。1.16.2容量上限翻倍与安装修复发布于 2026-05-20 的 1.16.2 是当前最新版本核心变化如下ZT_MAX_NETWORK_SPECIALISTS从 256 提升到 512当网络中配置了过多的“特殊节点”active bridges、multicast replicators、always-contact 地址等时旧上限 256 会导致配置溢出。该版本将其翻倍至 512并同步提升了网络配置字典network config dictionary的容量。源码落点非常清晰宏定义位于 include/ZeroTierOne.h 的#define ZT_MAX_NETWORK_SPECIALISTS 512而在 node/NetworkConfig.cpp 与 node/NetworkConfig.hpp 中activeBridges()、multicastReplicators()、alwaysContactAddresses()三个访问器都以该宏为数组边界specialists[ZT_MAX_NETWORK_SPECIALISTS]直接决定每份网络配置的内存布局。提升宏值即可让大型网络的 specialists 配置全部生效避免被静默截断。其他修复Windows ARM x64 安装修复zttap300.inf的换行符问题。该驱动安装描述文件位于 windows/TapDriver6/zttap300.inf与 1.12.0 引入的实验性 Windows ARM64 支持一脉相承。Central Controller (CV1) 内部更新包含 schema 变更与多架构 Docker 构建流水线对应仓库中的 ext/central-controller-docker 目录及其迁移脚本migrations/*.sql。Windows 下切换网络延迟问题修复从离开一个网络到加入另一个网络时偶发的数分钟级卡顿。编译器告警清理覆盖 GCC 14、Clang 18、Clang 21 三个工具链。1.16.1指标采集默认关闭1.16.12025-12-22最重要的行为变更是Metrics 收集默认关闭需在local.conf中显式设置enableMetrics: true开启。同时修复了 daemon 模式下指标不记录、以及 debug dumpfile 被写到根目录的问题。在 service/OneService.cpp 中可以找到精确的读取逻辑bool enableMetrics OSUtils::jsonBool(settings[enableMetrics], false); if (enableMetrics) { ... }默认值false与发布说明一致。开启后Prometheus 兼容指标会输出到 home 目录下的metrics.prom文件见 service/OneService.cpp 与 service/OneService.cpp 中对metrics.prom的写入。该能力最早在 1.12.0 引入1.16.1 起改为白名单式开启以降低默认开销。一个完整的local.conf参考结构完整字段说明见 service/README.md{ settings: { enableMetrics: true, /* 收集指标到 metrics.prom */ encryptedHelloEnabled: false, /* HELLO 包加密1.16.0 新增 */ lowBandwidthMode: false, /* 低带宽模式1.10.3 引入 */ forceTcpRelay: false, /* 强制 TCP 中继1.10.3 引入 */ primaryPort: 9993, portMappingEnabled: true } }此外1.16.1 还包含 Mac 与 BSD 的 tun/tap 代码小幅修复。1.16.0许可证重构与新中继架构1.16.02025-08-21是近几年轻量版本中变化最大的一次发布。许可证核心 MPL控制器转为商用源码可用核心node/与include/及服务service/与osdep/改为Mozilla Public License (MPL)对应仓库根目录的 LICENSE-MPL.txt。网络控制器controller/改为商业源码可用许可其实现位于 nonfree/controllerEmbeddedNetworkController.cpp、FileDB.cpp、PostgreSQL.cpp等。默认二进制构建不再包含控制器如需构建非 MPL 组件使用make ZT_NONFREE1按发布说明使用ZT_NONFREE1构建出的可执行文件许可证会从 MPL 变为专有商业许可。仓库中 objects-nonfree.mk 与 nonfree/CMakeLists.txt 即为非 MPL 组件的构建入口。网络特定中继Network-Specific Relays预览/测试这是 1.16.0 最值得关注的功能可以指定一个或多个节点作为某特定网络的专属中继当网络成员之间的流量需要中继时优先走这些网络特定中继而不是全局根服务器roots。关键设计点是这些中继节点不一定是该网络的成员。从源码结构看该能力已进入核心拓扑逻辑——node/Topology.hpp 中出现了network preferred relay的判断注释True if this is a root server or a network preferred relay from one of our networks说明中继选择路径已在 Topology 层落地。官方明确表示Moons自建根进一步被降级为“更加弃用”新部署不应再使用网络特定中继在更多用户实测与内部验证完成前仍属预览特性。HELLO 包加密encryptedHelloEnabledHELLO 包是节点握手时的首个数据包。1.16.0 提供可选加密通过local.conf的encryptedHelloEnabled开启{ settings: { encryptedHelloEnabled: true } }读取代码位于 service/OneService.cpp_node-setEncryptedHelloEnabled(OSUtils::jsonBool(settings[encryptedHelloEnabled], false));发布说明指出HELLO 包本身不含业务数据只携带公钥与极少量元数据如协议版本号。大多数用户无需开启若因合规等原因需要可开启代价是 HELLO 握手阶段少量 CPU 与带宽开销。小修复与工程化全库改用clang-format统一格式仓库中.clang-format定义与make clang-format目标可一键格式化所有核心与服务 C 文件。网桥不再计入组播multicast上限且组播会发送给所有网桥——对应 PR #2477逻辑位于 node/Multicaster.cpp 的activeBridges处理。修复 multipath 场景下桥接流量的一条流标识flow designation问题。OIDC 等库版本升级出于预防性考虑删除陈旧未用的软件更新代码。新增 OpenTelemetry 支持Central Controllers相关依赖位于 ext/opentelemetry-cpp-api-only。支持从 Docker 环境变量注入local.conf内容PR #2445对应 ext/central-controller-docker/main.sh 中的配置生成逻辑。1.14 系列多线程包 I/O 与 multipath 打磨1.14.1Linux 多线程包 I/O1.14.12024-09-12引入多线程包 I/O目前仅限 Linux且必须在local.conf中启用。官方评估该特性对“CPU 是瓶颈且追求高吞吐”的小型多核设备收益最大。难点在于保持报文顺序与负载均衡的平衡这也是它暂不默认开启、需充分测试的原因。同时该版本向网络控制器上报节点平台信息OS、CPU 架构便于网络管理员查看并用于未来的策略检查与资产盘点。1.14.0 与 1.14.21.14.0Linux 高负载下 I/O 性能改进、multipath 改进、修复离线一段时间后的端口重绑定“coma”问题、修复规则引擎歧义GitHub Issue #2200、控制器 API 支持节点名称与元数据。1.14.2修复 macOS Sequoia 缺失 entitlement、修复local.conf中低带宽模式解析问题。更早版本的关键演进回顾1.12.x指标与 ARM641.12.0实验性 Windows ARM64 支持、macOS 休眠/唤醒修复、Prometheus 兼容指标即后续metrics.prom的源头、Linux 10–30% 提速。1.12.1/1.12.2Linux 端口绑定修复macOS 全隧道模式改进与网络设置变更后更快恢复。1.10.x低带宽模式、forceTcpRelay 与 multipath 成熟1.10.2multipath 的 CLI 输出改进、balance-aware 模式、自定义策略、链路质量测量优化。1.10.3新增low-bandwidth mode与forceTcpRelay可选。二者在源码中均有对应config.lowBandwidthMode的赋值见 service/OneService.cppforceTcpRelay的解析见 service/OneService.cpp——其中还包含一条重要约束forceTcpRelay 与 multipathbond不能同时使用若同时启用会打印警告并自动禁用 forceTcpRelayforceTcpRelay cannot be used with multipath。TCP 中继本身受allowTcpFallbackRelay控制默认 true。1.10.4Windows 安全修复见下文。1.10.5/1.10.6Windows 高 CPU 修复、macOS 临时 IPv6 地址绑定预防、路径学习环路预防。1.8.xSSO/OIDC 与“coma”问题攻坚1.8 系列围绕 SSO/OIDC 做了大量修复1.8.9 修复“幽灵”包认证失败、SSO 内存泄漏、节点证书推送失败、离开 SSO 网络死锁等同时在 1.8.0 引入次级端口自动重绑定机制当 NAT/路由器异常导致服务长时间离线时ZeroTier 会分配新的次级端口除非在local.conf中手动指定这是对“connection coma”问题的持续对抗。1.8.1 起 Windows 7 不再受支持。1.6.xAES-GMAC-SIV、multipath 与 Apple Silicon1.6.0 是从 2.0 分支回移特性的“大版本”AES-GMAC-SIV 加密模式在支持 AES 加速的硬件几乎所有 x86-64、多数 ARM64上比旧的 Salsa20/12-Poly1305 更快且安全性更优基于 AES-SIV 实现并经过 Trail of Bits 审计。已知限制32 位 ARM、PowerPC、MIPS 暂不支持硬件 AES 加速。Multipath 正式支持模式借鉴 Linux 内核 bonding 驱动含 active-passive 与 active-active支持快速故障切换与负载均衡。bond 相关实现位于 node/Bond.cpp 与 node/Bond.hpp。DNS 配置推送控制器可向节点推送 DNS 配置节点侧可本地配置是否允许对应 JSON API 中/network/id的allowDNS可写字段见 service/README.md。Apple Silicon 原生支持通过 universal binary 提供 macOS ARM64 支持。1.4.x 与 1.2.x规则引擎与路径选择重构1.4.0macOS 不再依赖内核扩展改用 feth 接口、并发多路径、底层 QoS 预留1.4.4 起许可证从 GPL3 改为 BSL 1.1。1.2.6路径选择大改、远程追踪remote tracing、指定组播复制器、ARM NEON 加密加速1.2.4 集成 supercop 的 Salsa20/12 汇编实现x86-64 最高 2 倍加密加速1.2.0 引入规则引擎distributed network packet filtering对应仓库的 rule-compiler 目录与联邦根federated roots即moons.d/。安全相关更新汇总发布说明中值得重点记录的安全条目1.10.4Windows修复服务工作目录文件权限问题未授权本地用户可能读取特权文件并管理本地实例不可远程利用仅影响 Windows。1.8.8Windows修复安装器中本地提权漏洞。1.6.6回移 COM 哈希检查缓解网络成员冒充。1.8.1进一步加强对网络内地址冒充的防御。1.2.12修复控制 API 无效 URL 可能导致的崩溃需管理员权限不可利用。升级建议Windows 用户应至少升级至 1.10.4 以规避本地权限问题所有平台用户建议跟踪 1.16 系列以获得最新修复。结语如何对照源码继续深入本文所有结论均可在当前仓库中验证版本变更总览RELEASE-NOTES.mdlocal.conf完整字段与 JSON API 说明service/README.mdspecialists 上限与网络配置结构include/ZeroTierOne.h、node/NetworkConfig.hpp、node/NetworkConfig.cpp配置解析与服务主循环service/OneService.cpp中继/拓扑选择逻辑node/Topology.hpp、node/Switch.cpp非 MPL 控制器组件nonfree/controller对于 1.16 系列的运维者实操清单是确认ZT_MAX_NETWORK_SPECIALISTS扩容是否解决大型网络 specialists 截断按需在local.conf开启enableMetrics与encryptedHelloEnabled新部署避免使用 Moons关注网络特定中继的后续正式化进展Linux 多核低端设备可尝试启用多线程包 I/O 观察吞吐变化。【免费下载链接】ZeroTierOneA Smart Ethernet Switch for Earth项目地址: https://gitcode.com/GitHub_Trending/ze/ZeroTierOne创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询