当家庭实验室用户需要远程访问时,话题最后总会绕到 Tailscale 上,而且确实有道理。它不用碰命令行就能搞定,这条路已经有成千上万的家庭实验室玩家走过了。它做得很精致,用起来也特别顺,但我的服务走了另一条路。
NetBird 是家庭实验室圈子里越来越火的又一款网状 VPN 工具,虽然我之前也试过它,但我主要依赖自己编写的 WireGuard 配置来为我的实验室提供远程访问,直到后来实在管不过来了。我考虑过 Tailscale,但官方自托管控制平面支持,再加上一个不仅能代理 HTTP 流量的反向代理功能,那它对我来说就是明摆着的选择了。
能够自托管控制平面是关键
NetBird 的官方支持是一个因素
关于 Tailscale 的控制平面,他们并未正式提供自托管的方式,而且他们自己也说得很清楚。他们自己的开源页面上就写着,其托管的协调服务器仍然属于托管服务的一部分,是专有的,而几乎所有其他内容,包括你可以为了降低延迟或满足合规要求而自托管的 DERP 中继服务器,都是开源的。
不过,这并不意味着无法自托管控制平面;Headscale 就是社区给出的方案。它是 Tailscale 控制服务器的开源、自托管实现,可与官方 Tailscale 客户端配合使用,并能在你自己的一台机器上提供节点注册、IP 分配、ACL 和 OIDC。很多人用着也挺好,但它并未得到 Tailscale 的官方支持。话虽如此,它有一位活跃的维护者就在 Tailscale 上班,而且公司允许他在工作时间贡献代码,因此双方关系友好,但它至今还没被当作官方方案推出来,这让我开始考虑其他选择。
NetBird 是我了解过的服务之一,虽然我之前尝试过其基于云的实现,但自托管控制平面有官方支持,这一点很加分。当我的访问策略、网络路由、节点配置以及其他所有内容都托管在一台从技术上讲仍有开发者官方支持的 VPS 上时,我肯定会安心得多,因为这样一来,项目随时被弃坑的概率应该会小不少。
反向代理也能处理非 HTTP 服务
NetBird 的内置反向代理非常实用
NetBird 内置的反向代理说白了就是 Traefik:它会自动分配一个带 TLS 证书的公网域名,然后通过加密隧道把流量转发到目标,目标不需要公网 IP,也不用开放端口。NetBird 实现的不同之处在于,你可以直接原样转发 UDP、TCP 和 TLS 流量。这意味着通常没法代理的四层服务,比如 Minecraft 游戏服务器或 VoIP 服务器,现在都能通过一个简洁的 URL 来代理了。而 Cloudflare Tunnel 或 Tailscale Funnel 就做不到这一点,后者虽然能做 TCP,但只限于特定端口,UDP 更是完全没戏。
转发 UDP 时,你显然就没法用基于浏览器的服务那种身份验证了,因为 NetBird 无法在 Minecraft 服务器上放置登录页面,但光是能有这个功能,相比 Tailscale 就已经是巨大的优势了。对我来说,这正是那种一锤定音的功能。
Tailscale 的整个设计都基于这样一个事实:这本来就不该是你操心的事
在云端一劳永逸地配置好,这种选择很诱人
自托管 NetBird 需要搭一整套服务:管理、信令、中继和 STUN 服务、数据库以及 Traefik,只有你愿意自己扛下这些组件的维护工作,它才有吸引力。
Tailscale 要是不自托管,就完全是另一回事了。没有需要托管的协调服务器,不需要证书的话也完全可以不配,而且几乎你能想到的每个平台都有成熟的客户端。而且,对于大多数家庭实验室来说,我所抱怨的端口限制基本不会碰到,因为大家对外提供的服务都是 Web 应用,而 Web 应用恰恰就是 Funnel 的用武之地。如果你真的愿意,你也可以用 Headscale 来自托管,虽然它不是官方出品,但口碑一直很好。
但我自己托管 NetBird 所获得的两样东西,是 Headscale 或 Funnel 无法给我的。
Headscale 为你提供了控制平面,然后把暴露问题原封不动地留在 Tailscale 当初留下的状态,因为客户端仍然是 Tailscale 的客户端,Serve 和 Funnel 的行为也没变。Funnel 能解决一部分暴露问题,但你的端口列表就没了,并且不允许其他 L4 流量。有些配置确实得靠 NetBird 去翻配置文件才能搞定,因为 NetBird 还处于测试阶段,虽然不是即插即用,但一旦配置好,跑起来一点问题都没有。
远程访问没有万能方案
如果你的远程访问只是访问几个网页仪表盘,安装 Tailscale 装上就不用操心了。它做得非常精致,这种场景下用起来非常顺畅。我选 NetBird 的原因很明确:我想要一个控制平面,它是原厂自己的产品,而不是某个闭源方案的第三方复刻;而且我想把不支持 HTTP 的流量也走隧道,又不想受三端口白名单的限制。如果这两点都不是你的问题,那 NetBird 这套技术栈对你来说就是多余的负担。如果两点都是,那根本不用比了。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.