扔掉闭源 Tailscale:5分钟自建企业级零信任内网 NetBird

171 阅读3分钟

传统 VPN 运维太重,Tailscale 控制平面又不开源。我需要一个既能一键 P2P 组网,又能完全私有化部署的方案。NetBird 满足了这一点:基于 WireGuard,全栈开源,自带 Web 面板和身份认证。

一、 核心架构

Mermaid Diagram

二、 5分钟快速部署控制平面

1. 准备工作

  • 机器:Linux VM (1核2G足够),公网 IP。
  • 域名:解析到该 IP。
  • 端口开放:TCP 80/443 (Web/API), UDP 3478 (STUN)。

2. 执行安装脚本

我建议直接用官方一键脚本,它会自动处理 Docker 容器编排。

curl -fsSL https://pkgs.netbird.io/install.sh | sh

3. 初始化配置

  • 脚本运行中会询问反向代理,直接选 0 (内置 Caddy)。
  • 访问 https://your-domain.com/setup
  • 立即创建管理员账号。注意:该页面仅在无用户时开放,创建后自动关闭。

三、 多端接入实战

1. Linux 客户端

# 安装
curl -sSL https://pkgs.netbird.io/debian/public.key | sudo gpg --dearmor -o /usr/share/keyrings/netbird.gpg
echo 'deb [signed-by=/usr/share/keyrings/netbird.gpg] https://pkgs.netbird.io/debian stable main' | sudo tee /etc/apt/sources.list.d/netbird.list
sudo apt update && sudo apt install netbird -y

# 登录自托管服务器
netbird up --management-url https://your-domain.com

2. 服务器无人值守接入 (Setup Key)

在 Dashboard 生成一个 Setup Key,用于 CI/CD 或服务器自动加入。

netbird up --setup-key <YOUR_KEY> --management-url https://your-domain.com

3. macOS / Windows

  • 下载地址:https://pkgs.netbird.io/macos/arm64https://pkgs.netbird.io/windows/x64
  • 安装后在 Settings 中修改 Management URL 为你的私有域名,点击 Connect 即可。

四、 进阶配置:内网穿透与 DNS

1. 访问 K8s 集群或 VPC 子网

如果你想让所有 Peer 访问 10.0.0.0/24 段,无需每台机器装客户端:

  • 在 Dashboard 选择一台位于该网段的机器作为 Routing Peer
  • 添加 Network RouteNetwork ID: internal-vpc, Range: 10.0.0.0/24
  • 开启策略分发。

2. 自定义私有 DNS (v0.63+ 特性)

在 NetBird 内部定义域名,告别记 IP 的痛苦:

  • Custom DNS Zones:添加 dev.internal
  • 添加记录:api.dev.internal -> 100.x.x.x (Peer IP)。
  • 勾选组分发,关联对应的 Peer 组。

五、 竞品选型参考 (2026版)

维度NetBirdTailscaleHeadscaleZeroTier
开源程度全栈全开源仅客户端开源仅控制平面开源部分开源
底层协议WireGuardWireGuardWireGuard自研 P2P
自托管难度极低 (一键脚本)不支持高 (无官方 UI)中等
管理界面原生现代 Web UI极佳需第三方 UI较成熟
身份集成内置 Dex/OIDC强依赖 OAuth手动配置节点 ID 授权

六、 避坑指南

  1. DNS 循环解析:我踩过这个坑。如果 Linux 启用了 systemd-resolved,NetBird 的 DNS 可能会与其冲突。若发现域名不解析,检查 /etc/resolv.conf,确保 NetBird 没把上游 DNS 指向自己。
  2. NAT 穿透失败:如果流量全走 Relay (TURN),检查防火墙是否放行了 UDP 3478。对称型 NAT 很难 P2P,建议在出口路由器上做端口映射。
  3. jq 解析错误:部分精简版系统缺少 jq,会导致安装脚本报错,预先执行 sudo apt install jq
  4. 多 TUN 网卡冲突:如果你同时运行了 Mihomo (Tun 模式) 或其他 VPN,路由表会打架。建议在 NetBird 策略中排除特定路由。

七、 总结

NetBird 适合那些既想要 Tailscale 的傻瓜化体验,又必须把数据和控制权握在自己手里的团队。目前 v0.64.x 版本的稳定性已经足够支撑生产环境。