香港服务器搭建Netbird企业Mesh VPN:多台服务器零配置组内网 + 访问控制实战

香港服务器搭建Netbird企业Mesh VPN:多台服务器零配置组内网 + 访问控制实战

传统 VPN(OpenVPN/WireGuard)需要中央服务器做流量中转,所有流量都经过这个节点,既是性能瓶颈也是单点故障。Netbird 基于 WireGuard 的 Mesh VPN 架构,设备间直接点对点加密通信,只有在穿越 NAT 时才经过信令服务器。开源版本可以完全自托管,是 Tailscale 的零依赖替代。


一、Mesh VPN vs 传统 VPN

维度传统 VPN(OpenVPN)Mesh VPN(Netbird)
架构星型(所有流量经中央服务器)网状(设备间直连)
延迟高(中转节点增加延迟)低(点对点直连)
中央节点故障所有 VPN 连接中断已连接节点不受影响
配置复杂度高(证书管理、路由配置)低(扫描码加入即完成)
设备数量扩展线性增加配置工作量自动发现和配置
访问控制简单(IP/端口级别)细粒度(用户/组/应用级别)

二、自托管 Netbird 控制平面

<code"># Netbird 控制平面(Management Server)负责:
# 1. 设备注册和认证
# 2. 分发 WireGuard 密钥和对等节点信息
# 3. 访问控制策略下发
# 数据平面(实际流量)走设备间直接 WireGuard 隧道

# 使用官方 Docker Compose 部署
mkdir -p /opt/netbird && cd /opt/netbird
wget https://github.com/netbirdio/netbird/releases/latest/download/docker-compose.yml
wget https://raw.githubusercontent.com/netbirdio/netbird/main/infrastructure_files/.env.example -O .env

# 编辑 .env 关键配置
cat >> .env << 'EOF'
NETBIRD_DOMAIN=netbird.yourdomain.com
NETBIRD_MGMT_API_ENDPOINT=https://netbird.yourdomain.com:443
NETBIRD_MGMT_GRPC_API_ENDPOINT=https://netbird.yourdomain.com:443
NETBIRD_SIGNAL_ENDPOINT=netbird.yourdomain.com:443
NETBIRD_RELAY_DOMAIN=netbird.yourdomain.com
NETBIRD_TURN_USER=turn_user
NETBIRD_TURN_PASSWORD=$(openssl rand -base64 24)

# 身份认证(接入 Authentik 或其他 OIDC IdP)
NETBIRD_AUTH_OIDC_CONFIGURATION_ENDPOINT=https://authentik.yourdomain.com/application/o/netbird/.well-known/openid-configuration
NETBIRD_AUTH_CLIENT_ID=netbird_client_id
NETBIRD_AUTH_CLIENT_SECRET=netbird_client_secret
EOF

docker compose up -d
<code"># Nginx 配置(需要同时支持 HTTP/HTTPS 和 gRPC)
server {
    listen 443 ssl http2;
    server_name netbird.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/netbird.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/netbird.yourdomain.com/privkey.pem;

    # 管理 API
    location /api {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
    }

    # gRPC(Netbird 使用 gRPC 通信)
    location / {
        grpc_pass grpc://127.0.0.1:8080;
        error_page 502 = /error502grpc;
    }
}

# 同时需要配置 STUN/TURN 服务器端口(UDP)
# 开放防火墙:
# ufw allow 3478/udp   # STUN
# ufw allow 49152:65535/udp  # TURN 媒体端口

三、在设备上安装 Netbird 客户端

<code"># Linux 服务器(香港 VPS)
curl -fsSL https://pkgs.netbird.io/install.sh | sh

# 使用 Setup Key 加入网络(Setup Key 在管理后台创建)
netbird up --setup-key 你的Setup_Key --management-url https://netbird.yourdomain.com:443

# 查看连接状态
netbird status
# 输出:
# Peers:
#   hk-web-2: 100.64.0.2  Connected  WireGuard direct
#   hk-db:    100.64.0.3  Connected  WireGuard direct
#   macbook-alice: 100.64.0.4  Connected  WireGuard relay
<code"># macOS / Windows(员工设备)
# 访问 https://netbird.yourdomain.com
# 下载客户端 → 安装 → 用公司账号(Authentik SSO)登录 → 自动加入网络

# 加入后,员工的 Mac 即可直接访问:
# 10.64.0.2 (hk-web 服务器内网 IP)
# psql -h 100.64.0.3 -U app mydb  (直接连数据库,无需公网端口)

四、访问控制策略配置

<code">
在 Netbird 管理后台(https://netbird.yourdomain.com)配置:

── 用户组(Groups)──
- servers:所有服务器
- developers:研发团队员工
- devops:运维团队员工
- all:所有设备

── 访问策略(Access Control Policies)──

策略1:开发者访问开发服务器
  源:developers 组
  目标:hk-dev-server(开发服务器组)
  允许端口:22(SSH)、5432(PostgreSQL)、6379(Redis)、8080(应用)

策略2:运维访问所有服务器
  源:devops 组
  目标:servers 组(所有服务器)
  允许端口:ALL

策略3:服务器间互通
  源:servers 组
  目标:servers 组
  允许:ALL(服务器间不限制)

策略4:禁止开发者直接访问生产数据库
  源:developers 组
  目标:hk-db-prod
  拒绝:3306、5432

五、路由(Routes):访问内网其他设备

<code">
场景:办公室内网有台老旧设备(192.168.1.100),
      无法安装 Netbird 客户端,但需要从香港服务器访问它

解决方案:在办公室路由器上安装 Netbird,
          设置为"网络路由器",让其他 Netbird 节点通过它访问办公室内网

配置路由(Routes):
Network → Routes → Add Route
- Network ID: office-lan
- Network range: 192.168.1.0/24(办公室内网段)
- Peer: office-router(作为路由器的 Netbird 节点)
- Access control group: devops

效果:
运维工程师在任何地方 → Netbird → 办公室路由器 → 192.168.1.100
完全透明,无需额外配置

六、与 Tailscale 的对比

维度Netbird(自托管)Tailscale(SaaS)
控制平面完全自托管Tailscale 服务器(美国)
数据平面设备间直连(WireGuard)设备间直连(WireGuard)
费用(20设备)服务器费用(约¥80/月)$20/月(Personal Pro)
访问控制细粒度(端口级别)ACL(组级别)
大陆访问自托管,无封锁风险依赖 Tailscale 服务器
运维工作量需要维护控制平面零运维

七、总结

Netbird 为香港服务器用户提供了企业级内网互联能力:多台香港服务器自动组网、员工设备安全接入、细粒度访问控制——而且控制平面完全自托管在自己的香港服务器上,不依赖任何第三方服务。对于有合规要求(数据不能流经境外服务商)的企业,Netbird 是 Tailscale 的最佳替代。

Telegram