mirror of
https://github.com/okxlin/appstore.git
synced 2026-09-22 08:00:59 +00:00
Headscale
应用简介
Tailscale 控制服务器的开源自托管实现。
英文说明:An open source, self-hosted implementation of the Tailscale control server.
产品介绍
Headscale 是 Tailscale 控制服务器的开源自托管实现,用于集中管理自有 Tailnet 节点。
主要功能
- 管理用户、节点、预授权密钥和 API 密钥。
- 提供 ACL、MagicDNS、DERP 配置和节点注册能力。
- 使用 SQLite 持久化控制面数据,配置和数据目录可备份迁移。
访问说明
安装完成后,通过表单中的 PANEL_APP_PORT_HTTP 访问 Headscale HTTP 服务;CLI 管理命令可在 1Panel 容器终端中执行。
Introduction
Headscale is an open-source, self-hosted implementation of the Tailscale control server for managing a private Tailnet.
Features
- Manage users, nodes, pre-authentication keys, and API keys.
- Provide ACL, MagicDNS, DERP, and node registration capabilities.
- Persist control-plane data in SQLite with backup-friendly configuration and data directories.
部署说明
- 本应用使用 Docker Compose 在 1Panel 中部署。
- 应用分类:工具。
- 支持架构:amd64。
- 可选版本以应用商店当前版本目录和安装表单为准。
- 安装后通过应用表单中的端口访问 Headscale HTTP 控制服务。
端口
| 变量 | 说明 | 默认值 | 必填 |
|---|---|---|---|
| PANEL_APP_PORT_HTTP | 端口 (对应内部 8080) | 40183 | 是 |
数据持久化
./data/config:/etc/headscale./data/data:/var/lib/headscale
升级或迁移前,请在 1Panel 中备份上述数据目录。
升级到 0.27.1 前请特别注意:
- Headscale
0.27.x会执行 SQLite 数据库结构迁移;升级前请备份./data/data/db.sqlite、./data/data/db.sqlite-wal、./data/data/db.sqlite-shm(如存在)以及./data/config。 0.27.1最低支持的 Tailscale 客户端版本为v1.64.0,旧客户端需要先升级。- 版本目录内的
scripts/upgrade.sh会自动备份并迁移旧版config.yaml;如手动改过 Postgres、DNS、ACL 等配置,升级后请核对database、dns、policy配置块。
升级到 0.29.2 前请特别注意:
- Headscale 强制按次版本顺序升级。商店内必须依次完成
0.27.1 -> 0.28.0 -> 0.29.2,不能从0.27.1直接跳到0.29.2。 0.28.0最低支持 Tailscale 客户端v1.74.0,0.29.2最低支持v1.80.0;请先升级所有客户端。- 每一步升级前都应备份
./data/config,以及db.sqlite、db.sqlite-wal、db.sqlite-shm(如存在)。0.28.0会执行节点标签、预授权密钥和数据库结构迁移。 0.29.x改变了 ACL 通配符和主机名处理规则。使用自定义 ACL、非标准地址段或proto:icmp的用户必须先核对官方变更说明。0.29.2的升级脚本会备份config.yaml,并将旧的randomize_client_port: true迁移到policy.hujson。如果已经使用自定义文件或数据库策略,脚本会停止而不会覆盖策略;请先在现有策略中加入randomizeClientPort,再移除旧配置项后重试。
安全说明
0.28.0和0.29.2按上游容器部署方式使用只读根文件系统、只读配置挂载和临时/var/run/headscale。- 新版本不再申请
NET_ADMIN、NET_RAW、SYS_MODULE,也不设置容器网络转发 sysctl;Headscale 是控制面服务,不承担客户端数据面转发。
配置项
| 变量 | 说明 | 默认值 | 必填 |
|---|---|---|---|
| SUBNET | 1panel-network 子网 IP (查看docker网络获取网段) | 172.18.0.241 | 是 |
使用说明
宿主机可通过以下命令创建、获取所需
- 容器名按需修改
# 创建名为 "username" 的用户
docker exec -it headscale headscale users create username
# 创建一个有效期为 10000 天的 API 密钥
docker exec -it headscale headscale apikeys create -e 10000d
# 创建一个有效期为 10000 天、可重复使用的预授权密钥,并关联到特定的用户名 "username"
docker exec -it headscale headscale preauthkeys create -e 10000d --reusable -u username
1Panel 容器管理页面连接容器终端
# 创建名为 "username" 的用户
headscale users create username
# 创建一个有效期为 10000 天的 API 密钥
headscale apikeys create -e 10000d
# 创建一个有效期为 10000 天、可重复使用的预授权密钥,并关联到特定的用户名 "username"
headscale preauthkeys create -e 10000d --reusable -u username