BOTBUS / 博客

Claude Code Remote Control 老断开、Codex 手机等待桌面端:原因与排查

官方远程掉线、配对卡住,多半出在电脑睡眠、进程退出、代理和登录上。这篇按官方文档与 GitHub issue 逐条列原因和缓解办法,并说明什么时候值得换一种架构。

先说结论

Claude Code 的 Remote Control 和 ChatGPT 手机 app 里的 Codex 远程,都是“手机 → 厂商服务器 → 你电脑上的进程”这样一条链,掉线和连不上几乎都出在电脑这一端:电脑睡了、进程被关了、代理挡住了出站连接,或者登录方式、账号策略不满足要求。大多数情况照着下面的清单能自己修好;如果你的电脑经常睡眠、网络常要走代理,或者你用的是官方远程不支持的登录方式,那就值得考虑换一种不依赖某个终端窗口的做法。

下文关于两家官方方案的内容,是我们在 2026 年 10 月 31 日对照 Claude Code 官方文档、ChatGPT 帮助文档和两家 GitHub 仓库的公开 issue 核对的。两边改得都很快,以官方最新文档为准。

先弄清是哪一段断了

不管哪家,远程都有三段:手机到服务器、服务器到电脑、电脑上的 agent 进程本身。手机上显示“已断开”,并不说明电脑上的任务停了。Claude Code 文档也专门提醒:网页或桌面 app 上的 “Remote Control disconnected” 和 “Can't reach” 只说明这一端和电脑失去联系,并不告诉你 Claude 或子 agent 还在不在干活。

所以排查第一步永远是回到电脑上看一眼:进程还在不在、终端里有没有报错、电脑是不是睡过。在电脑旁边不方便时,至少先看电脑有没有在线,而不是在手机上反复重进。

Claude Code Remote Control 断开的常见原因

1. 进程没了

Remote Control 是本机进程的一扇窗。官方文档写明:关掉终端、退出跑着会话的桌面 app 或 VS Code,或者 claude 进程以别的方式停了,会话就下线,直到你把它接回来。在远程服务器上用 SSH 跑 claude 的,文档建议放进 tmux 或 screen,否则 SSH 一断进程就跟着走。

接回的办法:用 claude --continue 或 claude --resume 恢复那段对话,Claude Code 会尝试重连原来的 Remote Control 会话;如果提示 “Couldn't reconnect to your Remote Control session”,在会话里运行 /remote-control 重试,或者用 claude --remote-control 开一个新的远程会话。

2. 电脑睡眠或网络断了

文档说电脑睡眠或网络断开后,机器恢复在线时会自动重连。但两种模式在“醒着却连不上网”时表现不同:

所以网络不稳、常换 Wi‑Fi 的话,交互会话比服务器模式更扛得住。另外两种文档里写到的情况:断开原因是 could not reach the Remote Control server for about 30 minutes 时,手动运行 /remote-control 重连;接上 VPN 或换网络后,中间设备回 HTTP 403 时 Claude Code 会重试最多三分钟,超过就断开,断开原因会说明是网络边缘还是你自己网络上的代理、VPN、防火墙拒绝的。

电脑会不会睡是另一个话题,我们在让 Mac 别睡的几种办法里单独讲过。

3. 登录方式或账号策略不满足

这类问题表现为“根本连不上”而不是“连上又掉”。文档列出的典型提示:

文档建议运行 claude doctor 看具体是哪一项检查没过。如果你本来就用 API key 或中转站,这一类不是“修”的问题,而是官方远程不覆盖你,可以看用 API key 或中转站跑 Claude Code 怎么在手机上管。

4. 公开 issue 里还没解决的

截至核对日期,anthropics/claude-code 仓库里还开着这样的报告:#95001,某台设备的登录令牌缺少新加的权限范围,重新登录后,之前已经建好的会话也一直停在 “Disconnected”,界面上没有重连按钮。遇到“所有会话都显示断开、电脑上明明在跑”的情况,可以先退出重新登录,再在电脑上的会话里运行 /remote-control;还不行就开一个新的远程会话。

Codex 手机一直“等待桌面端”

先注意入口变了:早期教程让你在单独的 Codex 桌面 app 里设置,现在官方帮助文档写的是在 macOS 或 Windows 上的 ChatGPT 桌面 app 里开(设置 › 连接 › 控制这台 Mac 或电脑),照旧教程找不到入口很正常。文档还写明:只能从桌面 app 设置,Codex CLI 和 IDE 扩展不行;每部手机要和每台电脑分别配对;电脑睡眠、断网或关掉 app,远程就停,直到它恢复。

按官方文档和 openai/codex 的公开 issue,排查顺序可以这样走:

  1. 先确认账号和工作区一致。 电脑和手机必须是同一个账号、同一个工作区,桌面 app 在运行、“允许其他设备连接”是开着的。工作区用户还要请管理员确认开了远程访问。
  2. 检查多因素认证。 issue #27167 里,手机一直停在“等待电脑响应”,本机日志里却有服务器明确返回的 Multi-factor authentication required。账号没开 MFA 时,先去 ChatGPT 安全设置打开,再重试。
  3. 检查代理。 issue #22851(仍开着)记录了一个典型情况:电脑必须走本地代理上网,后台负责远程的进程没用上代理,连不到 OpenAI 的服务器,桌面上照样显示二维码,看起来像配对问题。用代理或防火墙的,确认这个进程能访问 chatgpt.com。
  4. 重新配对。 文档说 2026 年 6 月 8 日之后用过的连接会保持配对,之前的要把两边 app 都升级后重新配对。手机上先退出“等待”页面,在电脑上生成新二维码再扫。
  5. 别让两个进程抢。 桌面 app 开着时又单独跑一个 codex remote-control,有用户在日志里看到 409 Remote app server already online,二者保留一个即可。
  6. 还不行就重启桌面 app、看日志。 文档对“开启后点添加报错”的建议就是重启桌面 app 再试。Windows 电脑配 Android 手机一直等待的报告(#22733)截至核对日期也还开着。

连上之后又频繁断开的,文档给的检查项只有三个:电脑睡了没有、网络断了没有、app 关了没有。它的设置里有“保持这台 Mac 唤醒”的选项,说明是接电源且开着远程访问时防止睡眠;文档也提醒,主动选择“睡眠”照样会断,合盖的 Mac 还需要接外接显示器。

什么时候该换一种做法

上面的清单能解决大部分问题。但如果你反复遇到下面几种情况,问题就不在某个设置,而在架构:

免费的替代也一直都在:tmux 加 SSH 和 Tailscale 这类组网工具,会话常驻在 tmux 里,断了重连就能接上,什么 agent 都适用,缺点是在手机上操作终端很累,也没有审批按钮和推送。

BotBus 在掉线这件事上有什么不同

BotBus 是常驻在电脑上的程序(Mac 上是菜单栏应用,Linux 与 Windows 上是后台程序),把本机 Codex、Claude Code 等 agent 的任务同步到 iPhone、Apple Watch 和 Android 手机。在“断线”这件事上,它的做法和官方远程有几处具体差别:

内容在设备上端到端加密后才离开,中转服务器只见密文,但看得到设备编号、在线状态、更新时间和数据大小,开发预览不在端到端加密范围内,细节见安全说明。

限制与边界

BotBus 解决的是“会话挂在哪、断了谁来接回”,解决不了物理上的离线:

如果你只用 Claude Code、有订阅、电脑基本不睡,官方 Remote Control 修好之后仍是最省事的选择;Codex 用户同理。两者和 BotBus 也可以同时开,互不影响。想试的话,可以在首页下载区下载电脑端与手机端。

常见问题

Remote Control 显示断开,电脑上的任务还在跑吗?

不一定停了。官方文档明确说,断开提示只代表网页或手机和电脑失去联系,不能说明 Claude 是否还在工作。回电脑上看进程和终端输出才准。

用 claude remote-control 还是 claude --remote-control 更稳?

网络不稳时交互会话更稳:它在断网期间一直重试,网络回来自动接上;服务器模式断网约 10 分钟就退出,要重新启动。

Codex 手机一直“等待桌面端”,最该先查什么?

先查同一账号和工作区、多因素认证有没有开,再查代理和防火墙是否放行 chatgpt.com,然后在电脑上生成新二维码重新扫。桌面 app 没有显示错误时,本机日志里往往有服务器返回的真实原因。

BotBus 断线后要重新扫码吗?

不用。网络断开、电脑重启后 BotBus 自己重连,配对关系保留;只有在电脑上解除配对、或在电脑端把这部手机移除后才需要重新扫码。

电脑合盖后 BotBus 能接着管 agent 吗?

不能。合盖默认会睡,BotBus 和 agent 都会停,手机上只能看到电脑离线前的任务列表。要让 agent 继续跑,需要先让电脑保持唤醒。

← 全部文章