Tailscale 解决什么问题

所有安装了 Tailscale 的设备——手机、电脑、NAS、树莓派——自动组成一个虚拟局域网,互相通过 100.x.x.x 内网 IP 直接访问。不需要公网 IP,不需要端口转发,不需要碰路由器配置。对独立开发者来说,这意味着你可以在咖啡馆直接连家里的开发机、访问 NAS 上的项目备份、或者远程调试跑在树莓派上的服务。

底层用的是 WireGuard,目前最快最安全的 VPN 协议。Tailscale 把复杂的密钥交换和 NAT 穿透全部封装好了,用户层面就是装个客户端、登录、完事。

安装与首次连接

访问 Tailscale 官网注册账号,支持 Google、GitHub、Microsoft 账号直接登录。

各平台安装:

  • Windows:下载安装包,双击装完,托盘图标点 Log in 授权
  • macOS:Mac App Store 搜 Tailscale 直接装
  • Linux(以 Ubuntu 为例)
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

运行后会给一个授权链接,浏览器打开确认即可。

  • iOS / Android:应用商店搜 Tailscale 下载登录
  • NAS / 路由器:群晖、威联通、OpenWrt、梅林固件都有对应安装方式

第一台设备装好登录后自动分配 100.x.x.x 地址,第二台装好登录,两台直接互通。Windows 下文件管理器输入 \\100.x.x.x,Mac 下输入 smb://100.x.x.x,就能访问共享文件。

实际用法

远程桌面:Windows 按 Win+R 输入 mstsc,填 Tailscale IP 直连。所有流量端到端加密,不需要配端口转发。

访问家里 NAS:装了 Tailscale 的 NAS 在外网也能像局域网一样访问,速度通常比传统 VPN 方案快。

开发测试环境:公司电脑写代码,通过 Tailscale 直接访问家里机器上的测试环境。树莓派上跑的服务也随时可达。

手机接入:手机装好 Tailscale 后可以直接访问家里电脑文件,配合 RDP 或 VNC 客户端还能远程操作桌面。

DERP 中继:国内用户绕不开的问题

Tailscale 会尽量让设备直连(P2P),但遇到对称 NAT 或严格防火墙时,就得走 DERP(Designated Encrypted Relay for Packets)中继服务器转发。官方的 DERP 节点全在海外,国内访问要么慢要么连不上。

解决方案:用国内公开的 DERP 节点。GitHub 上有个工具 fofa-derp-scanner(作者 wlzh),可以自动从 FOFA 搜索引擎抓取可用的国内 DERP 节点并测试质量。

用 fofa-derp-scanner 找最优节点

准备工作:一个 FOFA 账号(免费注册)、Python 3、Docker。

第一步:在 FOFA 上搜节点

登录 FOFA,搜索框输入:

body="Tailscale" && body="DERP server" && country="CN"

这会列出国内所有公开的 DERP 服务器。点"导出",选 JSON 格式,保存为 fofa_assets.json

第二步:克隆工具并转换格式

git clone https://github.com/wlzh/fofa-derp-scanner.git
cd fofa-derp-scanner
python3 scripts/convert_assets.py --input /path/to/fofa_assets.json --output config/derp.json --start 900

脚本会把 FOFA 数据转成测试工具需要的格式,每个节点分配一个从 900 开始的 ID。

第三步:测试节点可用性

docker-compose up -d

启动测试容器,自动跑连接测试。等几分钟,浏览器打开 http://localhost:8030/,进入 success 页面查看通过测试的节点。

用浏览器插件 SingleFile 把 success 页面保存为 success_report.html

第四步:提取成功节点

python3 scripts/extract_success.py \
  --html /path/to/success_report.html \
  --json config/derp.json \
  --output config/derp-success-prober.json \
  --start 900 \
  --end 999

第五步:写入 Tailscale 配置

打开 Tailscale ACL 配置页面,在配置文件中添加 derpMap 字段:

{
  "derpMap": {
    "OmitDefaultRegions": false,
    "Regions": {
      // 把 derp-success-prober.json 里的 Regions 内容粘贴到这里
    }
  }
}

这里有个坑:OmitDefaultRegions 建议先设 false,保留官方节点做兜底。确认自定义节点稳定后再考虑设 true。保存后所有设备几秒内自动刷新配置。

验证连接状态

tailscale status

会显示所有设备及连接方式——direct(直连)或 relay(中继)。

Windows 下查看当前连接的 DERP 节点 IP:

(Get-NetTCPConnection -OwningProcess (Get-Process tailscaled | Select-Object -Last 1).Id -State Established).RemoteAddress

发现某个节点不稳定,回 ACL 配置删掉对应条目,Tailscale 自动切换。公开节点会变化,建议定期重新跑一遍扫描更新列表。

几个进阶玩法

Exit Node(出口节点):让手机或笔记本的全部流量走家里电脑出去,等于随身带着家里的网络环境。

sudo tailscale up --advertise-exit-node

在管理后台启用后,其他设备选择 Use Exit Node 即可。

子网路由:让 Tailscale 网络中的设备访问家里局域网的其他设备(打印机、智能家居等)。

sudo tailscale up --advertise-routes=192.168.1.0/24

管理后台批准这条路由,所有 Tailscale 设备就能直接访问 192.168.1.x 网段。

MagicDNS:启用后不用记 IP,直接用设备名访问,比如 ping my-desktop。在管理后台 DNS 设置里一键开启。

常见问题

公开 DERP 节点安全吗? 相对安全。Tailscale 用端到端加密,中继服务器只能看到加密数据包,无法解密。但如果传输特别敏感的数据,建议自建私有 DERP。

公司网络能用吗? 大多数情况可以,Tailscale 设计时就考虑了严格网络环境。但请遵守公司网络政策。

手机耗电吗? 待机几乎无感,只有实际传输数据时才有明显功耗。

整套方案完全免费,一次配好长期使用。对独立开发者来说,这可能是成本最低的多设备互通方案——花十分钟配置,省掉后面无数折腾远程访问的时间。