tailscale私有部署教程
适用于 Debian 系统(Ubuntu 同样适用)
一键搭建 Headscale + Headscale-UI + DERP,实现内网穿透、远程访问与点对点传输。
所有命令均基于 GitHub 官方源,支持公网域名部署。
📦 一键命令速查表
| 功能 | 命令 | 说明 |
|---|---|---|
| 更新系统 | apt update && apt upgrade -y |
确保系统为最新状态 |
| 关闭防火墙 | sudo ufw disable |
避免端口阻断 |
| 下载 Go | wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz |
下载 Go 运行环境 |
| 安装 Go | tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz |
解压至系统路径 |
| 设置环境变量 | echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc && source ~/.bashrc |
使 Go 命令全局可用 |
| 下载 Headscale | wget https://github.com/juanfont/headscale/releases/latest/download/headscale_amd64.deb |
获取最新 Headscale |
| 安装 Headscale | dpkg -i headscale_amd64.deb |
安装 Headscale 服务端 |
| 下载 UI 前端 | wget https://github.com/gurucomputing/headscale-ui/releases/latest/download/headscale-ui.tar.gz |
下载 Headscale-UI |
| 启动 Headscale | systemctl enable --now headscale |
启动并设置开机自启 |
| 启动 UI | nohup ./headscale-ui & |
启动 Web UI(可视化管理) |
🧰 环境准备
1. 服务器要求
- Debian 11 或 12(建议 1 核 1G 内存以上)
- 公网 IPv4(推荐使用国外 VPS)
- Root 权限
2. 域名准备
在 Cloudflare 中解析两条记录:
| 记录类型 | 名称 | 指向 | 用途 |
|---|---|---|---|
| A | derp.yourdomain.com |
VPS 公网 IP | DERP 中继服务器 |
| A | head.yourdomain.com |
VPS 公网 IP | Headscale 控制平面 |
⚠️ 请关闭 Cloudflare 代理(橙色云 → 灰色云)
🪄 部署步骤(含命令与解释)
第 1 步:关闭防火墙
1 | sudo ufw disable |
避免端口阻塞,确保 HTTP/HTTPS、DERP、Headscale 端口可访问。
第 2 步:安装依赖
1 | apt install curl wget unzip git -y |
安装基础工具,确保后续脚本运行无误。
第 3 步:安装 Go 环境
1 | wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz |
Headscale 需 Go 支持,验证是否正确安装。
第 4 步:下载并安装 Headscale
1 | wget https://github.com/juanfont/headscale/releases/latest/download/headscale_amd64.deb |
Headscale 是私有控制端(自建 Tailscale 控制平面)。
第 5 步:配置 Headscale
1 | mkdir -p /etc/headscale |
样例配置:
1 | server_url: https://head.yourdomain.com |
第 6 步:启动服务
1 | systemctl enable headscale |
确认服务运行正常后访问
https://head.yourdomain.com/web。
第 7 步:部署 Headscale-UI
1 | wget https://github.com/gurucomputing/headscale-ui/releases/latest/download/headscale-ui.tar.gz |
默认访问路径:http://head.yourdomain.com/web
若使用 Nginx,可反代 3000 端口。
第 8 步:部署 DERP 中继节点
1 | git clone https://github.com/tailscale/tailscale.git |
DERP 用于中继无法直接打洞的设备流量。
建议搭配 Let’s Encrypt 自动签发证书。
第 9 步:客户端登录
1 | sudo tailscale up --login-server=https://head.yourdomain.com |
出现登录链接 → 在浏览器登录 → 回到终端显示 Success 即连接成功。
🧩 网络结构图(详细 ASCII 示意)
1 | ┌──────────────────────────────────┐ |
🧩 客户端连接说明
| 客户端 | 方式 | 登录命令 |
|---|---|---|
| Windows | 管理员终端执行 | tailscale up --login-server=https://head.yourdomain.com |
| Android / iOS | 设置 → 登录服务器 | https://head.yourdomain.com |
| OpenWRT / iStoreOS | GUI → Tailscale 插件 → 自定义登录服务器 | 同上 |
🔧 常见问题与维护命令
| 问题 | 解决命令 / 说明 |
|---|---|
| 修改配置后未生效 | systemctl restart headscale |
| 查看服务日志 | journalctl -u headscale -f |
| 重启 DERP 服务 | systemctl restart derp |
| 检查中继连通性 | tailscale netcheck |
| 退出登录 | tailscale logout |
| 停止服务 | systemctl stop headscale |
| 查看节点状态 | tailscale status |
🛠️ 自动更新脚本(可选)
创建文件 /usr/local/bin/update-headscale.sh:
1 |
|
添加执行权限并定期运行:
1 | chmod +x /usr/local/bin/update-headscale.sh |
可搭配 cron 定时任务:
1 | crontab -e |
📚 参考资源
🎉 结语
至此,你已完成一个完全独立、自建控制平面的 Tailscale 私有网络。
该方案支持多端互联、子网路由、DERP 中继与可视化管理,是目前最稳定且安全的自托管穿透方案之一。
💡 建议将 Headscale 与 DERP 部署在同一台 VPS,以简化维护与降低延迟。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LiteLog!


