前陣子在 ivonblog 看到一篇 NetBird 設定教學,說它是「完全開源的客戶端與伺服端」的 WireGuard VPN,就想去挖一挖它的底細。結果越看越發現這東西不只是另一個 Tailscale clone——它在架構設計、授權模式跟 NAT 穿透機制上都有幾處值得單獨拿來說明的地方。

這篇文章就把 NetBird、Tailscale 和 ZeroTier 三套主流 Mesh VPN 攤開來比一比,特別聚焦在自架可行性、P2P 連線原理以及實際部署成本上。

- 廣告 -

底層協定:WireGuard vs 自家輪子

NetBird 跟 Tailscale 都建立在 WireGuard 之上。WireGuard 現在已經進到 Linux 內核,大約只有四千行程式碼,加密走 ChaCha20、Curve25519 和 BLAKE2s,安全審查記錄乾淨,效能也是公認的頂尖。NetBird 在 Linux 上甚至直接吃 kernel WireGuard,比 Tailscale 一律用 userspace 還要快一截。

ZeroTier 走的是自己的協定,不依賴 WireGuard。它活了很多年,生產環境驗證充足,但因為是自家輪子,外部安全審視的密度比不上 WireGuard 社群。它的獨家賣點是 Layer-2 支援——能在廣域網上橋接虛擬 LAN,廣播、ARP、甚至 Spanning Tree 都能跨網路跑。這對某些特定場景(像是跨站 Wake-on-LAN 或需要 broadcast discovery 的舊應用)很有用,但對大多數人來說,Layer-3 就夠了。

開源程度與自架能力:最大分水嶺

這塊是三者差異最明顯的地方。

NetBird 從客戶端到伺服器端全部開源。客戶端走 BSD-3-Clause,管理伺服器、Signal Server、Relay Server 走 AGPLv3。整套控制平面都可以丟到自己手上跑,部署完之後客戶端根本不需要 phone-home 到 NetBird 官方雲端。資料主權百分之百在自己手裡。

Tailscale 就相反——只有客戶端開源,控制平面(登入伺服器 login.tailscale.com、鑰匙分發、NAT 巡檢)全部托管在 Tailscale 雲端。雖然有 Headscale 這個第三方開源專案可以替代控制平面,但畢竟不是官方支援。

ZeroTier 的客戶端核心是開源的(MPL 授權),但網路控制器藏在 nonfree/ 資料夾裡,走 BSL 商業原始碼授權。自架 Moon 控制器可行,但缺少方便的管理介面,得靠 API 或 CLI 操作。商業環境要完整自架反而要談 Enterprise plan。

NAT Traversal:P2P 到底怎麼連上的?

很多人問 NetBird 需不需要公網 IP 才能跑 P2P?答案是:通常不需要

NetBird 使用 ICE(Interactive Connectivity Establishment)協議來尋找兩個 Peer 之間的最佳連線路徑,這跟 WebRTC 視訊通話用的技術一樣。整個過程可以拆成幾個階段:

每個裝置啟動後會先收集自己的候選地址——包含本機 IP、透過 STUN 伺服器發現的公網位址(server reflexive candidate),以及從 TURN Relay 取得的備援地址。接著兩個 Peer 透過 Signal Server 交換這些候選資訊,然後同時嘗試所有可能的配對連線。

當雙方都在 NAT 後面時,NetBird 會執行 UDP hole punching:Peer A 向 Peer B 的公網位址發封包(在 A 的 NAT 上打通一個洞),Peer B 同時做同樣動作(在 B 的 NAT 上也打一個洞)。兩個 NAT 現在都有 outbound mapping,回程封包就能通過,P2P 連線就此建立。

這個過程對一般家用路由器(Easy NAT / EIM)幾乎無感,插上就通。但遇到企業防火牆(Restrictive NAT / EDM)或電信業者的 CGNAT(雙重 NAT),hole punching 成功率會下降,這時候 NetBird 會自動 fallback 到 Relay Server。Relay 走 QUIC(UDP 優先)或 WebSocket over TCP(端口 443,穿透企業防火牆專用)。Relay 只會轉發加密封包,不會解密,所以端到端安全性不變。

NetBird P2P 連線流程

從上圖可以看到,P2P 始終是第一優先。Relay 只是備援機制,不是預設選項。這跟一些傳統 VPN 把所有流量都導回中心節點的做法有本質上的不同。

控制平面管理:ACL 與群組設定

Tailscale 的 Access Control 靠 JSON/HuJSON Policy File,功能強大但需要理解語法結構。NetBird 則提供完整的 Web UI,透過 Dropdown、按鈕和群組(Groups)來管理 ACL。對非網路背景的管理員來說,學習曲線明顯較平。

Network Routing 的部分也有差異。Tailscale 設定 subnet routing 需要多步驟操作——開啟 IP forwarding、CLI 宣告路由、Console 核准、Policy 更新。NetBird 用 Distribution Groups 自動應用路由配置,Exit Node 透過 Peer Groups 自動設定,幾乎不用手動敲指令。

授權與成本:自架 vs SaaS 的經濟學

這塊直接影響長期部署決策。

NetBird 自架完全免費,沒有 per-user 或 per-device 費用限制,唯一的成本就是自己的伺服器資源。雲端版有免費層(至多 5 使用者、100 裝置),Team plan 是 $5/人/月。

Tailscale 的個人版免費(6 人以内),但超過之後 Standard plan 要 $8/人/月,Premium plan $18/人/月。Enterprise 功能(進階 IdP、SAML)價格更高。對於一個有幾十台裝置的團隊來說,年費輕鬆破萬美元。

ZeroTier 的免費層縮水到 10 台裝置,Essential plan $18/月起按裝置數計費。商業自架要談 Enterprise pricing。

換個角度想:如果你有一台月費 NT$500 的 VPS,裝上 NetBird 之後可以無限制地讓幾十台裝置組網——這個經濟模型對大多數人來說相當誘人。

Reverse Proxy / Funnel:把內部服務公開出去

NetBird 從 v0.65(2026年2月)開始內建 Reverse Proxy,功能比 Tailscale Funnel 強不少:支援自訂網域、Let’s Encrypt 自動憑證、SSO/PIN/密碼保護、路徑級路由。Tailscale Funnel 目前只支援 *.ts.net 子網域且沒有進階驗證選項。

該選哪一套?

以下是一個簡單的決策矩陣:

選 Tailscale 如果:

  • 想要最少的設定摩擦,裝完就通
  • 團隊小(6人以內),不介意控制平面在雲端
  • 重視行動端體驗與 Taildrop 檔案傳輸
  • Homelab 快速原型驗證

選 NetBird 如果:

  • 需要完全自架、掌控資料主權
  • 裝置數量多,不想付 per-user 授權費
  • 需要 Zero Trust ACL + SSO + Posture Checks
  • 想要現代化的 Web UI 管理介面

選 ZeroTier 如果:

  • 需要 Layer-2 虛擬 LAN 功能(廣播、ARP)
  • 有複雜的網路拓撲需求
  • 團隊有足夠的網路專業背景來操作 API/CLI

小結

這三套工具的核心目標其實很一致:讓分散在不同位置的裝置像在同一個區域網一樣通訊。差別在於「誰控制控制平面」、「用什麼協定」以及「自架的成本有多高」。

NetBird 近兩年的發展速度很快,從一個比較粗糙的 WireGuard mesh VPN 變成現在功能完整的 Zero Trust 網路平台。如果你在意開源、自架和長期授權成本,它目前是這三裡面最值得考慮的選擇。Tailscale 在 UX 上仍然領先,ZeroTier 則在 Layer-2 場景有不可替代的地位。

沒有絕對正確的答案,只有跟你現有基礎設施最匹配的那一個。

- 廣告 -