编辑
2026-01-01
技术漫谈
00
请注意,本文编写于 59 天前,最后修改于 27 天前,其中某些信息可能已经过时。

目录

第一部分:Tailscale是什么?
1.1 技术背景
1.2 核心优势
1.3 三大“杀手级”功能
第二部分:部署方案选择 (Script vs Docker)
2.1 官方脚本直接安装 (Linux Native)
2.2 Docker Compose 安装 (推荐)
第三部分:终极部署指南 (Docker Compose)
3.1 准备工作
3.2 docker-compose.yml 模板
3.3 启动与修改配置
第四部分:关键功能解析与使用 (Q&A 汇总)
4.1 Exit Node (出口节点) 详解
4.2 Subnet Router (子网路由) 详解

Gemini_Generated_Image_a4q4gda4q4gda4q4.png

第一部分:Tailscale是什么?

1.1 技术背景

Tailscale 是一款基于 WireGuard 协议的现代 VPN 工具。与传统 VPN(如 OpenVPN)或内网穿透工具(如 Frp)不同,它主打 Mesh(网状)网络

  • 传统 VPN: 所有流量必须经过中心服务器中转,一旦中心挂了,全网瘫痪。
  • Tailscale: 它是 P2P(点对点) 直连的。只要打洞成功,你的手机和家里的 NAS 就是直接通信,速度极快且不依赖中心服务器中转。

1.2 核心优势

  1. 零配置(Zero Config): 无需公网 IP,无需路由器端口映射,无需配置复杂的防火墙。
  2. MagicDNS: 内网不再是一串难记的 IP(如 100.64.0.5),而是直接用机器名互联(如 http://nasping laptop)。
  3. 安全性: 流量全程端到端加密,甚至比直接暴露公网端口更安全。

1.3 三大“杀手级”功能

  • 全互联: 手机、电脑、服务器随时随地像在一个局域网里。
  • Exit Node(出口节点): 让你的流量“回家”绕一圈再上网(防监听、伪装 IP)。
  • Subnet Router(子网路由): 一人得道,鸡犬升天。只要一台机器装了 Tailscale,整个局域网里的打印机、摄像头(没法装软件的设备)都能被远程访问。

第二部分:部署方案选择 (Script vs Docker)

2.1 官方脚本直接安装 (Linux Native)

  • 优点: 简单粗暴,直接运行在宿主机系统层,网络性能理论上损耗最小。
  • 缺点: 污染宿主机环境,升级/卸载/迁移比较麻烦,配置文件分散。

官方脚本一键安装:

curl -fsSL https://tailscale.com/install.sh | sh

安装完成后,会生成一个地址,复制到浏览器完成登录过程。

PixPin_2026-01-01_06-12-09.png

如果要省去登陆流程,进入此页面申请一个key,生成带有密钥的脚本一键安装:

https://login.tailscale.com/admin/machines/new-linux

2.2 Docker Compose 安装 (推荐)

  • 优点:

  • 配置即代码 (IaC): 所有配置写在一个 .yml 文件里,改配置只需改文件。

  • 环境隔离: 不弄乱宿主机的 /etc 目录。

  • 易管理: 想要开关某个功能(如 Exit Node),只需修改文件注释,然后重启容器即可。

  • 结论: 对于 NAS用户,Docker Compose 是最佳实践


第三部分:终极部署指南 (Docker Compose)

这是**“完整版”配置文件。包含了常用的状态持久化**、出口节点子网路由等功能开关。

3.1 准备工作

  1. 获取 Auth Key: 登录 Tailscale 控制台 -> Settings -> Keys -> Generate auth key。
  2. 开启 TUN 模块: 确保宿主机开启了 TUN(大多数 NAS 和 Linux 默认开启,若报错参考之前的修复命令)。

3.2 docker-compose.yml 模板

yaml
version: "3.7" services: tailscale: container_name: tailscale image: tailscale/tailscale:latest restart: unless-stopped network_mode: host # 强烈建议使用 host 模式,性能最好且支持 IPv6 # ⚠️ 核心权限:必须赋予网络管理权限,否则无法建立 VPN 隧道 cap_add: - NET_ADMIN - NET_RAW volumes: # 1. 数据持久化:防止重启容器后 IP 变化 (左边路径改为你的实际路径) - ./data/var_lib:/var/lib # 2. 核心设备映射:必须映射宿主机的 /dev/net/tun - /dev/net/tun:/dev/net/tun environment: # 1. 认证密钥 (填入后首次启动自动登录) - TS_AUTHKEY=tskey-auth-xxxxxxxxx # 2. 主机名 (MagicDNS 里的名字) - TS_HOSTNAME=nas-server # 3. 状态目录 (配合上面的 volumes 使用) - TS_STATE_DIR=/var/lib # ================= 功能开关区 (按需取消注释) ================= # 【功能 A:出口节点 Exit Node】 # 开启后,这台机器变成“VPN服务器”,允许其他设备通过它上网 - TS_EXTRA_ARGS=--advertise-exit-node # 【功能 B:子网路由 Subnet Router】 # 允许远程访问家里没装 Tailscale 的设备 (如 192.168.1.1 路由器后台) # 请将 192.168.x.x/24 修改为你家局域网的实际网段 # - TS_ROUTES=192.168.1.0/24,192.168.100.0/24 # 【功能 C:用户态网络模式】 # 如果 network_mode: host 报错,可以使用这个,但性能稍差 # - TS_USERSPACE=true

3.3 启动与修改配置

  • 启动: docker-compose up -d
  • 修改配置(比如要增加子网路由):
  1. 用编辑器打开 docker-compose.yml
  2. 取消 TS_ROUTES 那一行的注释,填入网段。
  3. 再次执行 docker-compose up -d(Docker 会自动识别变化并重建容器,无需手动停止)。

第四部分:关键功能解析与使用 (Q&A 汇总)

4.1 Exit Node (出口节点) 详解

Q1:开启后,我在公司的上网行为还会被监控吗?

  • 网络层监控(路由器/防火墙): 失效。公司的网管只能看到你的电脑在和一个 IP(你家 NAS)进行加密通信,看不到你访问了什么网站,也看不到内容。
  • 终端层监控(公司电脑上的软件): 依然有效。如果公司在你电脑上装了深信服、360 企业版等监控软件,它们会直接录屏或拦截进程,VPN 救不了你。
  • 建议: 只在自己的手机/iPad 连接公司 WiFi 时使用此功能,此时是绝对安全的。

Q2:对网速影响大吗?

  • 极大。这是一个“木桶效应”。
  • 速度上限 = 你家宽带的上行带宽。通常家用宽带上行只有 30Mbps (约 3-4MB/s)。
  • 这意味着你在公司下载文件的速度不会超过 3MB/s,且延迟会增加(数据要绕路回家)。

Q3:如何开启?

  1. 服务器端: 在上面的 docker-compose.yml 中添加 --advertise-exit-node 并启动。
  2. 控制台端: 登录 Tailscale 网页后台 -> Machines -> 点击 NAS -> Edit route settings -> 勾选 Use as exit node(这一步必须做,否则不生效)。
  3. 客户端(手机/电脑): 点击 Tailscale 图标 -> Exit Node -> 选择 nas-server

4.2 Subnet Router (子网路由) 详解

Q:我想远程访问家里的打印机(192.168.1.100),但打印机装不了 Tailscale 怎么办?

  1. 原理: 只要 NAS 装了 Tailscale 并开启 Subnet Router,它就充当了“网关”。你的手机发送请求给 192.168.1.100,Tailscale 会先把请求传给 NAS,NAS 再转发给打印机。
  2. 配置:TS_ROUTES 填入 192.168.1.0/24
  3. 控制台审批: 同样需要在网页后台 Edit route settings 中勾选批准该路由。

本文作者:小转圈

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!