🏗️ 架构概述

NetBird 由四大核心组件构成:

┌─────────────────────────────────────────┐
│            Management Service            │
│  (用户/组/策略/IP/密钥管理)              │
└─────────────────────────────────────────┘
         │                    │
    ┌────┴────┐          ┌────┴────┐
    │ Signal  │          │  Relay  │
    │(信令)   │          │(中继)   │
    └────┬────┘          └────┬────┘
         │                    │
    ┌────┴────────────────────┴────┐
    │         Client (Agent)        │
    │   WireGuard + P2P Tunnel     │
    └───────────────────────────────┘

📦 四大组件

1. Client(客户端)

  • 运行在每台设备上的代理程序
  • 管理 WireGuard 接口和隧道
  • 与 Management 服务通信获取配置
  • 与 Signal 服务协调建立 P2P 连接

2. Management(管理服务)

  • 中央控制平面
  • 管理用户、组、访问策略
  • 分配 IP 地址和 WireGuard 密钥
  • 提供 Web Dashboard

3. Signal(信令服务)

  • 协调 P2P 连接建立
  • 交换候选地址和公钥
  • 基于 Pion ICE (WebRTC)

4. Relay(中继服务)

  • 当 P2P 直连失败时中继流量
  • 基于 Coturn (TURN)
  • 支持自托管

🔄 连接建立流程

  1. 注册 - Client 向 Management 注册并认证
  2. 获取配置 - Management 返回 IP、密钥、策略
  3. 发现 Peer - 通过 Signal 发现其他在线设备
  4. NAT 穿透 - STUN 探测公网地址
  5. 建立隧道 - WireGuard P2P 加密隧道
  6. 回退中继 - 如 P2P 失败则使用 Relay

🔧 技术栈

  • WireGuard - VPN 协议
  • Pion ICE - NAT 穿透(WebRTC)
  • Coturn - TURN 中继服务器
  • Go - 主要开发语言
  • gRPC - 组件间通信
  • PostgreSQL/SQLite - 数据存储
← 上一页:核心特性下一页:安装部署 →