Headscale:自托管 Tailscale 控制服务器搭建指南

Headscale 是 Tailscale 控制面的开源自托管实现:WireGuard 加密组网 + 完全自主的协调服务器,设备管理、ACL 访问控制全在自己手里。本文从概念到部署与 ACL 配置全覆盖。

最佳实践
操作系统与资源管理插画

直接回答:Headscale 是 Tailscale 控制平面的开源自托管替代品——Tailscale 用 WireGuard 做零配置加密组网,但协调服务器由官方托管;Headscale 把这个控制面搬到自己的服务器上,自行承担控制面运行与身份策略管理。适合隐私合规严格的组织与重度自托管玩家。

核心概念:数据面与控制面

Tailscale 网络分两层:数据面是设备间 WireGuard 直连加密隧道(通常尝试点对点,无法直连时可经 DERP 中继;数据面仍端到端加密,中继可见连接元数据);控制面是协调服务器——协调节点公钥、地址与策略;设备私钥在客户端生成。Headscale 替换的就是控制面。

部署

# 单二进制 + 配置文件即可运行
# 按官方 Releases 为目标 OS/架构安装,并使用同一版本的示例配置
headscale serve

前置准备:一台有公网 IP 的服务器 + 域名 + 按官方要求配置的 TLS 入口(反代需核对兼容要求)。配置文件里设 server_url、监听地址与 SQLite 存储。

设备接入与管理

headscale users create team
headscale users list
# 用当前版本要求的用户 ID 创建短时、单次预授权密钥:
# headscale preauthkeys create --user <USER_ID>
# 设备端:
tailscale up --login-server https://headscale.example.com --authkey <key>

节点列表、路由通告、密钥轮换全走 headscale CLI。

ACL 访问控制

以下只是 ACL 片段,需另定义 group:ops 成员、tag:prod 的 tagOwners 和实际节点标签,完整策略经校验后加载:

{"acls": [{"action": "accept", "src": ["group:ops"], "dst": ["tag:prod:*"]}]}

按组、标签和端口限制访问。加载策略后,从允许的设备访问目标端口,再从不应获准的设备复测,确认放行与拒绝均符合预期。

常见问题(FAQ)

Q:Headscale 支持官方 Tailscale 客户端吗?
A:支持——按 Headscale 当前支持矩阵配置对应平台客户端,不保证所有版本和 Tailscale 功能等价,这是 Headscale 的设计前提。

Q:DERP 中继也要自建吗?
A:控制面自建后,NAT 打洞失败时的 DERP 中继默认仍可用官方节点;要完全自主可再自建 DERP。

Q:生产可用吗?
A:官方定位偏自托管与较小规模网络;升级需核对客户端兼容、数据库迁移与发布说明——升级前读 changelog,做好配置备份。

官方参考

本文依据官方文档整理,示例未在本文中进行运行验证。生产部署需按所用版本、权限和实际负载验证。

延伸阅读

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台