使用 Tailcat 直连 Vibelet
Tailcat 让 Vibelet 在不加入 Tailnet 的情况下,在电脑和手机之间建立端到端 WireGuard 加密链路。它是 Vibelet 的可选连接方式:不需要 Tailscale 账号、root / 管理员权限或公网入站端口,也不会修改系统 VPN、DNS 和路由表。
Tailcat 先通过 DERP 建立会合通道,然后尝试 NAT 穿透;成功时升级为直接 P2P UDP 链路,失败时可继续使用 DERP 加密中继。因此“Tailcat 直连”表示优先尝试 P2P,不代表所有 NAT 和防火墙环境都能保证直连。
1. 启用 Tailcat
在运行 Vibelet daemon 的电脑上执行:
Vibelet 会自动完成以下操作:
- 安装或更新 Vibelet daemon 与内置 Tailcat sidecar。
- 启动 Tailcat 连接入口。
- 将 Tailcat 连接能力写入新的配对二维码。
不需要另外安装 Tailcat 或 Tailscale App。
2. 用手机重新扫码
打开支持 Tailcat 的 Vibelet App,扫描命令打印的新二维码。旧二维码不包含 Tailcat 连接能力,启用后应至少重新扫码一次。
Vibelet 会并行尝试配对信息中可用的连接路径,并使用最先恢复健康的一条。启用 Tailcat 不会删除 LAN、Tailscale 或 Cloudflare;它们仍可作为回退路径。
3. 理解 127.0.0.1:39876
如果 Vibelet App 显示当前端点为:
这是正常现象。该地址是手机 App 内部的本地转发器,不是电脑的真实地址。本地转发器的上游才是 Tailcat 的加密 P2P 或 DERP 链路。
4. 检查状态
在电脑上查看 daemon 和 Tailcat sidecar 状态:
正常情况下,输出中的 tailcat.enabled 和 tailcat.running 均为 true。Vibelet 会隐藏具体 Tailcat 连接 token,不会在状态输出中暴露它。
如果启动失败,查看最近日志:
5. 关闭 Tailcat
--tailcat 和 --no-tailcat 都是持久设置。Vibelet 将开关保存在 ~/.vibelet/tailcat.json,之后的 start 和 restart 会自动复用。
常见问题
启用后还是走 Cloudflare 或局域网
这不一定是错误。Vibelet 会竞速可用路径;在同一 Wi-Fi 中,LAN 可能比 Tailcat 更快完成健康检查。只要 Tailcat sidecar 正常运行,手机离开局域网后仍可将它作为远程候选路径。
一直无法连接
按以下顺序检查:
- 电脑和手机都能发起出站 HTTPS 连接。
- 防火墙或代理没有完全禁止出站 UDP;UDP 受限时可能只能经 DERP,延迟会更高。
- 电脑和手机使用的都是包含 Tailcat 支持的新版 Vibelet。
- 启用 Tailcat 后已重新扫描新二维码。
npx vibelet status显示 Tailcat 已启用且正在运行。
需要同时安装 Tailscale 吗?
不需要。Tailcat 使用 Tailscale 的数据平面组件,但不使用 Tailscale 控制平面,也不要求 Tailnet 账号。如果你已经在使用 Tailscale IP,它仍可以和 Tailcat 一起作为 Vibelet 候选路径。
安全提示
- Tailcat 传输使用端到端 WireGuard 加密。
- 不要在公开场所分享 Vibelet 配对二维码或原始
tc...连接 token。 - Vibelet 会将 Tailcat 身份状态保存在本机受限权限文件中,并在状态、日志和遥测中隐藏连接 token。
了解 Tailcat 本身的实现和限制,请查看 Tailscale Tailcat 官方仓库。