NetBird 是覆盖网络软件:隧道用 WireGuard,公钥、地址和访问规则由管理服务分发。截至 2026-10-12,最新正式标签是 v0.80.0(2026-10-01)。带 canary 的标签不在本文范围内。本文不含安装步骤。
NetBird 是什么
一个可独立引用的定义句:NetBird 是建在 WireGuard 之上的覆盖网络平台;客户端管理隧道,管理服务保存网络状态,并把公钥、地址和访问规则发给获准互访的对端。
v0.80.0 的 README 把产品写成两件事合在一处:少做手工配置的对等私网,加上集中的访问控制。数据面句子写的是 “WireGuard-based overlay network”。WireGuard 本身的隧道模型见 WireGuard 与 OpenVPN。
WireGuard 不是 IETF RFC。NetBird 的管理、信令和中继也没有一份独立的 IETF 规范。下面的组件分工来自文档,不是 RFC 编号。
沿革与维护者
GitHub 仓库 netbirdio/netbird 的创建时间是 2021-04-14。官方博客 Wiretrustee becomes NetBird 宣布产品改名,并写明 2022-03-26 起网站、博客和文档改到 netbird.io,仓库改挂到 netbirdio 组织。博客点名迁移的仓库是 wiretrustee 与 wiretrustee-dashboard。
v0.80.0 根目录 LICENSE 的版权行是 Copyright (c) 2022 NetBird GmbH & AUTHORS。README 另有一句:2022 年 11 月,NetBird 加入德国联邦教育与研究部资助的 StartUpSecure 计划,并与 CISPA 亥姆霍兹信息安全中心一起被写进这句。这是 README 的自我介绍。本文没有核对资助合同。
本次读取的贡献计数中,mlsmaycon 为 670,pascal-fischer 为 564,lixmal 为 520,braginini 为 443,pappz 为 410。计数会随新提交变化,不能单独证明职务。本文没有把这些登录名写成法律姓名。
第三方商业登记摘录把法律名称从 Wiretrustee UG 改为 NetBird GmbH 的日期写成 2024-10-29。本文没有核对柏林夏洛滕堡法院的原始登记簿,因此不收录董事名单,也不把版权行里的 “2022 NetBird GmbH” 和那份摘录收成同一件事。
v0.80.0 的 go.mod 声明 go 1.26.0,并把工具链钉在 go1.26.7。
许可证:README 和 LICENSE 的例外名单不一致
v0.80.0 根目录 LICENSE 写明:BSD 3-Clause 适用于仓库的其余部分;management/、signal/、relay/ 和 combined/ 适用 GNU AGPL 第 3 版。这四个目录里的 LICENSE 文件都是 AGPL 第 3 版文本。combined/ 在该标签下有 main.go 与 Dockerfile。本文没有通读它的职责说明,也没有逐个源文件核对是否另写了「或任何更新版本」。
同一标签的 README 把例外写成只有 management/、signal/ 和 relay/,没有出现 combined/。页眉徽章仍只写 BSD-3。GitHub 对整仓给出的 SPDX 是 NOASSERTION,与这种分段许可相符。
BSD 3-Clause 允许再分发源码和二进制,条件包括保留版权声明,以及未经书面许可不得用版权人的名字为衍生作品背书。AGPL 第 3 版则带有向网络用户提供对应源码的义务。这是两份许可证文本的差别,不是对项目的评价。两份文本都是 OSI 批准过的许可证类型;分段方式以根目录 LICENSE 为准,README 那句是较短的说法。
管理界面在 README 的功能表里指向另一个仓库 netbirdio/dashboard。本文没有核对那个仓库的许可证。
架构:客户端、管理、信令、中继
How NetBird Works 的页脚写着更新于 2026-10-05,比标签 v0.80.0 晚四天。下表是这一页的组件,不是对 v0.80.0 源码的逐行复核。
| 组件 | 该页写明的角色 |
|---|---|
| 客户端 | 生成 WireGuard 密钥,私钥留在本机;向管理服务注册;接收网络图;建立点对点隧道;把访问规则落到本机防火墙 |
| 管理服务 | 登记并认证对端,保存公钥和网络图,分配地址,推送变更,管理访问规则、私有 DNS 和用户 |
| 信令服务 | 让对端交换连接候选。该页写明它不存储数据,流量也不经过它 |
| 中继服务 | 直连做不到时转发流量。WireGuard 仍是端到端加密,中继看不到明文 |
管理服务可以是 NetBird 托管的,也可以自己运行。这是该页列出的两种形态,不是对其中一种的建议。
地址来自运营商级 NAT 的地址块 100.64.0.0/10。这个块在 RFC 6598 里划给共享地址空间。文档写明:每个账户在这个块里默认随机得到一个 /16,新对端再从中随机拿一个空闲地址;对端删除后地址立即收回,没有保留期。共享地址空间的一般含义见 CGNAT 是什么。
发现路径用的是 ICE 和 STUN。文档点名的实现是 Pion ICE。ICE 的规范是 RFC 8445,STUN 的现行规范是 RFC 8489。候选地址经信令送给对端。信令消息的正文按该页的写法,用双方私钥与对方公钥推出的共享密钥做端到端加密,并注明是 NaCl 的 box:Curve25519、XSalsa20、Poly1305。信令能看见两边的公钥,从而知道谁在和谁说话,但看不见正文。NAT 穿越的概念背景见 VPN NAT 穿越与打洞。
中继一节同时写了两件事:他们使用开源的 Coturn;自 v0.29.0 起引入基于 WebSocket 的中继,意图替换先前的 TURN。这一页没有写替换已经完成。因此不能把「现在只有 Coturn」或「现在只有 WebSocket」写成定论。
访问规则由客户端执行。该页举例说会用系统上可用的防火墙管理器,例如 nftables。这是举例,不是配置步骤。哪些地址被放进 WireGuard,属于隧道上的路由语义,见 WireGuard AllowedIPs 是什么。
私有 DNS 由客户端里的解析器处理。该页把对端的完全限定域名写在 netbird.cloud 命名空间。这是该句的原话。自己托管时后缀是否不同,这一页没有展开。分离 DNS 的一般概念见 VPN 分离 DNS 是什么。
文档还点名的其他技术
v0.80.0 的 README 写明,项目建立在 WireGuard、Pion ICE 和 Rosenpass 之上。功能表有一行 “Quantum-resistance with Rosenpass”,链接指向 NetBird 自己的一篇知识库文章。本文不转述那篇文章的标题或宣传句,也不展开 Rosenpass 的握手。后量子密钥交换作为更一般的话题,见 VPN 的未来。
同一张功能表把 “Kernel WireGuard” 列为连通性的一项,并把平台从 Linux、macOS、Windows、Android、iOS 一直列到若干路由器、NAS 和容器的文档页。这是功能表。哪些平台实际使用内核模块、哪些使用用户态实现,表本身没有逐项说明,本文也没有复测。
文档中的典型用途
这些是文档里的角色,不是建议选它:
- 让一批机器组成加密的私网,由管理服务分配地址并分发 WireGuard 公钥。
- 用组和访问规则限制哪些对端可以互访。规则在客户端执行。
- 功能表还列出到外部网络的路由和出口节点。那是表上的条目名称。路由如何写进隧道,见 AllowedIPs 一文,这里不给出配置。
- 直连失败时,由中继转发已经用 WireGuard 加密的包。
它不解析浏览器该走哪个 HTTP 代理,也不实现 IKE。那些是另一类软件,见 HTTP 代理与 VPN 有何不同。
和相关项目差在哪
| 项目 | 重心 | 与 NetBird 的边界 |
|---|---|---|
| NetBird | WireGuard 数据面,加上自己的管理、信令和中继 | 客户端不是 Tailscale 客户端 |
| Headscale | Tailscale 控制服务器的自托管实现 | 数据面仍是 Tailscale 客户端上的 WireGuard。见 Headscale 是什么 |
| WireGuard | 隧道协议 | 不附带这套管理、信令和中继 |
| Nebula | 证书、分组和 lighthouse | 数据面不是 WireGuard。见 Nebula 是什么 |
| strongSwan | IKE 与内核 IPsec | 协商的是 RFC 7296 等公开规范,不是 WireGuard。见 strongSwan 是什么 |
引用时先分开的五件事
- 版本:正式标签 v0.80.0 发布于 2026-10-01。架构页更新于 2026-10-05,可能含标签之后的句子。
- 许可证:以根目录
LICENSE的四段 AGPL 例外为准。README 少写了combined/。 - 路径:直连是文档中的常规路径,中继是后备。信令不转发流量。
- 中继实现:同一页既写 Coturn,也写自 v0.29.0 起意图替换它的 WebSocket 中继,但没有宣布替换结束。
- 公司法律名称的变更日期来自第三方登记摘录,本文没有核对法院原文。
本文只整理公开资料。组网仍然要遵守网络所有者和当地法规的要求;这里不讨论绕过访问控制的做法。
主要资料
- 源码与标签 v0.80.0:netbirdio/netbird
- 架构说明:How NetBird Works(页脚日期 2026-10-05)
- 文档首页:docs.netbird.io
- 改名公告:Wiretrustee becomes NetBird
- 许可证:标签 v0.80.0 的根目录
LICENSE,以及management/、signal/、relay/、combined/下的LICENSE - 地址块:RFC 6598;ICE:RFC 8445;STUN:RFC 8489