headscale VPN 控制端(部署于 bianque-life 扁鹊生活)
自建 Tailscale 兼容组网控制服务器(yunmaivpn 网络),全机房内网互联的核心。
访问方式
- 控制面:https://vpn.bianquezhiyin.cn (nginx → 127.0.0.1:8080)
- 已接入节点(部分):fnos99、hk-yunmai(exit node)、huoshan、immortalwrt(exit node)、kaku2025、ls-wifi 等
技术架构
- 栈:docker headscale/headscale:0.29.3
- 入口:/opt/headscale/docker-compose.yml(command: serve)
- 进程管理:docker compose(restart unless-stopped)
- 端口:8080/tcp(控制)、3478/udp(STUN)、51820/udp(WireGuard)
- 配置:/opt/headscale/config/config.yaml —— server_url=https://vpn.bianquezhiyin.cn,base_domain=hs.local
- 数据:/opt/headscale/data(sqlite 节点库)
数据
- 数据库:sqlite(/opt/headscale/data)
- 备份情况:无备份任务;此库丢失 = 全网节点注册信息丢失,属高价值数据
使用方法
- 新节点接入:headscale 控制台生成 preauth key 后在节点
tailscale up --login-server https://vpn.bianquezhiyin.cn
- 节点列表:docker exec headscale headscale nodes list
维护方式
- 启停:cd /opt/headscale && docker compose restart
- 日志:docker logs -f headscale
- 配置:config.yaml 改后需重启容器
现状与风险
- 运行 2 周稳定;8080 公网直连 + 443 域名双入口
- 无 sqlite 备份;与 DERP、frps 共同构成组网底座,属关键基础设施
优化建议
- 备份:0 */6 * * * docker cp headscale:/var/lib/headscale/db.sqlite /www/backup/headscale-db.sqlite
- 安全:安全组封 8080 直连,仅留 443(vpn.bianquezhiyin.cn)入口
- 可维护性:把节点清单(nodes list)每周导出存档
- 性能:资源占用小,维持现状