SSD Nodes Learn Hosting plans →
指南 Matt Connor作者: Matt Connor · 更新于 2026-10-05

NetBird 与 Tailscale 怎么选:网状 VPN 对比

NetBird 与 Tailscale 都使用 WireGuard,差别在控制平面、访问规则和中继机制。本文比较托管服务与自托管 NetBird 的实际成本、配置方式及适用场景。

NetBird 与 Tailscale:简短结论

选择 NetBird 还是 Tailscale,关键在于控制平面,因为这两种网状 VPN 都使用 WireGuard 传输数据包。Tailscale 为您运行协调服务器,但该服务器不是开源的。NetBird 也提供同类托管服务,同时按照开放许可证发布其管理服务器,因此您可以将整个系统运行在一台 VPS 上。如果您不希望由自己负责运行服务器,请选择 Tailscale。如果控制平面必须运行在您控制的硬件上,请选择 NetBird。

如果您仍在比较两个以上的工具,请先查看更完整的 Tailscale 替代方案列表。下面几节将直接比较这两个工具,重点说明它们在四个方面的实际差异。

相同点:底层都是 WireGuard

网状 VPN(虚拟专用网络)会让每台设备直接连接到其他每台设备。流量不会经过某个中央网关。两种工具都会为每台设备生成一对 WireGuard 密钥。私钥在设备上生成,永远不会离开设备。随后,两者都会尝试在两个对等端之间建立直接隧道。只有在直接路径失败时,才会使用中继。

这意味着,两种产品在线路上使用的是相同的加密协议。任一系统中的中继都会转发无法解密的 WireGuard 数据包,因为中继从未持有私钥。如需了解完全没有控制平面时的基线,请阅读纯 WireGuard 之上 Tailscale 增加了什么。

数据路径中确实存在一个差异。Tailscale 通过 wireguard-go 在用户空间运行 WireGuard。NetBird README 列出了 Linux 上的内核 WireGuard。不要仅凭这一点做出选择。在自己的 VPS 上通过隧道运行 iperf3。性能限制通常首先来自 CPU、带宽配额或对等端之间的网络路径。

谁运行控制平面?

控制平面是保存每台设备公钥和隧道地址的服务器。它会告知每台设备有哪些对等节点,以及该设备可以访问哪些对等节点。它不承载您的网络流量。

Tailscale。协调服务器不是开源的,只作为 Tailscale 托管服务运行。客户端是开源的,包括各个平台上的核心守护进程,以及完整的 Linux 和 Android 客户端。Windows 和 macOS 的图形应用是闭源的。DERP(Tailscale 的中继服务器)的代码是开源的。如果您需要在自己的服务器上运行兼容 Tailscale 的控制平面,可以使用 Headscale。Tailscale 将其描述为一个独立、由社区维护的项目,且不对其进行管理。相关设置请参阅将 Headscale 作为自行托管的 Tailscale 控制服务器运行。

NetBird。app.netbird.io 提供托管云服务,您也可以从 GitHub 获取相同的代码并自行运行。截至 2026 年 10 月,仓库 README 明确列出了许可证。客户端和仓库中的大部分代码采用 BSD-3-Clause 许可证。management/、signal/ 和 relay/ 目录采用 AGPLv3 许可证(GNU Affero General Public License,第 3 版)。AGPL 增加了一项条件。如果您修改这些服务器,并允许其他人通过网络使用它们,就必须向这些用户提供您修改后的源代码。

NetBird 的服务器端由三个部分组成。management 服务保存网络状态,包括对等节点密钥、IP 地址分配、访问控制和 DNS 设置。signal 服务帮助两个对等节点交换连接候选项。这些消息在对等节点之间加密,因此 signal 无法读取消息内容。不存在直接路径时,relay 服务负责承载流量。

如何分别编写访问规则?

两款产品都会以允许所有流量的规则启动新网络。在您修改规则之前,任何设备都可以访问其他所有设备。添加存放重要数据的服务器前,应先替换该规则。

Tailscale:单个策略文件

Tailscale 将所有访问规则保存在 tailnet 策略文件中。该文件使用 HuJSON(human JSON)格式,也就是支持注释和尾随逗号的 JSON。您可以在管理控制台中编辑,也可以通过 API 推送。当前规则写作 grants。此文件允许一个组通过 SSH 和 HTTPS 访问带有标签的生产服务器。文件还包含一项测试:

{
  "groups": {
    "group:engineering": ["alice@example.com", "bob@example.com"]
  },
  "tagOwners": {
    "tag:production": ["group:engineering"]
  },
  "grants": [
    {
      "src": ["group:engineering"],
      "dst": ["tag:production"],
      "ip": ["tcp:22", "tcp:443"]
    }
  ],
  "tests": [
    {
      "src": "alice@example.com",
      "accept": ["tag:production:22"]
    }
  ]
}

tests 部分很重要。每次策略文件发生更改时,其中的断言都会作为检查运行,因此错误编辑会在应用前被发现。新 tailnet 的默认策略只有一个 acls 条目,其中包含 "src": ["*"] 和 "dst": ["*:*"]。完全省略 acls 字段也表示允许所有流量。配置好所需授权后,应删除该条目。截至 October 2026,免费 Personal 计划提供 3 个 ACL 组。

NetBird:在控制面板中配置组和策略

NetBird 通过组和策略构建访问控制。组是一组对等节点。您可以手动将对等节点加入组,也可以通过 setup key 关联的组加入,或使用身份提供商中的用户组。策略指定源组和目标组。策略可以是单向的,也可以是双向的。策略还可以限制协议和端口,端口范围写作 8000-9000。策略还可以包含状态检查。状态检查是对等节点在允许连接前必须满足的条件。

您可以在控制面板中完成所有配置。新账户会附带名为 Default 的策略,允许所有对等节点相互通信。请先添加自己的策略,然后禁用 Default。如果您希望使用文本格式的规则,NetBird 提供公共 REST API。它还提供官方 Terraform provider(netbirdio/netbird),同时支持 NetBird Cloud 和自托管管理服务器。NetBird 访问控制文档没有说明类似 Tailscale tests 部分的内置测试断言。使用 Terraform 时,请改为检查计划输出。

不存在直接路径时,流量如何中继?

两种工具都会先尝试直接连接。它们使用 STUN(NAT 会话遍历工具)获取每个对等端的公网地址。然后,双方都会尝试通过 NAT(网络地址转换)建立路径。严格的防火墙和某些移动网络会阻止此操作,因此两种工具都需要备用方案。

Tailscale 会回退到 DERP(数据包指定加密中继)服务器。Tailscale 在许多区域运行这些服务器,并通过 HTTPS 承载流量。你无需额外付费。Tailscale 还支持对等中继。对等中继是由你自己的某台设备充当中继,Tailscale 会先尝试使用它,然后才使用 DERP。Tailscale 文档将对等中继列为一种方案:当 DERP 无法提供足够低的延迟和足够高的吞吐量时,可以使用它。对等中继于 2026 年 2 月 18 日全面可用,所有计划(包括免费计划)均支持。你可以为其启用一个自选 UDP 端口,并在策略文件中通过授权规则允许它:

sudo tailscale set --relay-server-port=40000

要查看连接使用的路径,请对某个对等端运行 tailscale ping。如果回复显示 via DERP(fra),则表示连接经过中继。如果回复显示 IP 地址和端口,则表示连接是直接的。如果连接始终经过中继,请参阅Tailscale 中继连接速度慢以及建立直接连接的方法,了解相关原因。

NetBird 在较早版本中通过 coturn TURN 服务器中继流量。版本 0.29.0 引入了 NetBird Relay,此后它已取代 coturn,用于中继连接。该中继通过 /relay 路径接受 WebSocket 连接,也可以在 UDP 端口 33080 上使用 QUIC。当前指南还将 STUN 移入中继服务。在 NetBird Cloud 上,NetBird 负责运行中继。在自行托管的服务器上,你负责运行中继。每个经过中继的字节都会计入 VPS 带宽,每条经过中继的路径都会经过该 VPS 所在的位置。使用以下命令检查每个对等端的路径:

netbird status -d

每个对等端都会显示连接类型:P2P(直接连接)或 Relayed。

在一台 VPS 上自行托管 NetBird 需要做什么?

官方快速入门使用一个脚本配置完整的服务器端。截至 October 2026,该脚本要求一台至少有 1 个 CPU 和 2 GB 内存的 Linux 计算机。还需要一个解析到 VPS 的公网域名、带 compose 插件的 Docker、jq 和 curl。在 VPS 防火墙中放行 TCP 80、TCP 443 和 UDP 3478。还要在服务商的网络防火墙中放行这些端口;在大多数控制面板中,这是独立的控制项。

export NETBIRD_DOMAIN=netbird.example.com; curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started.sh | bash

该脚本会部署以下四类服务:

  • Traefik 反向代理,并使用 Let's Encrypt 提供的 TLS(传输层安全)证书。
  • 内置 Dex 服务器作为身份提供商,因此无需外部登录系统,即可在控制面板中创建用户。
  • 上文介绍的管理、信号和中继服务。
  • 可选组件:NetBird Proxy 服务和 CrowdSec IP 信誉过滤。

现在,这些组件都由您负责运行。身份提供商决定谁可以登录和添加设备。对于小型团队,Dex 已经足够。之后可以连接外部单点登录提供商,例如自行托管的 Authentik SSO 服务器。TLS 依赖执行顺序。Let's Encrypt 通过连接此 VPS 验证域名,因此应在运行脚本前创建 DNS 记录并放行端口。如果域名尚未解析到 VPS,验证会失败,也不会签发证书。备份和升级也由您负责。完整安装步骤以及每一步后的检查,参见自行托管 NetBird VPN 服务器的指南。

逐台将 Linux 服务器加入

加入网状网络需要访问控制平面的出站网络连接,因此请在您自己的计算机上运行以下命令。服务器没有浏览器,因此这两个工具都使用预先创建的密钥,而不是交互式登录。

Tailscale 使用管理控制台中的身份验证密钥:

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --auth-key=YOUR_AUTH_KEY
tailscale status

tailscale status 应列出此计算机及其 100.x.y.z 地址,同时列出 tailnet 中的其他设备。未设置过期时间的身份验证密钥会在 90 天后过期,这是允许的最长期限。已经加入网络的服务器会继续保持加入状态。用于加入新服务器的脚本需要使用新密钥。

NetBird 使用控制面板中的设置密钥:

curl -fsSL https://pkgs.netbird.io/install.sh | sh
netbird up --setup-key YOUR_SETUP_KEY
netbird status

对于自托管服务器,请将 --management-url https://netbird.example.com 添加到 netbird up 行。否则,客户端会连接 NetBird Cloud,而 NetBird Cloud 不知道您在自己的服务器上创建的设置密钥。netbird status 应报告管理服务和信令服务均已连接。

截至 2026 年 10 月的免费方案和价格

这些数据来自 2026 年 10 月 2 日的两份价格页面。价格会变化,因此在确定方案前请再次确认。

Tailscale Personal 最多支持 6 个用户,并且用户设备数量不限。该方案包括 50 个带标签资源(属于某个标签而非某个人的服务器)和 3 个 ACL 组。付费方案中,Standard 为每位用户每月 $8,Premium 为每位用户每月 $18。Enterprise 需要询价。家庭或小型团队实际需要为 Tailscale 支付多少费用一文介绍了各种特殊情况。

NetBird Cloud 最多支持 5 个用户和 100 台计算机。Team 方案为每位用户每月 €6,Business 方案为每位用户每月 €12。Enterprise 需要询价。付费方案包括 100 台计算机,外加每位用户 10 台;每增加 1 台计算机,每月需支付 €0.50。Self-hosted NetBird 不收取许可费用。您需要支付 VPS 费用,以及运行它所需的时间成本。

满足以下条件时,选择 Tailscale:

  • 团队中没有人愿意运行、修补或备份控制服务器。
  • 希望将访问规则集中在一个文本文件中,并通过测试在错误变更生效前将其拦截。
  • 用户经常出差,需要从酒店网络和移动网络连接。在这些场景下,Tailscale 分布在多个区域的 DERP 服务器可提供就近的备用连接,无需额外设置。
  • 团队规模符合 6 用户免费套餐的限制,或者可以接受按用户计费的价格。

如果符合以下情况,请选择 NetBird……

  • 控制平面必须运行在您自行管理的基础设施上,并且使用官方项目,而不是另一套独立实现。
  • 您需要在自托管网络中支持超过 6 人,且不按用户收费。
  • 您的团队更倾向于在仪表板中管理组和策略,或者已经在其他场景中全面使用 Terraform。
  • 您希望先使用 NetBird Cloud,同时保留迁移到自有服务器的选项,并继续使用同一个客户端。

两者各自缺少的功能

本节内容均来自厂商自己的文档或定价页面,核查日期为 2 October 2026。

Tailscale 缺少:

  • 官方自托管控制服务器。协调服务器不是开源软件,Headscale 是独立的社区项目。
  • Windows 和 macOS 上的开源图形客户端。底层 daemon 是开源的,但客户端应用不是。

NetBird 缺少:

  • 针对访问策略的内置测试断言。其访问控制文档没有说明此类功能,因此策略审查依赖您手动完成,或依赖 Terraform plan。
  • 自托管时,没有由其他方运行的中继服务器。您的中继服务器运行在自己的 VPS 上。距离该 VPS 较远的对等节点会经过较长的中继路径,带宽费用也由您承担。

两者默认都使用 allow-all 策略,因此新建网络在您编写规则前完全开放。有关托管端的完整威胁模型,请参阅 托管控制平面能够看到什么以及无法看到什么。

FAQ

NetBird 完全开源吗?

是,但采用两种许可证。截至 2026 年 10 月,NetBird README 声明客户端和仓库的大部分内容采用 BSD-3-Clause 许可证。management/、signal/ 和 relay/ 目录采用 AGPLv3 许可证。如果您修改这些服务器组件,并通过网络让其他人使用它们,AGPL 要求您向这些用户提供修改后的源代码。

我可以像部署 NetBird 一样自行托管 Tailscale 的控制服务器吗?

不可以。Tailscale 的协调服务器不是开源软件,只作为其托管服务运行。通常的自托管替代方案是 Headscale。它是独立的开源协调服务器,可与官方 Tailscale 客户端配合使用。Tailscale 雇用了 Headscale 的主要维护者,但表示不会直接管理该项目。

在 NetBird 或 Tailscale 中,中继服务器能读取我的网络流量吗?

不能。在这两个产品中,WireGuard 私钥都在设备本地生成,且不会离开设备。Tailscale DERP 服务器、Tailscale 对等节点中继和 NetBird 中继只转发加密的 WireGuard 数据包。中继服务器仍然可以看到它连接了哪些对等节点,以及它们之间传输了多少数据。

自托管 NetBird 需要什么 VPS?

截至 2026 年 10 月,官方快速入门要求至少 1 个 CPU 和 2 GB 内存。此外,还需要一个解析到该 VPS 的公网域名、带 compose 插件的 Docker,以及开放的 TCP 80、TCP 443 和 UDP 3478 端口。还应为中继流量预留带宽。在自托管服务器上,每个经过中继的连接都会通过您的 VPS。

哪个产品的免费计划更大?

截至 2026 年 10 月,Tailscale Personal 允许最多 6 个用户,并支持不限数量的用户设备。NetBird Cloud 免费计划允许最多 5 个用户和 100 台机器。自托管 NetBird 服务器没有用户数量限制,也不收取许可证费用,但您需要支付 VPS 费用并自行运行服务器。