为什么我又折腾了一次内网穿透
过去几年我把家里的服务暴露到公网用过很多方案:frp、Ngrok、Cloudflare Tunnel、Tailscale Funnel。前两者需要一台有公网 IP 的 VPS,Cloudflare Tunnel 偶尔会被国内网络环境 ” 照顾 ” 到,Tailscale Funnel 的延迟和带宽又不够稳定。今年六月底,我试了 NetBird,发现它正好命中了我最在意的两个点:自建控制平面 + 走 WireGuard 数据面。换句话说,延迟低、配置简单、不依赖任何第三方 ” 中转服务 ”。
这篇文章是我部署 NetBird 一个月后的完整复盘。如果你也是一名喜欢把 NAS、Home Assistant、AdGuard Home 暴露出去但又不想开一堆端口的家庭网络玩家,这套方案值得花两小时试试。
NetBird 到底是什么
NetBird 是一个开源的零信任网络访问(ZTNA)平台,可以理解成 ” 自建版 Tailscale”。核心组件有三个:
- Management Server:负责账号、设备、ACL 策略管理,提供 Web UI
- Signal Server:负责设备之间的连接协商(基于 WebSocket)
- Client:在每台需要组网的设备上运行,与服务端建立 WireGuard 隧道
所有数据面流量走 WireGuard UDP,控制面走 HTTPS。这意味着只要你家里的设备能联网(不需要公网 IP),就能和云上、内网中的其他节点组成一个对等网络,互相访问就像在同一个交换机下。
实战部署:自托管一个最小可用集群
我的环境:一台 2C2G 的廉价云服务器(系统 Debian 12),家里的 NAS(Unraid)、一台 MacBook、一台 Windows 11 台式机。下面是关键步骤。
- 拉起服务端 :用官方 docker-compose 一键起,包含 Management、Signal、Coturn(NAT 穿透)三个容器
- 配置反代 :在前面套一层 Caddy,自动签发 Let’s Encrypt 证书
- 修改默认账号 :第一次登录后立刻改密码 + 开启 2FA
- 客户端登录 :每台设备上安装 NetBird 客户端,粘贴 setup key 即可加入网络
- 配置 ACL:在 Web UI 里给 ” 家用设备 ” 组开 ” 允许互相访问 + 仅 NAS 暴露给公网 ” 两条策略
整个过程大概一小时左右,瓶颈主要在 docker 镜像拉取速度。镜像不大(总和约 400MB),但从 GitHub Container Registry 下载在国内稍慢,可以提前在云服务器上配置镜像加速。
三个真实使用场景
场景一:从外面访问家里 NAS 的 Web 界面
NAS 上面跑着 Immich(自托管相册)和 Jellyfin(媒体库)。通过 NetBird 组网后,我在公司、地铁上都可以直接用 http://nas.local:2283 这种地址访问,不需要打开任何端口,更不需要 Cloudflare 中转。延迟大约 30-50ms,体验接近局域网。
场景二:远程桌面回家里的 Windows 主机
我经常需要在家里 Windows 上跑一些长时间任务(比如渲染、视频转码)。传统方案是开 3389 端口或者用 Parsec。NetBird 的方案是:在 Windows 上装客户端,启动 RDP 后直接通过 NetBird IP 连入。WireGuard 加密 + 零端口暴露,比任何传统方案都安全。
场景三:把家里服务 ” 按需 ” 暴露给特定朋友
有一次我想让一个朋友临时访问我的文件服务器一周。在 NetBird 后台创建一个临时 setup key,限定过期时间和 ACL 范围,到期自动失效。这比给他开一个公网账号干净得多。
性能与稳定性观察
用了一个月,几组数据:
- 延迟 :跨城市节点(云服务器在新加坡,家里在江浙沪)平均 35ms,比 Tailscale 中转模式略低
- 带宽 :WireGuard 数据面在两台 100Mbps 服务器之间实测跑满
- 掉线率 :30 天内主动掉线 0 次,被动重连 2 次(均为运营商 NAT 超时,10 秒内自动恢复)
- CPU 占用 :客户端在 MacBook 上常驻,CPU 占用 < 1%,内存约 30MB
最大的优点是:服务端是 ” 哑的 ”,不做任何流量转发——所有连接都是 P2P 协商的。云服务器只负责 ” 告诉两台设备:你的对端在这里 ”。这意味着你用一台 2C2G 的小 VPS 就够支撑上百台设备组网。
一些容易踩的坑
如果你打算自部署,记住下面这几点:
- 必须配 Coturn:否则两个都在 NAT 后的设备无法直连,会回落到 relay 模式
- 服务端开 UDP 51820 端口 :WireGuard 数据面需要这个端口,不开就只能走 relay
- 客户端版本对齐 :服务端和客户端版本差异太大会有兼容性 bug,建议开启自动更新
- 别在公网直接暴露 Management UI:套 Cloudflare Access 或者限制来源 IP
写在最后
如果你只是想要 ” 能连上就行 ”,Tailscale 仍然是更省心的选择。但如果你想完全掌控自己的控制平面、不想被任何第三方 ” 绑定 ”,自托管 NetBird 是 2026 年最值得考虑的家庭 / 小团队组网方案。
我现在的家庭组网架构:NetBird(跨网络互联)+ Headscale(自托管 Tailscale 兼容,给老人设备用)+ Cloudflare Tunnel(少数需要公网 HTTPS 的服务)。三者各司其职,互不冲突。家庭网络终于不再是一团乱麻了。