Tailscale玩法之内网穿透、异地组网、全隧道模式、纯IP的双栈DERP搭建、Headscale协调服务器搭建,用一期搞定,看一看不亏吧?
整体摘要
这是一期"Tailscale 一站式"实操教程,从零覆盖五大主题:(1) 设备加入 Tailscale 网络的基础玩法与授权技巧;(2) 以"1 个外部节点 + 3 个局域网"(OpenWrt 主路由 / OpenWrt 旁路由 / 群晖 NAS Docker)为拓扑的异地组网实战,实现所有设备双向互访;(3) 全隧道模式(出口节点 Exit Node);(4) 自建不需要域名、纯 IP 的双栈 DERP 中转服务器——通过修改 derper 源码去除域名校验、自签证书、systemd 服务化,再借助 HE 隧道补齐 IPv6,并开启防白嫖;(5) 自建 Headscale 协调服务器(官方协调器开源版)+ 前端 UI,并让它复用纯 IP 自建 DERP。UP 主反复强调:Tailscale 搭建坑多、细节多,必须细心完整观看。
开场与内容总览
介绍本期为 Tailscale 完整玩法合集,细节非常多,涵盖基础玩法、异地组网、Docker 版部署、纯 IP 双栈 DERP、Headscale 搭建,强调不看细节玩不转。
本视频是一期"一站式"Tailscale 教程,覆盖从入门到自建基础设施(DERP + Headscale)的完整链路。UP 主(韩风)明确提示:Tailscale 搭建过程中坑较多(结尾 20:10 再次强调),操作时不要遗漏细节。
基础玩法——设备加入 Tailscale 网络
图形界面系统点 Log in 走浏览器第三方账号授权;Linux 用 tailscale up 获取授权网址。技巧:跨设备授权、管理界面禁用密钥过期(Key Expiry)避免反复登录;每个节点可查看其他节点虚拟 IP。
| 时间 | 类型 | 说明 |
|---|---|---|
| 00:32 | 核心概念 | 基础玩法:各终端安装 Tailscale,加入账号网络成为节点即可互访 |
| 00:49 | 关键步骤 | 图形界面系统(Windows/macOS/安卓/iOS):点 Log in → 调用系统浏览器 → 第三方账号授权 |
| 01:04 | 关键步骤 | Linux 无界面:tailscale up 返回授权网址,浏览器访问后登录授权 |
| 01:14 | 实用技巧 | 跨设备授权:把 iOS 的授权网页发给别处 Windows 完成授权,iOS 即登录成功 |
| 01:34 | 核心概念 | 节点密钥默认有有效期,过期需重新登录授权 |
| 01:42 | 关键步骤 | 管理界面 → 节点选项 → 禁用密钥过期,之后无需重新授权 |
| 01:56 | 特性说明 | 每个节点可方便查看其他节点的虚拟 IP |
设备入网两种方式:
- 图形界面系统:点击客户端 "Log in",Tailscale 调用系统浏览器访问官方协调服务器,登录第三方账号完成认证。
- Linux:执行
tailscale up,复制返回的授权网址到任意浏览器访问登录。
跨设备授权技巧(01:14):Linux 的授权链接方式同样适用于图形系统——把 iOS 跳转的授权网页发给其他地方的 Windows,用 Windows 浏览器完成授权,成功后 iOS 节点自动登录。
密钥过期(01:34):默认密钥会过期需反复授权。在管理界面节点选项中启用"禁用密钥过期"即可一劳永逸。
虚拟 IP(01:56):任一节点都能查看其他节点的虚拟 IP,便于互访。
异地组网实战——拓扑设计与三大局域网配置
以"1 外部节点 + 3 局域网"大拓扑一站式覆盖主流组网:局域网一(OpenWrt 主路由)、局域网二(OpenWrt 旁路由)、局域网三(群晖 NAS Docker)。核心配置为子网路由通告与批准、tailscale0 接口与防火墙、旁路由场景的静态路由表与 IP 伪装、NAS 的 Docker 部署与 iptables 规则开机持久化,最终全设备双向互访。
| 时间 | 类型 | 说明 |
|---|---|---|
| 02:04 | 核心概念 | 目标:一个大网络布局涵盖大部分组网方式 |
| 02:11 | 拓扑设计 | 1 个外部节点 + 3 个局域网(主路由 / 旁路由 / NAS) |
| 02:28 | 目标定义 | 所有设备双向互访 |
| 02:34 | 关键步骤 | 【局域网一】OpenWrt 官方库安装 iptables-nf + Tailscale 插件 |
| 02:41 | 注意事项 | iptables-nf 是 OpenWrt 20.3+ 必装,否则守护进程无法运行 |
| 02:49 | 关键步骤 | SSH 执行入网命令,--advertise-routes 填局域网一网段,授权网址浏览器登录 |
| 03:08 | 关键步骤 | 管理界面:改节点名、禁用密钥过期、路由规则中批准子网路由 |
| 03:27 | 关键步骤 | OpenWrt 添加接口:协议"不匹配协议设备",设备选 tailscale0,自定义防火墙区域 |
| 03:44 | 关键步骤 | 防火墙:tailscale 区域入/出站"接受",允许转发到 lan 区和 wan 区 |
| 04:06 | 关键步骤 | 【局域网二】旁路由操作相同,仅 --advertise-routes 改为局域网二网段 |
| 04:22 | 注意事项 | 旁路由必须开启 IP 伪装(Masquerading) |
| 04:27 | 关键步骤 | 局域网二主路由配静态路由表:目标填 Tailscale 虚拟网段/局域网一/三网段,网关指向旁路由 |
| 04:53 | 核心概念 | 逻辑:局域网二设备访问外部流量统一交给旁路由处理(同 Zerotier 玩法) |
| 05:10 | 关键步骤 | 【局域网三】群晖 DSM 7.0,不用官方套件,用 Docker 运行 Tailscale |
| 05:30 | 关键步骤 | SSH 登录 → 进入 root → Docker 命令部署,参数含局域网三网段 |
| 05:47 | 注意事项 | 不需要 NAS 做全隧道出口可删 --advertise-exit-node(默认备用) |
| 05:52 | 关键步骤 | Auth Key:管理界面 Settings → Keys,勾选 Reusable(可重复使用) 后生成 |
| 06:10 | 关键步骤 | 容器出现虚拟 IP 即授权成功;管理界面开子网路由 + 禁用密钥过期 |
| 06:33 | 关键步骤 | 执行 iptables 转发规则开启 IP 转发(接口为 NAS 本地网卡,按实际改) |
| 06:45 | 关键步骤 | 局域网三主路由加静态路由(Tailscale 虚拟网 + 局域网一/二网段,网关指向 NAS) |
| 07:00 | 关键步骤 | 群晖防火墙规则持久化:计划任务→开机触发→root 脚本粘贴 iptables 规则,首行加 sleep 延时 |
| 07:29 | 重点结论 | 整个大网络框架内所有设备完全互访 |
拓扑(02:11):外部节点 ×1;局域网一 = OpenWrt 主路由装 Tailscale;局域网二 = OpenWrt 旁路由装 Tailscale;局域网三 = NAS(群晖)装 Tailscale。目标是全部设备双向互访。
局域网一:OpenWrt 主路由(02:34 - 04:06)
- 安装
iptables-nf(OpenWrt 20.3+ 必装)与 Tailscale 插件。 - SSH 登录执行入网命令,
--advertise-routes填本网段,复制授权网址完成授权。 - 管理界面三件事:改节点名(关自动命名)、禁用密钥过期、批准子网路由。
- 添加网络接口:协议选"不匹配协议设备"、设备
tailscale0、分配自定义防火墙区域。 - 防火墙编辑该区域:入站/出站"接受",允许转发到 lan 区和 wan 区。保存后外部节点即可与局域网一互访。
局域网二:OpenWrt 旁路由(04:06 - 05:10)
- 旁路由操作与局域网一相同,仅
--advertise-routes换成本网段。 - 确保旁路由 IP 伪装开启。
- 在局域网二主路由配静态 IPv4 路由:目标 = Tailscale 虚拟网段、局域网一网段、局域网三网段,网关 = 旁路由 IP。
- 逻辑:局域网二内设备的跨网访问全部交给旁路由(与 Zerotier 旁路由方案同理)。
局域网三:群晖 NAS + Docker(05:10 - 07:33)
- 不用群晖套件,Docker 运行 Tailscale。SSH 登录 → 进入 root → 运行 Docker 命令。
- docker run 参数:
--advertise-routes=NAS 所在网段;--advertise-exit-node不需要可删;Auth Key 在 Settings → Keys 生成并勾选 Reusable。 - 容器出现虚拟 IP 即授权成功;管理界面开子网路由 + 禁用密钥过期。
- 执行 iptables 规则开 IP 转发(
-i为 NAS 本地物理网卡)。 - 局域网三主路由加静态路由(虚拟网 + 局域网一/二网段 → 网关指向 NAS)。
- 坑点(07:00):群晖重启 iptables 规则丢失 → 控制面板 → 计划任务 → 新增触发的任务(开机、root、用户自定义脚本),粘贴防火墙规则,首行加 sleep 延时命令(按 NAS 开机速度微调)。
全隧道模式——出口节点(Exit Node)
节点 B 开启 Exit Node 功能并在管理界面获得批准后,节点 A 选择 B 作为出口,A 的全部流量经 B 的网络出站,B 能访问的网站 A 也能访问。三步设置,非常简单。
- 出口节点 B 开启 Exit Node 广播(对应第 3 章 Docker 参数
--advertise-exit-node); - 管理界面批准 B 为出口节点;
- 节点 A 在客户端选择 B 作为出口节点。 效果:A 的所有流量从 B 的网络出站,相当于 A "身处" B 的网络环境。
自建纯 IP 双栈 DERP 中转服务器
官方 DERP 自建教程需要域名(国内需备案),本期改用纯 IP 方案:云服务器装 Go → 注释 derper 证书校验三行源码后重新编译 → 自签"假域名"证书 → systemd 服务化(HTTPS 33445 / STUN 3478)→ 管理界面 ACL 添加自建 DERP → 客户端验证中转生效。IPv6 双栈两法:借用官方香港 DERP(region id=20),或(推荐)用 HE 隧道 tunnelbroker 给云服务器加公网 IPv6。最后把云服务器自身加入 Tailscale 网络并给 DERP 服务加客户端验证参数实现防白嫖。
| 时间 | 类型 | 说明 |
|---|---|---|
| 08:09 | 核心概念 | 两大进阶玩法:中转服务器(DERP)+ 协调服务器(Headscale) |
| 08:16 | 背景说明 | 官方方法需域名,国内需备案;本期分享不需要域名纯 IP 方案 |
| 08:30 | 来源说明 | 受一篇文章启发,但不用其 Docker 镜像,而是按官方逻辑重新编译 derper |
| 08:43 | 关键步骤 | 云服务器:更新软件、安装编译工具 |
| 08:50 | 关键步骤 | 安装 Go(最新版下载地址从 Go 官网下载页获取) |
| 09:15 | 关键步骤 | Go 加入环境变量 |
| 09:20 | 关键步骤 | 配置 Go 国内代理源,加速下载 |
| 09:26 | 关键步骤 | 拉取并首次编译 derper(产物不需要,只为拉源码) |
| 09:32 | 核心概念 | 进入源码 derper 目录,编辑证书 go 文件,注释三行域名校验代码保存 |
| 09:46 | 关键步骤 | go build 编译输出到指定目录,确认 derp 可执行文件存在 |
| 09:58 | 关键步骤 | 自签瞎编域名的证书启用 DERP(域名不出现在网络,仅用于运行) |
| 10:13 | 关键步骤 | derper 做成 systemd 服务:HTTPS 33445、HTTP 端口、STUN 3478、-certmode=manual 指定证书目录 |
| 10:31 | 注意事项 | 云服务器防火墙放行 33445 和 3478 端口 |
| 10:37 | 关键步骤 | 开机自启 + 启动服务 |
| 10:41 | 关键步骤 | 验证:浏览器 HTTPS 访问 IP:33445(不安全→高级→继续),可见 DERP 页即成功 |
| 10:53 | 关键步骤 | 官方管理界面 ACL 填自定义 DERP 配置,只改两项:端口 33445 + 云服务器 IPv4,Save |
| 11:16 | 关键步骤 | Linux 客户端命令验证已连接自建中转 |
| 11:23 | 关键步骤 | 查 DERP 状态,无报错即正常,报错则回查步骤 |
| 11:36 | 关键步骤 | tailscale ping 显示连接经中转服务器中转,IPv4 中转完成 |
| 11:46 | 核心概念 | 局限:纯 IPv4 DERP 无法服务公网 IPv6 节点,引出双栈需求 |
| 11:59 | 方案一 | 借官方 DERP:ACL 禁用官方全部地理位置,仅保留香港(id=20),IPv6 走香港直连;也适用 Docker 版自建 DERP |
| 12:30 | 方案二(推荐) | 给云服务器配公网 IPv6:借 HE 隧道(tunnelbroker) 实现 |
| 12:47 | 关键步骤 | 注册 tunnelbroker → 创建隧道 → 填云服务器公网 IP(防火墙放行 ICMP 可 ping 通)→ 选香港创建 |
| 13:10 | 注意事项 | 配置示例中公网 IP 需替换为云服务器私网 IP(ip addr 查看) |
| 13:31 | 关键步骤 | 修改网络配置文件粘贴隧道配置 → reboot → 获得 IPv6 地址并测试可用 |
| 13:53 | 关键步骤 | ACL 中自建 DERP 配置加入云服务器 IPv6 并保存 |
| 14:03 | 注意事项 | 客户端先 down 再 up 保证时效,ping 验证 IPv6 直连——双栈搞定 |
| 14:16 | 核心概念 | 风险:DERP 信息泄露会被他人白嫖 |
| 14:27 | 关键步骤 | 防白嫖:云服务器装 Tailscale 入网 → DERP 服务参数追加客户端验证参数 → daemon-reload → 重启服务 |
第一步:Go 编译环境(08:43 - 09:26) 更新软件源、装工具 → 官网下载最新版 Go → 按官方手册解压安装 → 加入环境变量 → 配置国内代理源。
第二步:编译"去域名化"derper(09:26 - 09:58)
go install首次编译(产物弃用,只为拉源码)。- 进入源码 derper 目录,编辑证书相关 go 文件,注释三行(去除域名/证书强制校验),保存。
go build编译输出到指定目录,确认 derp 可执行文件存在。
第三步:自签证书 + 服务化(09:58 - 10:41)
- openssl 自签"瞎编域名"证书——域名不对外,仅让 DERP 能启动。
- systemd 服务参数:HTTPS 端口
33445、HTTP 端口、STUN 端口3478、-certmode=manual+ 证书目录。 - 安全组放行
33445、3478;enable + start。 - 浏览器
https://IP:33445(证书告警→继续)看到页面即运行。
第四步:接入与验证(10:53 - 11:46)
ACL 粘贴自定义 DERP 模板(其中一行表示借用官方其他中转),只改端口 + IPv4 两项 → Save → 客户端 netcheck 类命令确认连接 → 检查 DERP 状态无报错 → tailscale ping 显示"经由中转"即成功。
第五步:IPv6 双栈(11:46 - 14:16)
- 方案一(借官方):ACL 插入官方 region 列表并全部禁用,仅留香港 id=20;IPv6 节点走香港官方 DERP。
- 方案二(推荐,自建双栈):tunnelbroker(HE)创建隧道(需公网 IP + ICMP 放行 + 选香港)→ 生成配置时把公网 IP 换成私网 IP → 写入网络配置文件 → reboot → 验证 IPv6 → ACL 给自建 DERP 加 IPv6 地址 → 客户端 down/up 后 ping 验证 IPv6 直连。
第六步:防白嫖(14:16 - 14:57)
云服务器自身安装 Tailscale 并授权入网 → 编辑 DERP systemd 服务追加验证参数 → 保存 → daemon-reload → 重启。之后仅自己网络内的节点可用该 DERP。
Headscale 自建协调服务器(含前端 UI)
官方协调服务器连不上或有定制需求时自建 Headscale(官方协调器开源版、官方认可)。流程:按架构下载安装 → 配置 server_url 为公网 IP:3355、注释 IPv6 前缀(规避只显示 IPv6 的 bug)→ Nginx 反代 + headscale-ui 前端 → API 密钥绑定 UI → 建用户 → 各平台客户端改 Login Server 接入(macOS:Option+图标→Debug→Log in;Linux:--login-server)→ 设备在 UI 粘贴授权命令完成注册 → Headscale 复用自建纯 IP DERP(自带 DERP 仍需域名故弃用),注意防白嫖导致连不上时需把云服务器节点也加入 Headscale。
| 时间 | 类型 | 说明 |
|---|---|---|
| 14:57 | 分界说明 | 免费版 100 客户端,一般够用;官方协调器连不上才需自建 |
| 15:19 | 核心概念 | Headscale:Tailscale 官方协调服务器的开源版本,受官方认可支持 |
| 15:27 | 方案说明 | 一同搭建前端 UI 便于管理 |
| 15:34 | 关键步骤 | 下载最新版安装包,地址按云服务器架构从项目 Releases 选择 |
| 15:49 | 关键步骤 | 安装 + 开机自启动 |
| 16:00 | 关键步骤 | 配置①:server_url 改为 公网IP:自定义端口(示例 3355),防火墙放行 |
| 16:13 | 注意事项 | 配置②:注释 IPv6 前缀,规避客户端只显示 IPv6 不显示 IPv4 的 bug |
| 16:31 | 关键步骤 | 安装 Nginx 建反向代理,配置监听 IP:3355 与 UI 路径 |
| 16:52 | 关键步骤 | 下载 headscale-ui 压缩包,解压到指定目录 |
| 17:04 | 关键步骤 | 启动 Headscale 服务,重启 Nginx |
| 17:10 | 关键步骤 | 创建 API 密钥(UI 授权用);换设备/浏览器需重新输入,相当于密码 |
| 17:16 | 关键步骤 | 浏览器登录 IP:3355/web → Settings 粘贴密钥 → 检测通过 |
| 17:34 | 关键步骤 | 创建新用户,协调服务器准备完成 |
| 17:43 | 核心概念 | 客户端接入 = 修改默认登录地址(Login Server) |
| 17:47 | 关键步骤 | macOS:退出官方账号 → 按住 Option 点图标 → Debug → Log in → 替换为 Headscale 地址 |
| 18:03 | 关键步骤 | 授权:复制浏览器跳转页的命令 → UI"设备"→ 添加设备 → 粘贴 → 选用户 |
| 18:19 | 参考说明 | Windows/Android/iOS 改法见官方手册,后续与 macOS 一致 |
| 18:28 | 关键步骤 | Linux:退出官方账号,tailscale up 加 --login-server 参数 |
| 18:42 | 核心概念 | 注意:此时 Headscale 中转仍用 Tailscale 官方 DERP |
| 18:47 | 核心概念 | Headscale 自带 DERP 但必须域名,无域名条件故弃用 |
| 18:55 | 方案说明 | 复用第 5 章自建的纯 IP DERP |
| 19:02 | 关键步骤 | 创建自定义 DERP 配置文件(JSON,按 UP 主格式填自建 DERP 信息) |
| 19:19 | 关键步骤 | Nginx 插入配置使该文件可 HTTP 下载 |
| 19:25 | 关键步骤 | Headscale 配置中 DERP 地址改为自建配置文件 URL(注意对齐无多余格式),注释官方地址 |
| 19:38 | 关键步骤 | 分别重启 Nginx 和 Headscale |
| 19:42 | 排错 | 无法连中转 = 防白嫖所致:把云服务器上的 Tailscale 客户端也加入 Headscale 即可 |
| 19:57 | 重点结论 | Headscale 玩法搞定 |
适用判断(14:57):免费版 100 客户端,家庭够用;仅当官方协调器连不上或有其他需求才自建。
安装与配置(15:34 - 16:29)
- 按 Headscale 官方手册安装;下载地址替换为匹配云服务器架构的 Releases 版本;装完设开机自启。
- 配置文件两处修改:
server_url=公网IP:3355(客户端登录访问地址),防火墙放行端口;- 注释 IPv6 前缀(bug:同时分配 IPv6 时部分客户端只显示 IPv6)。
Nginx 反代 + UI(16:31 - 17:40)
- 装 Nginx,配置反代(IP:3355 + UI 路径)。
- 下载 headscale-ui,解压到指定目录。
- 启动 Headscale、重启 Nginx。
- 命令行创建 API 密钥 → 浏览器
IP:3355/web→ Settings 粘贴密钥 → 检测通过(密钥=密码,换浏览器需重输)。 - "用户"处新建用户。
客户端接入(17:43 - 18:40)
- macOS:退出官方账号 → 按住 Option 点 Tailscale 图标 → Debug → Log in → 替换登录服务器地址 → 登录。
- 授权:复制跳转页面命令 → UI 设备 → 添加设备 → 粘贴 → 选用户 → 确定。
- Windows/Android/iOS:见官方手册,操作同 macOS。
- Linux:
tailscale up --login-server=<Headscale地址>,复制输出去 UI 授权。
接入自建 DERP(18:42 - 19:57) Headscale 自带 DERP 需域名 → 复用第 5 章纯 IP 自建 DERP:
- 写自定义 DERP 配置文件(按 UP 主格式);
- Nginx 提供该文件下载;
- Headscale 配置 DERP 地址指向该 URL,注释官方地址(注意对齐、无多余格式);
- 重启 Nginx 和 Headscale;
- 排错:若无法连中转,是因为 DERP 开了防白嫖——把云服务器上的 Tailscale 客户端也加入 Headscale 网络即可。
总结与提醒
本期玩法并非 Tailscale 全部,仍有大量可深入方向;Tailscale 有些地方还不成熟、搭建坑多,想玩必须认真完整观看、不遗漏细节、保持细心。
整体总结
本视频以"基础 → 组网 → 进阶 → 自建基础设施"的递进结构完整呈现了 Tailscale 的实战玩法:
- 基础层:设备入网两方式(GUI 登录授权 / Linux
tailscale up授权链接)、跨设备授权技巧、禁用密钥过期、虚拟 IP 互访。 - 组网层:以"外部节点 + 3 局域网"拓扑实战异地组网——主路由方案(插件 + tailscale0 接口 + 防火墙 lan/wan 转发 + 子网路由批准)、旁路由方案(IP 伪装 + 主路由静态路由指向旁路由)、NAS 方案(Docker + Auth Key(Reusable) + iptables 转发 + 群晖开机计划任务持久化);外加全隧道出口节点三步设置。
- 自建中继层(DERP):纯 IP 方案的核心是"改 derper 源码去域名校验 + 自签假域名证书 + systemd 服务化(33445/3478)+ ACL 接入";IPv6 双栈推荐 HE 隧道(注意私网 IP 替换);防白嫖靠云服务器自身入网 + 客户端验证参数。
- 自建协调层(Headscale):开源版协调器 + headscale-ui 前端 + Nginx 反代;客户端改 Login Server 接入;Docker/纯 IP DERP 复用时的配置文件下载方案与防白嫖联动排错。
UP 主的核心忠告:Tailscale 细节多、坑多,操作务必细心,不要跳看。此外,视频时间戳与字幕为 AI 识别,命令细节(具体命令行、配置文件路径)在视频中展示,实操时建议对照原视频画面。