Headscale,Tailscale 的开源实现

几天前,我们在博客上讨论了 Firezone,这是一个用于创建基于 WireGuard 的 VPN 服务器的优秀实用程序。

现在,我们将讨论一个非常类似的实用程序,名为“Headscale”,它是一个开源项目,是Tailscale VPN服务器组件的实现,允许您在自己的场所创建类似 Tailscale 的 VPN,而无需依赖第三方服务。

Tailscale允许将任意数量的地理位置分散的主机组合成一个网络,该网络以网状网络的形式构建,其中每个节点直接与其他节点通信(P2P)或通过相邻节点通信,而无需通过 VPN 提供商的集中式外部服务器传输流量。

除了支持基于访问控制列表 (ACL) 的路由和访问控制,以及在网络地址转换 (NAT) 条件下建立通信通道外,该系统还支持 STUN、ICE 和 DERP 机制(类似于 TURN,但基于 HTTPS)。如果某些节点之间的通信通道被阻塞,网络可以将流量重新路由到其他节点。

Tailscale与 Nebula 项目有所不同,后者也旨在创建具有网状路由的分布式 VPN 网络,使用 Wireguard 协议来组织节点之间的数据传输,而 Nebula 则使用了 Tinc 项目的开发成果,该项目使用 AES-256 算法来加密 GSM 数据包(Wireguard 使用 ChaCha20 加密,测试表明其具有更高的性能和响应速度)。

另一个类似的独立项目 Innernet 也使用 WireGuard 协议在节点间交换数据。与 Tailscale 和 Nebula 不同,Innernet 采用基于访问控制列表 (ACL) 的不同访问隔离系统;与传统互联网网络不同,Innernet 不使用标签将不同的 IP 地址范围与单个节点和子网关联起来。

此外,Innernet 使用 Rust 而不是 Go,值得一提的是,几天前发布了具有改进 NAT 遍历支持的 Innernet 1.5。 还有一个 Netmaker 项目,它允许您使用 Wireguard 连接具有不同拓扑的网络,但它的代码是在 SSPL(服务器端公共许可证)下提供的,由于存在歧视性要求,该项目不开放。

Tailscale采用免费增值模式分发,为个人用户提供免费访问权限,为企业和团队提供付费访问权限。除Windows和macOS图形应用程序外,Tailscale客户端组件均以BSD许可证下的开源项目形式开发。

Tailscale 的外包服务器软件(用于验证新客户端身份、协调密钥管理以及组织节点间通信)是专有的。Headscale 项目旨在解决这一问题,并提供一个独立于 Tailscale 服务器组件的开源实现。

Headscale 承担节点间公钥交换的功能,并执行节点间 IP 地址分配和路由表分发的操作。

目前,Headscale 实现了管理服务器的所有核心功能,但不支持 MagicDNS 和 Smart DNS。具体来说,它支持节点注册(包括通过 Web 注册)、调整网络以添加或删除节点、使用命名空间进行子网划分(允许为多个用户创建 VPN)、组织对不同命名空间子网的共享节点访问、路由控制(包括分配出站节点以访问外部网络)、通过 ACL 进行共享访问以及 DNS 执行。

Headscale 代码是用 Go 编写的,并在 BSD 许可下分发。 该项目由欧洲航天局的胡安·丰特开发。

最后,如果您有兴趣了解更多信息,可以点击以下链接查看详情。


在 Google 中将其添加为首选来源