手机接管远程会话
出门、开会或离开桌面时,也能继续给桌面端会话发消息、看进度、确认下一步。
出门、开会或离开桌面时,也能继续给桌面端会话发消息、看进度、确认下一步。
会话仍跑在你自己的机器上,手机只做遥控器,账号和云端工作区不是前提。
手机里的截图、相册图片可以直接发给远程会话;回复里的图片也能放大查看和保存。
在手机上浏览远程文件夹、预览支持的文件,只把真正需要的下载到本地。
默认走 Cloudflare Tunnel,也支持 ngrok 和 Tailscale;在外也能连回自己的电脑。
扫一次二维码即可连接,无需账号;只想局域网配对时再传 --access=local。
临时走开后,手机上也能恢复同一个会话,上下文还在。
远程会话需要执行敏感请求前,先在手机上看清楚再批准。
数据留在你自己的机器上;手机 App 不会下载、安装或运行会话里的可执行代码。
连接配对电脑、管理会话、与远程助手对话,全在手机上完成。





手机 App 装好后,让电脑端连接器保持运行;需要走开时,扫一次二维码就能接管。
日常用手机控制配对会话时,请安装 App Store 官方正式版。
日常用手机控制配对会话时,请下载 Android 官方正式 APK。
先启动连接器,扫码一次;之后离开电脑,也能继续推进远程会话。
离开桌面前先运行这条命令,让手机有可配对的会话入口。
npx vibelet离开电脑时用默认 tunnel;只想在本地网络里配对,或者想走自己的链路时,再切换下面的方式。
免费、无需注册。Vibelet 自动启动 Cloudflare Tunnel,并打印可远程扫码的二维码。
npx vibelet需要只走局域网时传 --access=local。传 --access=remote --force 可获取新 URL。
已经在运行 cloudflared、ngrok 或其他隧道?直接传入公网 URL 即可。
# Cloudflare(手动)
npx cloudflared tunnel --protocol http2 --url http://localhost:9876
# ngrok
ngrok http 9876
# 然后告诉 Vibelet:
npx vibelet --access=https://<your-tunnel-url>relay URL 会持久化到 ~/.vibelet/relay.json,重启后自动复用。
推荐给需要在 iPhone 上同时使用代理 VPN 和 Tailscale 的用户。使用 Stash 等能把 Tailscale 作为内部节点运行、并按规则分流 Tailnet 流量的代理软件。
npx vibelet --access=<电脑的-tailscale-ip>把 100.64.0.0/10 和 *.ts.net 指向 Tailscale 节点;不要在 Stash“跳过路由”中保留 100.64.0.0/10。
查看 Stash 示例配置把配对和 relay 场景里最常见的问题先说清楚。
当链路里用了 Cloudflare Tunnel / Argo Tunnel,一些基于规则的代理工具需要把 *.argotunnel.com 当成真实目标来解析,并且不要再套一层代理。
在 Loon 这类配置里,通常就是把 *.argotunnel.com 放进 real-ip 和 skip-proxy。目的很直接:让 tunnel 域名按正常方式解析,并且直接连接,不再经过额外的代理链。
比如在 Loon 里,遇到开了代理后无法联通,可以先在 `[General]` 里补这两行: `real-ip = *.argotunnel.com` `skip-proxy = *.argotunnel.com`
如果你当前网络本身不能直连 *.argotunnel.com,就不要继续把它放在 skip-proxy 里;应该给它指定一个稳定的代理策略,或者改用自定义 relay / Tailscale。
这通常说明手机根本没有连到二维码里的那个 host,在 Vibelet 收到任何 HTTP 响应之前,请求就已经失败了。
常见原因包括:手机和电脑不在同一个可达网络、二维码里是手机无法解析的局域网地址或 `.local` 地址、iPhone 的本地网络权限没开,或者代理工具错误接管了 tunnel / relay 域名。
如果你走的是远程 tunnel,先确认 relay 域名本身可达;如果你走的是局域网配对,可以直接尝试电脑的局域网 IP,或者用正确的 --access host 列表重新启动 Vibelet。
配对二维码本来就是短时有效、且只能消费一次的。这能让配对流程保持简单,同时避免一直留着一个可重复使用的开放配对窗口。
如果过期了,直接在电脑上重新运行 `npx vibelet`,再扫新的二维码即可。如果这台手机之前已经配对过,也可以先尝试从已保存的设备条目直接重连。
当手机和电脑已经在同一个局域网里,而且你这次不想让 Vibelet 使用默认远程 tunnel 时,用 `npx vibelet --access=local`。
如果你希望二维码默认就是可远程连接的,直接用 `npx vibelet` 更合适。尤其是在你不确定手机是否会一直留在同一局域网时,这通常是更稳的默认值。
自定义 relay 是指你已经有一个公网 tunnel URL,比如 Cloudflare Tunnel 或 ngrok,然后通过 `--access=https://...` 交给 Vibelet 使用。
Tailscale 不一样:Vibelet 里并没有公网 relay URL,而是通过 `--access=<tailscale-ip>` 告诉它机器的 Tailscale IP,同时手机也必须加入同一个 tailnet。
iOS 同一时间只能启用一个系统 VPN 通道,因此两个独立 VPN App 不能同时接管网络。应该使用 Stash 等能把 Tailscale 作为内部可路由节点、与代理共用同一个通道的软件。
这类软件必须同时支持“内置 Tailscale 节点”和“按规则分流”,仅能识别 Tailscale 协议并不够。Stash 把这项能力提供为 `type: tailscale` 节点,因此指南使用 Stash 作为具体示例。
把 `100.64.0.0/10` 和 `*.ts.net` 指向这个节点,普通互联网流量继续使用原来的 Stash 策略组。这样 Vibelet 可以走电脑的 Tailscale IP,同时代理 VPN 不会中断。
不要把 `100.64.0.0/10` 放进 Stash 的“跳过路由”。被跳过的流量不会进入 Tailscale 节点,Vibelet health 检查会直接超时。
完整配置和认证步骤请查看 Stash 示例指南;其他兼容软件需要换成各自的配置语法。