一键命令部署 Tailscale 异地组网:Headscale + Headplane 快速上手

Headscale + Headplane

 

一、Tailscale 与 Headscale 简介

Tailscale 是一款基于 WireGuard 的零配置 VPN 组网工具,它能让你在全球各地的设备之间建立起一条加密的直接隧道,无需复杂的端口映射和证书配置。但 Tailscale 官方服务器在海外,数据需要经过第三方,对于隐私敏感或网络受限的用户来说存在一定顾虑。

 

Headscale 是 Tailscale 控制服务器的开源实现,你可以完全自托管在自己的服务器上,数据完全自主可控。配合 Headplane Web 管理面板,通过一条简单的命令就能完成部署,实现可视化管理用户、节点和访问策略。

 

特性 Tailscale 官方 Headscale 自建
控制服务器 官方云端 自托管服务器
数据隐私 第三方托管 完全自主
Web 管理面板 官方后台 Headplane 开源面板
连接协议 WireGuard P2P WireGuard P2P
DERP 中继 全球节点 可自建或用官方

 

二、一键部署 Headscale + Web 管理面板

准备工作:一台具有公网 IP 的 Linux 服务器(推荐 1核1G 以上),已安装 Docker 和 Docker Compose。

 

2.1 执行一键安装命令

运行以下命令,脚本会自动完成 Headscale 服务端和 Headplane 管理面板的部署:

 

bash <(curl -sL kejilion.sh) app headscale

 

Headscale 安装过程

 

安装过程中会自动完成以下操作:

  • 自动检测服务器公网 IP
  • 下载并配置 Headscale 配置文件
  • 生成 API Key 并自动配对 Web 面板
  • 启动双容器:Headscale 服务端 + Headplane 管理面板

 

2.2 安装完成输出

安装成功后会显示类似以下信息:

 

========================================
  Headscale + Headplane 安装完成
========================================

  Web 管理面板: http://你的服务器IP:8081/admin
  Headscale API: http://你的服务器IP:8080

  登录 API Key(已自动配对,请保存):
  hskey-api-xxxxxxxxxxxxx

  打开面板后输入上方 API Key 即可登录
  服务端已自动配对,无需手动填写 URL
========================================

 

重要提示:请保存好输出的 API Key,这是登录 Web 面板的唯一凭证。

 

三、访问 Web 管理面板

打开浏览器访问 http://你的服务器IP:8081/admin,进入 Headplane 登录页面。

 

在输入框中粘贴安装时生成的 API Key,点击 Sign In 即可登录管理面板。

 

登录后可以看到:

  • Users - 用户管理,创建不同的用户命名空间
  • Machines - 节点管理,查看已接入的设备
  • Routes - 子网路由,配置局域网互通
  • ACL - 访问控制策略(需开启数据库模式)

 

四、客户端设备接入

4.1 安装 Tailscale 客户端

在需要组网的设备上安装 Tailscale 客户端:

 

# Linux 一键安装
curl -fsSL https://tailscale.com/install.sh | sh

 

Windows、macOS、iOS、Android 用户可前往官网下载对应客户端。

 

4.2 指定自建服务器连接

关键步骤:使用 --login-server 参数指定你的 Headscale 服务器地址,而不是连接 Tailscale 官方服务器。

 

tailscale up --login-server=http://你的服务器IP:8080

 

执行后会输出类似以下信息:

 

To authenticate, visit:

	http://你的服务器IP:8080/register?key=nodekey:xxxxxxxx

 

4.3 服务端注册节点

方法一:命令行注册

 

# 先创建用户
docker exec headscale headscale users create myuser

# 注册节点(复制客户端输出的完整 nodekey)
docker exec headscale headscale nodes register --user myuser --key nodekey:完整key

 

方法二:使用 PreAuth Key(推荐)

 

先生成预认证密钥:

# 创建用户
docker exec headscale headscale users create myuser

# 查看用户ID
docker exec headscale headscale users list

# 生成预认证密钥(用户ID为1)
docker exec headscale headscale preauthkeys create --user 1

 

然后客户端一条命令直接加入:

tailscale up --login-server=http://你的服务器IP:8080 --authkey=生成的预认证密钥

 

五、验证组网连通

在已注册的设备上执行:

 

# 查看组网状态
tailscale status

# Ping 其他设备(使用 Tailscale 分配的 IP)
tailscale ping 100.64.0.x

 

如果能看到其他设备并且能 Ping 通,说明组网成功!此时所有设备之间已经通过 WireGuard 加密隧道直连。

 

六、进阶:局域网互通(子网路由)

如果想让组网设备访问彼此所在的局域网,可以配置子网路由。

 

6.1 在局域网网关设备上开启路由

# 开启 IP 转发
echo 'net.ipv4.ip_forward = 1' | tee -a /etc/sysctl.conf
sysctl -p

# 广播局域网网段
tailscale up --login-server=http://你的服务器IP:8080 --advertise-routes=192.168.1.0/24

 

6.2 服务端批准路由

# 查看待审批路由
docker exec headscale headscale routes list

# 批准路由
docker exec headscale headscale routes enable --route 1

 

6.3 其他设备接受子网路由

tailscale up --login-server=http://你的服务器IP:8080 --accept-routes

 

配置完成后,你就可以在任何已组网的设备上直接访问 192.168.1.x 局域网地址了!

 

七、常见问题

Q1:为什么客户端显示连接到官方服务器?

确保使用 --login-server 参数指定你的自建服务器地址。如果之前连接过官方服务器,使用 --reset 参数重置:

tailscale up --login-server=http://你的服务器IP:8080 --reset

 

Q2:如何开启 ACL 访问控制?

编辑 Headscale 配置文件,添加:

policy:
  mode: database

然后重启服务。默认情况下所有设备之间完全互通。

 

Q3:支持 P2P 直连吗?

是的!Tailscale/Headscale 默认使用 WireGuard 协议尝试 P2P 直连。约 92% 的连接能成功打洞直连,少数极端 NAT 环境会走 DERP 中继。你可以在配置中启用自建 DERP 服务器来优化中继性能。

 

Q4:生产环境如何配置 HTTPS?

建议使用 Nginx 反向代理 + Let's Encrypt 证书,配置域名访问。HTTP 模式仅适用于测试环境或内网使用。

 

八、总结

通过一条命令部署 Headscale + Headplane,你可以快速搭建属于自己的 Tailscale 控制服务器,实现:

  • 完全自主可控的异地组网解决方案
  • Web 可视化管理用户和节点
  • WireGuard 加密的 P2P 直连
  • 局域网互通、子网路由
  • 跨平台支持(Linux/Windows/macOS/iOS/Android)

 

相比 Tailscale 官方服务,自建 Headscale 让你在享受便捷组网的同时,完全掌控自己的数据和网络拓扑。赶快试试吧!

版权声明:
作者:KEJILION
链接:https://blog.kejilion.pro/headscale-tailscale-quickstart/
来源:科技lion官方博客【国内版】
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>