• 简体中文
  • 使用 Tailcat 直连 Vibelet

    Tailcat 让 Vibelet 在不加入 Tailnet 的情况下,在电脑和手机之间建立端到端 WireGuard 加密链路。它是 Vibelet 的可选连接方式:不需要 Tailscale 账号、root / 管理员权限或公网入站端口,也不会修改系统 VPN、DNS 和路由表。

    Tailcat 先通过 DERP 建立会合通道,然后尝试 NAT 穿透;成功时升级为直接 P2P UDP 链路,失败时可继续使用 DERP 加密中继。因此“Tailcat 直连”表示优先尝试 P2P,不代表所有 NAT 和防火墙环境都能保证直连。

    1. 启用 Tailcat

    在运行 Vibelet daemon 的电脑上执行:

    npx vibelet --tailcat

    Vibelet 会自动完成以下操作:

    1. 安装或更新 Vibelet daemon 与内置 Tailcat sidecar。
    2. 启动 Tailcat 连接入口。
    3. 将 Tailcat 连接能力写入新的配对二维码。

    不需要另外安装 Tailcat 或 Tailscale App。

    2. 用手机重新扫码

    打开支持 Tailcat 的 Vibelet App,扫描命令打印的新二维码。旧二维码不包含 Tailcat 连接能力,启用后应至少重新扫码一次。

    Vibelet 会并行尝试配对信息中可用的连接路径,并使用最先恢复健康的一条。启用 Tailcat 不会删除 LAN、Tailscale 或 Cloudflare;它们仍可作为回退路径。

    3. 理解 127.0.0.1:39876

    如果 Vibelet App 显示当前端点为:

    127.0.0.1:39876

    这是正常现象。该地址是手机 App 内部的本地转发器,不是电脑的真实地址。本地转发器的上游才是 Tailcat 的加密 P2P 或 DERP 链路。

    4. 检查状态

    在电脑上查看 daemon 和 Tailcat sidecar 状态:

    npx vibelet status

    正常情况下,输出中的 tailcat.enabledtailcat.running 均为 true。Vibelet 会隐藏具体 Tailcat 连接 token,不会在状态输出中暴露它。

    如果启动失败,查看最近日志:

    npx vibelet logs

    5. 关闭 Tailcat

    npx vibelet --no-tailcat

    --tailcat--no-tailcat 都是持久设置。Vibelet 将开关保存在 ~/.vibelet/tailcat.json,之后的 startrestart 会自动复用。

    常见问题

    启用后还是走 Cloudflare 或局域网

    这不一定是错误。Vibelet 会竞速可用路径;在同一 Wi-Fi 中,LAN 可能比 Tailcat 更快完成健康检查。只要 Tailcat sidecar 正常运行,手机离开局域网后仍可将它作为远程候选路径。

    一直无法连接

    按以下顺序检查:

    1. 电脑和手机都能发起出站 HTTPS 连接。
    2. 防火墙或代理没有完全禁止出站 UDP;UDP 受限时可能只能经 DERP,延迟会更高。
    3. 电脑和手机使用的都是包含 Tailcat 支持的新版 Vibelet。
    4. 启用 Tailcat 后已重新扫描新二维码。
    5. npx vibelet status 显示 Tailcat 已启用且正在运行。

    需要同时安装 Tailscale 吗?

    不需要。Tailcat 使用 Tailscale 的数据平面组件,但不使用 Tailscale 控制平面,也不要求 Tailnet 账号。如果你已经在使用 Tailscale IP,它仍可以和 Tailcat 一起作为 Vibelet 候选路径。

    安全提示

    • Tailcat 传输使用端到端 WireGuard 加密。
    • 不要在公开场所分享 Vibelet 配对二维码或原始 tc... 连接 token。
    • Vibelet 会将 Tailcat 身份状态保存在本机受限权限文件中,并在状态、日志和遥测中隐藏连接 token。

    了解 Tailcat 本身的实现和限制,请查看 Tailscale Tailcat 官方仓库