用途:headscale-backup 面向已有 Headscale 部署,提供备份、恢复与迁移三类脚本。Headscale 状态保存在 SQLite 数据库、config.yaml、policy.json 及 TLS 证书中,数据库损坏或配置错误可能导致节点注册与路由状态全部丢失,因此升级前备份尤为重要。\n\n主要能力:完整备份包包含 SQLite DB(节点状态、用户、路由、预认证密钥、API 密钥)、config.yaml、policy.json(若存在)、证书与私钥(含节点私钥,位于 /var/lib/headscale/)、自定义的 DERP map。备份方式推荐 sqlite3 .backup,可在数据库在线时安全执行,hs-backup.sh 即采用此方式;直接 cp 文件须先停止 headscale,否则可能造成 WAL 损坏。\n\n使用方式:恢复流程为停止 headscale 服务、从备份包还原文件、启动服务,并用健康检查或 headscale nodes list 验证。迁移流程为在源主机备份、用 rsync 或 scp 传输到目标主机、在目标安装同版本 headscale、恢复备份、更新 DNS 指向新服务器并验证客户端重连。可用 cron 自动备份,例如:0 2 * * * /path/to/hs-backup.sh --auto --output-dir /backups/headscale/。环境变量包括 HEADSCALE_URL 与 HEADSCALE_API_KEY,用于健康检查和验证。\n\n限制与注意事项:源与目标 headscale 版本应完全一致,跨版本恢复可能引起 schema 迁移失败或数据损坏,迁移前用 headscale version 检查。节点密钥变化会导致所有节点需重新认证;API 密钥以哈希形式存储,恢复数据库无法还原原始密钥,需用 headscale apikeys create 重新生成;预认证密钥随数据库恢复,但过期后不可用。本技能仅覆盖备份、恢复与迁移,不用于部署或配置服务器,也不用于节点管理。其余细节暂未提供。
headscale-backup
部署与运维
更新于 10-16 00:03