• 简体中文
  • 使用内置 Tailscale 的代理软件连接 Vibelet

    如果你需要在 iPhone 上保持代理 VPN,同时通过 Tailscale IP 连接家里或办公室电脑上的 Vibelet,推荐使用 Stash 等支持内置 Tailscale 节点的代理软件。

    这类软件必须同时具备两项能力:

    • 把 Tailscale 作为代理软件内部的可路由节点运行。
    • 能通过规则把 Tailnet 流量交给该节点,普通流量继续使用原代理策略。

    这样只需启用一个系统 VPN 通道,不需要同时开启独立的 Tailscale App。仅能识别 Tailscale 协议、但不能把它作为节点分流的软件不适用。

    下面以 Stash 为例。Stash 官方文档说明,Tailscale 可以作为 type: tailscale 代理加入配置,并通过规则承载指定流量:查看 Stash Tailscale 文档。其他兼容软件需要使用各自的节点与规则语法,不能直接照搬本文 YAML。

    1. 在电脑上启动 Vibelet

    先确认电脑已经加入你的 Tailnet,然后找到电脑的 Tailscale IPv4 地址,例如 100.x.y.z

    npx vibelet --access=<电脑的-tailscale-ip>

    Vibelet 默认监听端口是 9876。可以先在同一 Tailnet 的另一台设备上检查:

    http://<电脑的-tailscale-ip>:9876/health

    2. 在 Stash 中加入 Tailscale 节点

    把下面的节点加入现有 Stash 配置。hostname 只能使用小写字母、数字和 -

    proxies:
      - name: Tailnet
        type: tailscale
        hostname: vibelet-iphone
        ephemeral: false
        benchmark-url: http://<电脑的-tailscale-ip>:9876/health
        benchmark-timeout: 10

    这里没有填写 auth-key,可以避免把密钥写进可能同步或分享的配置文件。

    保存并载入配置后,在 Stash 的代理列表中找到 Tailnet 节点,打开节点菜单,进入“Tailscale 认证”,按提示登录并授权这台 Stash 设备。

    3. 把 Tailnet 流量交给该节点

    把下面的规则放在广泛代理规则和 MATCH / FINAL 规则之前:

    rules:
      - DOMAIN-SUFFIX,ts.net,Tailnet
      - IP-CIDR,100.64.0.0/10,Tailnet,no-resolve
      - IP-CIDR6,fd7a:115c:a1e0::/48,Tailnet,no-resolve

    如果你只想开放一台 Vibelet 电脑,也可以把第一条收窄为它的完整 MagicDNS 名称:

    - DOMAIN,<电脑主机名>.<tailnet-name>.ts.net,Tailnet

    这些规则只接管 Tailnet 流量。你现有的地区节点、自动选择、广告拦截和其他代理策略可以保持不变。

    4. 检查“跳过路由”

    打开 Stash 的“跳过路由”设置或对应覆写,确认其中没有

    100.64.0.0/10

    这一点很重要:如果跳过该网段,访问电脑 Tailscale IP 的请求不会进入 Stash TUN,也就无法命中 Tailnet 节点,最终表现通常是节点能认证、但 Vibelet /health 一直超时。

    5. 验证

    按下面的顺序检查,可以快速判断问题在哪一层:

    1. Stash 的 Tailnet 节点已完成认证,并能显示延迟。
    2. Safari 可以打开 http://<电脑的-tailscale-ip>:9876/health
    3. Vibelet 保存的设备地址是电脑的 Tailscale IP 或 MagicDNS 名称,而不是 Cloudflare 地址。
    4. Stash 的活动连接中,该请求命中 Tailnet 节点。
    5. 普通网站仍命中原有代理策略,说明代理 VPN 与 Tailscale 已同时生效。

    如果节点有延迟但 /health 超时,优先检查“跳过路由”和规则顺序,而不是反复重新认证 Tailscale。