本文基于 Tailscale 官方文档与社区(GitHub、Reddit、知乎及中文博客)的实践,梳理家庭多设备(iPhone/iPad、家中 M1 Mac mini、海外 VPS)组网时,如何配置出口节点访问海外 GPT、子网路由打通家庭内网,以及网络与文件共享,并说明连接原理与可选加速手段。

目录

  1. 场景与目标
  2. Tailscale 核心概念速览
  3. 网络与连接原理
  4. 角色与拓扑
  5. GPT 访问与「动态规则」路由
  6. 配置步骤:出口、子网、节点与加速
  7. 网络共享与文件共享
  8. 社区与官方参考
  9. 小结与检查清单

一、场景与目标

典型家庭场景:

  • 终端:多台 iPhone、iPad,可能还有笔记本/台式机。
  • 家中常开设备:M1 Mac mini 作为 homeserver(跑服务、存储或开发)。
  • 云端:一台海外 VPS(如腾讯云轻量服务器硅谷节点),希望作为访问海外 API(如 GPT)的出口。

需求可归纳为:

  1. 访问海外 GPT:在不改变全家上网方式的前提下,让指定设备(或指定流量)经 VPS 出网,以使用 OpenAI API 等需海外 IP 的服务。
  2. 设备与家–云互通:iPhone/iPad 在外或在家,都能通过同一套网络访问家中 Mac mini 及家庭内网设备(NAS、打印机等)。
  3. 文件共享:多设备之间、设备与 homeserver/VPS 之间,能方便地传文件(如 Taildrop),且可经子网路由访问家中 NAS。

Tailscale 基于 WireGuard,提供虚拟组网(tailnet)、出口节点(Exit Node)、子网路由(Subnet Router)与 DERP 中继,可覆盖上述需求;下文按「概念 → 原理 → 配置 → 共享 → 参考」展开。


二、Tailscale 核心概念速览

概念 含义 在本场景中的对应
Tailnet 你的 Tailscale 私有网络,所有已认证设备组成一个逻辑网 同一账号/组织下的 iPhone、iPad、Mac mini、VPS
Exit Node 将「所有非 Tailscale 流量」从该设备出网,相当于 VPN 出口 VPS(硅谷)作为出口,手机/平板选它时外网流量经 VPS
Subnet Router 将 tailnet 与某物理子网桥接,使 tailnet 内设备能访问该子网 Mac mini 广播家庭 LAN(如 192.168.1.0/24)
DERP Designated Encrypted Relay Proxy,中继服务器,用于协商与兜底转发 官方 DERP 或自建(国内加速时)
Peer Relay 通过 tailnet 内另一台设备中继,替代 DERP 以降低延迟 Mac mini 可作 peer relay,加速 iPhone–VPS 间隧道

连接类型(两设备间):

  • Direct:直连 UDP,延迟最低、带宽最好。
  • Peer relay:经 tailnet 内第三台设备中继,通常比 DERP 快。
  • DERP relay:经 Tailscale/自建 DERP 中继,兜底保证连通。

三、网络与连接原理

3.1 连接建立顺序

任意两台 tailnet 设备建立通信时,先通过 DERP 交换信息,再尝试 NAT 穿透;若直连失败则尝试 peer relay,最后才长期走 DERP。下图为简化序列。

sequenceDiagram
    participant DeviceA as Device A
    participant DERP as DERP Server
    participant DeviceB as Device B

    DeviceA->>DERP: connect
    DeviceB->>DERP: connect
    DeviceA->>DERP: request B direct info
    DERP->>DeviceB: forward request
    DeviceB->>DERP: send direct info
    DERP->>DeviceA: send B direct info
    Note over DeviceA,DeviceB: NAT traversal attempt
    alt direct success
        DeviceA->>DeviceB: direct UDP tunnel
    else try peer relay
        DeviceA->>DeviceB: via peer relay
    else keep DERP
        DeviceA->>DERP: relay to B
        DERP->>DeviceB: relay from A
    end

因此:DERP 质量主要影响「建立连接」与「无法直连时的带宽」。国内环境常见 UDP 受限或对称 NAT,容易长期走 DERP;自建国内 DERP 或开启 Peer Relay(如 Mac mini)可改善体验。

3.2 流量路径:访问 GPT vs 访问家庭内网

出口节点只影响「发往公网的流量」;访问 tailnet 或子网路由的流量不会从出口节点出网。

flowchart LR
    subgraph tailnet [Tailnet]
        iPhone[iPhone]
        MacMini["Mac mini\nsubnet router"]
        VPS[VPS exit node]
    end

    subgraph home [Home LAN]
        NAS[NAS]
    end

    OpenAI[OpenAI API]

    iPhone -->|"Tailscale tunnel"| VPS
    VPS -->|"egress"| OpenAI
    iPhone -->|"Tailscale tunnel"| MacMini
    MacMini -->|"subnet route"| NAS
  • 访问 GPT:iPhone 选择 VPS 为 Exit Node 时,访问公网(如 api.openai.com)的流量路径为:iPhone → Tailscale 隧道 → VPS → 公网 → OpenAI。
  • 访问家庭 NAS:iPhone 经 Mac mini 子网路由访问 192.168.x.x:iPhone → Tailscale 隧道 → Mac mini → 家庭 LAN → NAS。不经过 VPS,也不占用出口节点带宽。
  • Taildrop 传文件:设备间点对点(经 direct 或 relay),不经过 Exit Node 的互联网出口。

四、角色与拓扑

设备 角色 说明
iPhone / iPad 普通节点,可选使用 Exit Node 安装 Tailscale,需要访问 GPT 时在客户端选 VPS 为出口;子网路由自动生效后可访问 192.168.x.x
M1 Mac mini(家) 子网路由,可选 Peer Relay 安装 Tailscale,--advertise-routes=192.168.x.0/24;可开启 Peer Relay 供 iPhone–VPS 中继
VPS(海外) 出口节点 安装 Tailscale,开启 IP 转发并 --advertise-exit-node,Admin 批准后即可被选为出口

出口/家庭内网/子网/加速对应关系:

需求 对应能力 配置要点
出口(访问 GPT) Exit Node VPS 广播 exit node,Admin 批准,客户端选「Use Exit Node」
家庭内网(访问 NAS/HomeServer) Subnet Router Mac mini 广播家庭网段,Admin 批准子网路由
节点 每台设备即节点 同一 tailnet 即可
加速 Direct / Peer Relay / 自建 DERP 路由器为 Mac mini 开 UDP 41641;或自建 DERP/Headscale;或开启 Peer Relay

五、GPT 访问与「动态规则」路由

Tailscale 的 ACL/Via 是按 IP 段与策略(tag/group)做路由与访问控制,不提供按域名的智能分流(例如「仅 api.openai.com 走 VPS」)。因此所谓「动态规则路由」在 Tailscale 内只能做到「谁/哪类设备经哪个出口访问互联网」,不能精确到「仅 GPT 流量走 VPS」。

三种常见做法:

方案 做法 优点 缺点
A. 全流量走 VPS 需要访问 GPT 时,在 iPhone/iPad 上选「Use Exit Node」→ VPS 配置简单,无需改 ACL 该设备全部外网流量经 VPS,延迟/带宽取决于 VPS
B. Via 强制某组经 VPS 在 ACL 中用 Via 将某 tag/group 的 autogroup:internet 强制经 VPS 出口 策略集中、适合多设备统一策略 仍是「该设备全部外网走 VPS」,不是按域名
C. VPS 上跑 GPT 专用代理 VPS 上部署只转发 api.openai.com(及相关域名)的 HTTP(S)/SOCKS 代理,GPT 客户端配置该代理 只有 GPT 流量经 VPS,其余直连 需在应用层配置代理,并维护代理服务

推荐:多数家庭用户用 方案 A 即可(需要时打开 Exit Node,用完关);若希望「仅 GPT 走代理、其他直连」则用 方案 C(在 VPS 上跑仅转发 api.openai.com 的代理,客户端填代理地址;具体实现可搜索「OpenAI API proxy」等)。


六、配置步骤:出口、子网、节点与加速

假设所有设备已安装 Tailscale 并登录同一 tailnet(同一账号或同一组织)。

6.1 VPS 作为出口节点

  1. 在 VPS(如 Ubuntu)上安装 Tailscale:curl -fsSL https://tailscale.com/install.sh | sh,然后 sudo tailscale up 完成登录。
  2. 开启 IP 转发(出口节点必须):
    echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
    echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
    sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
    
  3. 广播为出口节点:sudo tailscale up --advertise-exit-node
  4. 在 Admin 控制台:Machines → 找到该 VPS → 菜单 → Edit route settings → 勾选 Use as exit node

6.2 Mac mini 作为子网路由

  1. 在 Mac mini 上安装并登录 Tailscale。
  2. 确认家庭内网网段(如 192.168.1.0/24),执行:
    sudo tailscale up --advertise-routes=192.168.1.0/24
    

    若有多段可写:--advertise-routes=192.168.1.0/24,10.0.0.0/24

  3. 在 Admin 控制台:Machines → 找到 Mac mini → Edit route settings → 启用对应子网路由。

6.3 客户端使用出口与子网

  • iPhone/iPad:打开 Tailscale 应用 → 设置中「Use Exit Node」选择你的 VPS(需要访问 GPT 时);不选则不走出口。子网路由批准后,可直接访问 192.168.x.x(如 NAS 的 IP)。
  • Mac/PC:同样在 Tailscale 客户端中选择 Exit Node;访问家庭内网用 192.168.x.x 或家中 hostname。

6.4 可选加速

  • UDP 41641:在家庭路由器上为 Mac mini 做端口映射或开放 UDP 41641,便于外网设备与 Mac mini 建立 direct 连接。
  • Peer Relay:在 Admin 或设备策略中允许 Mac mini 作为 peer relay,这样 iPhone–VPS 若无法直连,可经 Mac mini 中继,通常比走海外 DERP 快。
  • 自建 DERP / Headscale:国内用户若连官方 DERP 慢,可自建 DERP 或使用 Headscale + 自建 DERP,在客户端或 Headscale 配置中使用自建 DERP 节点;进阶可参考文末链接。

七、网络共享与文件共享

7.1 通过子网路由访问家庭内网

子网路由批准后,tailnet 内任意设备可直接用家庭内网 IP 或 hostname 访问 NAS、打印机等,例如:

  • 在 iPhone 文件 App 或支持 SMB 的 App 中填 smb://192.168.1.100(NAS 的局域网 IP)。
  • 浏览器访问 http://192.168.1.x:8080 等家中服务。

无需在 NAS 上安装 Tailscale;Mac mini 作为网关做 SNAT,对家庭内网设备透明。

7.2 Taildrop 文件共享

  • 在 Admin 控制台:Settings → General 中启用 Send Files
  • 发送方:在 iOS 分享菜单或 macOS 右键选择「Send with Tailscale」/「通过 Tailscale 发送」,选择目标设备。
  • 接收方:文件会进入该设备的下载目录;两端需在线且在同一 tailnet,传输为点对点加密,不经过出口节点。

八、社区与官方参考

官方文档

Reddit r/Tailscale(真实用户讨论)

GitHub tailscale/tailscale(DERP 与性能)

中文博客(出口节点 / 子网 / 进阶)

自建 DERP / Headscale


九、小结与检查清单

项目 检查项
出口节点 VPS 已安装 Tailscale、开启 IP 转发、--advertise-exit-node;Admin 已批准「Use as exit node」;客户端可选到该出口
子网路由 Mac mini 已 --advertise-routes=192.168.x.0/24;Admin 已批准对应子网;客户端能 ping/访问 192.168.x.x
文件共享 Admin 已启用 Send Files;各端可用 Taildrop 互发文件;访问 NAS 用 192.168.x.x 或 hostname
加速(可选) 路由器为 Mac mini 开放 UDP 41641;或启用 Peer Relay;或自建 DERP/Headscale 并配置客户端

按上述顺序配置,即可实现:多台 iPhone/iPad 与家中 Mac mini、海外 VPS 同处一个 tailnet,需要时经 VPS 出口访问 GPT,随时经子网路由访问家庭内网与 Taildrop 传文件;若遇延迟或带宽不足,再按需做 UDP 41641、Peer Relay 或自建 DERP 等加速。