适用场景:
团队约 20 人
内网服务器没有公网 IP
有一台公网 Ubuntu VPS
公网 VPS 部署 NetBird 控制面与 Relay
内网 Ubuntu Server 作为普通 Peer、跳板机或 Routing Peer
外部 Windows / macOS / Linux 用户通过 NetBird 访问内网
主要用途为 SSH、SCP、rsync、VS Code Remote SSH
当前自部署域名示例:
https://netbird.example.com
1. NetBird 整体工作原理
NetBird 是基于 WireGuard 的 Overlay Network。
一套自部署 NetBird 主要分成两个部分:
控制平面ManagementSignalDashboardEmbedded IdPSTUNRelay
数据平面NetBird Peer ↔ NetBird Peer当前 getting-started.sh 新部署使用组合式架构:
TraefikDashboardnetbird-server其中 netbird-server 已经整合:
ManagementSignalRelaySTUNEmbedded IdP官方快速安装要求公网服务器至少 1 CPU、2 GB RAM,并且 TCP 80、443 与 UDP 3478 公网可达,同时要求一个解析到该服务器公网 IP 的域名。
2. 推荐网络拓扑
2.1 公网侧
Internet
│ ▼netbird.example.com │ ▼公网 Ubuntu VPS┌─────────────────────────────┐│ Traefik ││ Dashboard ││ NetBird Management ││ Signal ││ Relay ││ STUN ││ Embedded IdP │└─────────────────────────────┘公网 VPS 至少负责:
设备注册用户登录Peer 信息下发访问策略下发连接协商STUNP2P 失败后的 Relay实际 SSH 数据并不一定经过 VPS。
正常情况下:
外部客户端 │ │ WireGuard P2P ▼内网 Peer如果 P2P 无法建立:
外部客户端 │ ▼公网 NetBird Relay │ ▼内网 Peer3. 两种推荐的内网访问模式
必须先决定自己到底需要哪一种。
3.1 模式 A:只通过 SSH 跳板机
如果需求是:
外部用户 │ │ NetBird ▼内网跳板机 │ │ SSH ▼其他内网服务器那么:
不需要配置 Network,也不需要 Routing Peer。
只要在跳板机安装 NetBird。
例如:
跳板机:LAN IP = 10.21.76.240NetBird IP = 100.x.x.x用户:
ssh username@100.x.x.x进入后:
ssh username@10.21.76.244或者:
ssh -J username@100.x.x.x username@10.21.76.244这套方案:
NetBird = 网络入口Jump Host = SSH 登录与审计入口最适合目前以 SSH 为核心的团队。
3.2 模式 B:直接访问整个远程内网
如果希望用户直接:
ssh user@10.21.76.244curl http://10.21.76.200:8000psql -h 10.21.76.210则需要:
Network+Resource+Access Policy+Routing Peer拓扑:
外部 NetBird 用户 │ ▼Routing PeerNetBird IP:100.x.x.xLAN IP:10.21.76.x │ ├── 10.21.76.244 ├── 10.21.76.239 └── 其他服务器NetBird 官方目前推荐新配置使用 Networks,旧 Routes 已属于 legacy/deprecated;除 Exit Node 等特殊情况外应优先使用 Networks。
4. 公网 NetBird Server 部署
4.1 VPS 要求
官方最低配置:
Linux VM1 CPU2 GB RAM公网放行:
TCP 80TCP 443UDP 3478域名:
netbird.example.com必须解析到 VPS 公网 IP。
对于约 20 人团队:
建议:2 CPU2~4 GB RAM20 GB+ 磁盘如果大量连接走 Relay,更重要的是:
公网带宽月流量VPS 到用户和内网出口的线路质量5. DNS 配置
添加:
Type: AHost: netbirdValue: <VPS公网IP>验证:
dig +short netbird.example.com应返回 VPS 的公网 IP。
如果 DNS 使用 Cloudflare:
Proxy status = DNS only不要首先开启 Cloudflare Orange Cloud 代理。
6. VPS 防火墙
云服务器安全组开放:
TCP 80TCP 443UDP 3478SSH 建议只允许管理员来源:
TCP 22如果使用 UFW:
sudo ufw default deny incomingsudo ufw default allow outgoing
sudo ufw allow 80/tcpsudo ufw allow 443/tcpsudo ufw allow 3478/udp
sudo ufw enablesudo ufw status7. 安装依赖
NetBird Quickstart 需要:
DockerDocker Compose v2jqcurl检查:
docker --versiondocker compose versionjq --versioncurl --versionUbuntu:
sudo apt updatesudo apt install -y jq curlDocker 建议按照 Docker 官方 Ubuntu 仓库安装。
8. 部署 NetBird Server
在准备存放配置的目录中执行:
mkdir -p ~/netbirdcd ~/netbird然后运行官方安装脚本:
curl -fsSL \ https://github.com/netbirdio/netbird/releases/latest/download/getting-started.sh \ | bash这是当前官方推荐的快速自部署方式。脚本会生成完整的 Compose 和配置文件。
9. Reverse Proxy 选择
安装脚本会询问:
Which reverse proxy will you use?
[0] Traefik[1] Existing Traefik[2] Nginx[3] Nginx Proxy Manager[4] External Caddy[5] Other / Manual如果没有自己的反向代理:
直接选择 0即:
Traefik官方 Quickstart 同样推荐 Traefik,它负责自动申请和更新 Let’s Encrypt TLS 证书。
10. 当前部署产生的主要文件
安装完成后通常存在:
docker-compose.ymlconfig.yamldashboard.env其中:
docker-compose.yml→ Docker 服务、网络、卷、端口
config.yaml→ Management / Signal / Relay / STUN / Embedded IdP
dashboard.env→ Dashboard 和 OIDC 配置当前新部署使用的是 combined netbird-server 架构,而不是旧版 management/signal/relay 多容器架构。
检查:
docker compose ps日志:
docker compose logs --tail=20011. GeoLite2 下载卡死问题
首次启动可能看到:
Geolocation database fileGeoLite2-City_xxxxxxxx.mmdb not found,file will be downloaded然后:
Waiting for NetBird server to become ready. . . . . . . .GeoLite 数据库由 Management 启动时自动检查并下载。在受限出口、代理、DPI、防火墙或无法访问 pkgs.netbird.io 的环境中可能失败。
如果不使用:
GeoLocation Posture Check国家/城市访问策略可以直接关闭:
NB_DISABLE_GEOLOCATION=true官方说明开启该变量以后:
Management 不初始化 Geolocation不会下载 GeoLite 数据库推荐创建:
nano docker-compose.override.yml加入:
services: netbird-server: environment: NB_DISABLE_GEOLOCATION: "true"验证:
docker compose config -q重新创建:
docker compose up -d \ --force-recreate \ netbird-server查看:
docker compose logs -f \ --tail=100 netbird-server12. 验证 NetBird Server
查看容器:
docker compose ps检查域名:
curl -Iv https://netbird.example.com检查 OIDC:
curl -k \ https://netbird.example.com/oauth2/.well-known/openid-configuration正常应返回 JSON,并包含类似:
{ "issuer": "https://netbird.example.com/oauth2"}如果返回:
502说明 Traefik 无法连接 netbird-server。
如果安装一直显示:
Waiting for NetBird server to become ready官方建议依次检查:
dig +short netbird.example.com
curl -vI https://netbird.example.com
docker compose logs traefik
curl -k \ https://netbird.example.com/oauth2/.well-known/openid-configuration官方指出 502 通常说明反向代理已经收到请求,但无法到达 netbird-server。
13. 创建首个管理员
第一次成功打开:
https://netbird.example.com如果数据库中还没有账户,会进入:
/setup输入:
EmailPasswordName创建首个:
Owner当前 Quickstart 自带 Embedded IdP,可以直接维护本地用户,不必额外部署 Keycloak。
14. 创建团队用户
进入:
Team→ Users建议约 20 名成员全部使用:
Role = User管理员使用:
Admin只保留极少数:
OwnerEmbedded IdP 当前支持:
OwnerAdminUser其中 User 可以连接设备和查看自己有权访问的资源。
15. 建议启用 MFA
当前自部署 Embedded IdP 已支持 Local MFA。
进入:
Settings→ Authentication→ Local MFA开启:
Local MFA = ON用户下一次登录时会使用 TOTP:
Google Authenticator1PasswordAuthy其他 TOTP App官方当前已经支持自部署 Embedded IdP 用户的 TOTP MFA。
16. Group 设计
建议创建:
remote-usersadminsjump-hostsrouting-peersgpu-serversGroups 相当于标签,一个 Peer 可以同时属于多个 Group。Policy 以 Source Group 和 Destination Group 为主要控制对象。
17. 删除默认 All → All 策略
NetBird 初始化后存在:
Default Policy本质:
All → All所有协议双向访问这意味着所有 Peer 默认可以互相访问。
正式团队使用前,应先建立必要规则,然后禁用或删除:
Default官方明确建议需要更严格控制时删除 Default Policy 并建立自定义访问规则。
18. 模式 A:只配置 SSH 跳板机
如果只需要:
用户 ↓NetBird ↓Jump Host ↓其他服务器无需创建 Network。
18.1 跳板机安装 NetBird
Ubuntu:
curl -fsSL https://pkgs.netbird.io/install.sh | sh服务器建议使用 Setup Key 注册。
Dashboard:
Settings→ Setup Keys→ Create建议:
Name:jump-host
Type:One-off
Usage:1
Ephemeral:OFF
Auto Group:jump-hostsSetup Key 专门适合无人值守服务器;One-off Key 只能注册一台设备,Key 后续过期或撤销不会影响已经注册成功的 Peer。
连接:
sudo netbird up \ --management-url https://netbird.example.com \ --setup-key '<SETUP_KEY>'检查:
sudo netbird status -d查看 NetBird IP:
ip addr show wt0例如:
100.90.0.519. 跳板机访问策略
创建:
Source:remote-users
Destination:jump-hosts
Protocol:TCP
Port:22
Direction:Unidirectional用户:
ssh username@100.90.0.5再进入其他内网主机:
ssh username@10.21.76.244或者:
ssh \ -J username@100.90.0.5 \ username@10.21.76.24420. SSH Config 推荐配置
Linux/macOS:
~/.ssh/configWindows:
C:\Users\<USER>\.ssh\config例如:
Host team-jump HostName 100.90.0.5 User amax IdentityFile ~/.ssh/id_ed25519
Host server244 HostName 10.21.76.244 User amax ProxyJump team-jump IdentityFile ~/.ssh/id_ed25519之后:
ssh server244SCP:
scp file.tar server244:/data/rsync:
rsync -av ./project/ server244:/data/project/21. 模式 B:部署 Routing Peer
Routing Peer 的含义是:
把 NetBird Overlay 中的流量转发到没有安装 NetBird 的 LAN/VPC 设备。
官方推荐 Linux 作为生产 Routing Peer,因为它可以直接使用内核 nftables / iptables 进行转发。
22. Routing Peer 安装
先创建 Setup Key:
Settings→ Setup Keys建议:
Name:office-routing-peer
Type:One-off
Usage:1
Auto Groups:routing-peers
Ephemeral:OFF内网 Ubuntu:
curl -fsSL https://pkgs.netbird.io/install.sh | sh注册:
sudo netbird up \ --management-url https://netbird.example.com \ --setup-key '<SETUP_KEY>'检查:
sudo netbird status -d23. Routing Peer 必须满足的条件
最关键:
Routing Peer 自己必须能直接访问目标内网设备。例如:
ping 10.21.76.244nc -vz 10.21.76.244 22如果 Routing Peer 本身:
Routing Peer -X-> 10.21.76.244NetBird 不可能帮助它访问目标。
这是官方列出的 Routing Peer 最常见故障原因之一。
24. IP Forwarding
Linux NetBird Agent 正常会自动启用 IP Forwarding。
检查:
sysctl net.ipv4.ip_forward正常:
net.ipv4.ip_forward = 1否则:
sudo sysctl -w net.ipv4.ip_forward=1持久化:
echo 'net.ipv4.ip_forward=1' \ | sudo tee /etc/sysctl.d/99-netbird.conf应用:
sudo sysctl --system这是 NetBird 官方 Routing Peer 文档要求。
25. Routing Peer 开机自动连接
官方 Linux Client 安装后使用后台 NetBird Service。
检查:
sudo systemctl status netbird --no-pagersudo systemctl is-enabled netbirdsudo systemctl is-active netbird正常:
enabledactive若没有:
sudo systemctl enable --now netbirdNetBird 的 Connect on Startup 默认开启,服务在系统重启后启动时会自动连接 Management 并重新加入网络。
明确重新打开:
sudo netbird up \ --disable-auto-connect=false重启验证:
sudo reboot回来以后:
sudo systemctl is-enabled netbirdsudo systemctl is-active netbirdsudo netbird status -d查看本次启动日志:
sudo journalctl \ -u netbird \ -b \ --no-pagerSetup Key 注册成功后,不需要每次重启重新输入 Setup Key。
26. NetBird Network 的正确概念
官方当前把 Network 定义成:
Network ├── Resources ├── Access Policies └── Routing Peers可以记成:
Network = 一个环境Resource = 要访问什么Policy = 谁能访问Routing Peer = 从哪条路走过去官方原始 Mental Model 是:
Resources = destinationsPolicies = gatekeepersRouting Peers = roads27. 创建 Network
进入 Dashboard:
Network Routing→ Networks→ Add Network例如:
Name:Office LAN这里仅仅创建了一个逻辑容器:
Office LAN此时还没有任何可访问资源。
28. 添加 Resource
打开:
Network Routing→ Networks→ Office LAN→ Add ResourceResource 可以是:
单个 IP10.21.76.244/32
整个 CIDR10.21.76.0/24
Domaingpu.internal
Wildcard Domain*.internal官方推荐遵循最小权限原则:
能使用
/32就优先使用/32,不要一开始发布整个/24。
例如:
Name:GPU-244
Address:10.21.76.244/32
Resource Group:gpu-servers29. 创建 Network Resource Policy
例如只允许科研成员 SSH:
Source:remote-users
Destination:gpu-servers
Protocol:TCP
Port:22含义:
remote-users │ TCP 22 ▼10.21.76.244没有 Policy 的 Resource 默认不可访问。
如果要 Ping,还需另外允许:
ICMPTCP 22 并不会自动允许 ICMP。
30. 添加 Routing Peer
打开:
Network Routing→ Networks→ Office LAN→ Add Routing Peer选择:
office-routing-peer最终:
Office LAN├── Resource│ └── 10.21.76.244/32│├── Policy│ └── remote-users → TCP 22│└── Routing Peer └── office-routing-peer官方示例的推荐流程同样是:
创建 Network→ 添加 /32 Resource→ 创建 Policy→ 添加 Routing Peer→ 客户端 netbird networks ls 验证31. Masquerade
Routing Peer 默认:
Masquerade = Enabled数据:
客户端 ↓Routing Peer ↓ SNAT目标服务器因此目标服务器一般看到:
Routing Peer LAN IP而不是:
用户 NetBird 100.x IP优点:
内网无需添加返回路由官方推荐初始部署保留默认 Masquerade。
只有确实需要保留来源 NetBird IP 时才关闭。
关闭后内网必须知道如何返回:
100.x 网络via Routing Peer32. Routing Peer 本机与后方 Resource 是两回事
这是最容易配置错误的地方。
例如 Routing Peer:
NetBird IP:100.90.0.5
LAN IP:10.21.76.240如果访问:
ssh user@100.90.0.5这是:
TO Routing Peer需要:
Peer-to-Peer Policy例如:
remote-users→ routing-peersTCP 22如果访问:
ssh user@10.21.76.244是:
THROUGH Routing Peer需要:
Network Resource PolicyNetBird 官方明确区分:
TO Routing Peer→ input chain→ Peer Policy
THROUGH Routing Peer→ forward chain→ Network Resource Policy33. 推荐 Routing Peer 与跳板机分开
长期推荐:
Routing Peer只负责 IP 转发
Jump Host只负责 SSH 登录与审计例如:
Routing Peer10.21.76.230
Jump Host10.21.76.240优点:
网络权限更清晰SSH 权限更清晰日志更清晰降低单机暴露面排障更容易小规模环境也可以使用同一台机器同时承担两个角色;官方允许同一个 Peer同时作为普通 Peer、Routing Peer 和 Exit Node。
34. Routing Peer 高可用
同一个 Network 可以添加多个 Routing Peer。
例如:
Routing Peer Ametric = 100
Routing Peer Bmetric = 200则:
A = 主B = 备用A 不可用时自动切 B。
如果:
A = 100B = 100则客户端根据延迟选择。
官方当前 Routing Peer HA 完全由 metric 控制。
35. Windows 客户端
安装官方 Windows EXE/MSI。
安装后包括:
NetBird GUINetBird daemon service默认目录:
C:\Program Files\NetBird当前 Windows 安装器会安装后台 daemon。
首次运行:
NetBird→ Connect→ Self-hosted输入:
https://netbird.example.com然后浏览器登录自己的 NetBird 用户账号。
也可以使用管理员 PowerShell:
netbird up ` --management-url https://netbird.example.com检查:
netbird statusnetbird status -d36. Linux 用户客户端
安装:
curl -fsSL https://pkgs.netbird.io/install.sh | sh用户设备不要用 Setup Key,建议使用用户身份认证:
netbird up \ --management-url https://netbird.example.com浏览器登录自己的账户。
检查:
netbird status -d官方建议 Setup Key 主要用于无人值守服务器,而普通终端用户通过交互式身份认证注册。
37. 查看 Network 是否正确下发
客户端:
netbird networks ls这是当前官方 Networks 的主要验证命令之一。
Linux 查看:
ip route或者:
ip route get 10.21.76.244Windows:
route print或者:
Get-NetRoute38. 外网测试方法
不要只在客户端和 Routing Peer 位于同一 LAN 时测试。
因为此时可能只是:
LAN 直接连接无法验证:
公网 ManagementSignalSTUNP2PRelay推荐:
1. 内网完成设备注册2. 客户端断开 Wi-Fi3. 使用手机热点4. netbird status -d5. 测试 SSH检查:
netbird status -d然后:
ssh user@目标39. 本地与远程 IP 冲突
例如:
本地网络:10.21.76.244
远程 Network:10.21.76.244这属于:
Overlapping IP同一个客户端无法通过相同目的 IP 自动知道:
我要本地 244还是我要远程 244如果只需要 SSH,最推荐:
用户→ 跳板机的 NetBird 100.x IP→ 远程 10.21.76.244即:
ssh \ -J user@100.x.x.x \ user@10.21.76.244这样:
用户本地访问 10.21.76.244→ 本地 244
ProxyJump 后访问 10.21.76.244→ 跳板机所在远程 LAN 的 244两边不会冲突。
40. NetBird Server 自动启动
Quickstart 使用 Docker Compose。
检查容器 RestartPolicy:
docker inspect \ -f '{{.Name}} restart={{.HostConfig.RestartPolicy.Name}}' \ $(docker compose ps -q)应看到类似:
restart=unless-stopped检查 Docker 开机启动:
systemctl is-enabled docker正常:
enabled检查:
systemctl is-active docker正常:
active不要在关机前执行:
docker compose down因为 down 会删除 Compose 容器。
正常:
reboot之后 Docker 根据 RestartPolicy 恢复容器。
41. Routing Peer 自动启动
对于通过:
curl -fsSL https://pkgs.netbird.io/install.sh | sh安装的 Linux NetBird Agent:
sudo systemctl is-enabled netbirdsudo systemctl is-active netbird正常:
enabledactive确保 Connect on Startup:
sudo netbird up \ --disable-auto-connect=false官方当前说明该功能默认就是开启状态。
重启验证:
sudo reboot登录回来:
sudo netbird status -d42. 常用状态检查
Server
cd ~/netbirddocker compose psdocker compose logs \ --tail=100 \ netbird-serverdocker compose logs \ --tail=100 \ traefikClient
netbird statusnetbird status -dnetbird networks lsRouting Peer
sudo netbird status -dip addr show wt0sysctl net.ipv4.ip_forwardip route43. SSH 不通排查顺序
不要一上来排 NetBird。
严格按以下顺序检查。
第一步:Routing Peer 自己能访问目标吗
nc -vz 10.21.76.244 22失败:
先处理内网路由、目标 SSH、防火墙第二步:Routing Peer 在线吗
sudo netbird status -d检查:
ManagementSignalRelay第三步:Network 是否下发
客户端:
netbird networks ls第四步:Policy 是否正确
检查:
Source GroupDestination Resource GroupTCPPort 22第五步:IP Forwarding
sysctl net.ipv4.ip_forward第六步:抓包
Routing Peer:
sudo tcpdump \ -ni any \ host 10.21.76.244 \ and port 22用户同时:
ssh user@10.21.76.24444. 用户撤权
如果成员离开团队:
Team→ Users→ Disable/Delete同时建议:
Peers→ 删除该用户设备SSH 层还需要:
删除 Linux 用户或删除 authorized_keysNetBird 权限与 Linux SSH 权限是两层独立控制。
45. 日志与审计
NetBird 自部署可以记录:
用户PeerGroupPolicySetup Key配置变化但 NetBird 本身不是 SSH 堡垒机。
它不能默认记录:
用户在 SSH 中执行了什么命令如果需要:
SSH 登录审计命令审计sudo 操作审计可以在 Jump Host 进一步部署:
auditdtlogsudo I/O loggingJumpServerTeleport46. Server 备份
官方要求至少备份:
docker-compose.ymlconfig.yamldashboard.envManagement 数据目录在 NetBird 安装目录:
mkdir -p backupcp \ docker-compose.yml \ dashboard.env \ config.yaml \ backup/停止 Server:
docker compose stop netbird-server复制数据:
docker compose cp -a \ netbird-server:/var/lib/netbird/ \ backup/重新启动:
docker compose start netbird-server47. NetBird Server 更新
先备份。
然后:
docker compose pull \ netbird-server \ dashboard如果使用 Traefik:
docker compose pull重新创建:
docker compose up -d \ --force-recreate检查:
docker compose psdocker compose logs \ --tail=100官方升级流程同样要求先备份,再 Pull 新镜像并 up -d --force-recreate。
48. Linux NetBird Client 更新
如果使用安装脚本:
netbird downcurl -fsSLO \ https://pkgs.netbird.io/install.shchmod +x install.shsudo ./install.sh --updatenetbird up这是当前官方 Linux 更新流程。
49. 推荐的最终生产配置
对于当前约 20 人团队,建议最终采用:
Internet │ ▼ netbird.example.com │ ▼ 公网 NetBird VPS Management / Relay │ ┌───────────┴───────────┐ │ │ 用户 NetBird 内网 NetBird Clients Gateway │ ┌───────────────┴──────────────┐ │ │ Routing Peer Jump Host 网络转发 SSH登录 │ │ 内网资源 内网服务器第一阶段可以进一步简化成:
用户 ↓NetBird ↓Jump Host ↓其他服务器此时:
不需要 Network不需要 Routing Peer只配置:
remote-users ↓ TCP 22jump-hosts50. 后续需要直接访问内网资源时
再增加:
Office LAN Network资源按 /32 添加:
10.21.76.239/3210.21.76.240/3210.21.76.244/32而不是:
10.21.76.0/24然后:
remote-users ↓ TCP 22gpu-servers ↓Routing Peer ↓目标服务器这样遵循最小权限原则,也符合当前官方 Networks 的设计方式。
51. 最重要的几个概念
NetBird Server= 控制面 + Signal + Relay + STUN
Peer= 安装了 NetBird 的设备
Jump Host= 用户实际 SSH 登录的服务器
Routing Peer= 网络层转发设备,用户无需登录它
Network= 某个 LAN / VPC / 环境的逻辑容器
Resource= Network 中真正要访问的 IP / CIDR / Domain
Policy= 谁可以访问什么、什么协议、什么端口
Setup Key= 无人值守服务器注册凭据最容易混淆的一点:
访问 Routing Peer 自己→ Peer-to-Peer Policy
通过 Routing Peer 访问它后面的服务器→ Network Resource Policy52. 当前最推荐的配置策略
普通用户
Group:remote-users跳板机
Group:jump-hostsRouting Peer
Group:routing-peersSSH 规则
remote-users→ jump-hosts→ TCP 22→ UnidirectionalNetwork 资源规则
remote-users→ gpu-servers→ TCP 22安全原则
禁用 Default All → All只发布必须访问的资源优先 /32不要共享 NetBird 用户不要共享 SSH 私钥每人独立 NetBird 用户每人独立 Linux 用户/SSH KeyRouting Peer 用 Setup Key普通用户设备使用交互式登录开启 Local MFA定期备份 NetBird Server53. 最常用命令速查
NetBird Server
docker compose psdocker compose logs \ --tail=100 \ netbird-serverdocker compose restart \ netbird-serverLinux Peer
sudo netbird status -dsudo netbird downsudo netbird up \ --management-url https://netbird.example.comRouting Peer
sudo systemctl is-enabled netbirdsudo systemctl is-active netbirdsudo netbird status -dsysctl net.ipv4.ip_forwardip addr show wt0Networks
netbird networks lsSSH
ssh user@100.x.x.x或者:
ssh \ -J user@100.x.x.x \ user@10.21.76.24454. 当前部署决策建议
如果主要需求仍然是:
20 个成员→ 命令行→ 一台内网服务器→ 再访问其他内网服务器优先采用:
NetBird Peer + SSH Jump Host暂时不要:
直接发布整个 10.x.x.x/24等后续需要:
直接访问 GPUJupyter数据库NAS内部 Web再配置:
Networks+ Routing Peer+ /32 Resources+ Resource Policies这样是当前最清晰、最容易审计、权限范围最小,也最符合 NetBird 官方最新 Networks 模型的部署方式。