先说结论

这次的问题不是手机配对失败,也不是 Codex 更新后账号失效,而是电脑端 Codex 无法正常连接 ChatGPT 的远程控制服务。

我在电脑端日志里看到,设备其实已经完成了登记,日志中有 has_enrollment=true。真正失败的是连接下面这个地址时超时或被拒绝:

Text
wss://chatgpt.com/backend-api/wham/remote/control/server

后来打开 VPN 的 TUN 模式后恢复正常,说明问题出在网络路径上。TUN 模式会接管电脑的大部分网络流量,Codex 这样的桌面软件也会走 VPN,因此 WebSocket 连接能够建立。

简单说:手机和电脑本身没坏,Codex 也已经配对过,之前只是电脑端没有一条能连到远程服务的网络线路。

你看到的提示是什么意思

提示:

无法启用远程控制。请重试。

这个提示比较笼统,通常有几种可能:

  1. Codex 没有登录,或者登录状态过期。
  2. 电脑和手机登录的不是同一个账号或工作区。
  3. 电脑无法连接 ChatGPT 的远程控制服务器。
  4. VPN 只代理了浏览器,没有代理 Codex 桌面程序。
  5. VPN 虽然打开了,但规则仍然把 chatgpt.com 直连了。

这次属于第 3、4 类。

我是怎么判断的

1. 先排除账号和配对问题

电脑端已经出现过设备登记信息,日志里有:

Text
has_enrollment=true

这表示远程控制的登记信息还在,不需要反复删除设备、重新安装 Codex 或清空账号数据。

本机登录状态也没有过期,所以没有把问题归到账号上。

2. 再看连接失败的类型

日志里出现了两类错误:

Text
os error 10060

表示连接等待太久,最后超时。

Text
os error 10061

表示目标连接被拒绝。

这两种错误都更像网络连接问题,而不是二维码失效或账号密码错误。如果是登录问题,通常会看到 401 Unauthorized 之类的提示。

3. 用 PowerShell 测试电脑能不能连到服务

Win + X,选择“终端”或“PowerShell”,运行:

PowerShell
Test-NetConnection chatgpt.com -Port 443

重点看最后的结果:

Text
TcpTestSucceeded : True

如果显示 False,说明电脑当前无法通过 443 端口连到 chatgpt.com。这时即使网页偶尔能打开,Codex 的远程控制也可能仍然失败,因为它使用的是桌面程序里的 WebSocket 连接。

还可以查看 Windows 的系统代理:

PowerShell
netsh winhttp show proxy

如果显示:

Text
Direct access (no proxy server).

就表示 Windows 的 WinHTTP 没有设置代理。浏览器插件的代理通常只对浏览器生效,不能保证 Codex 桌面程序也能使用。

最终解决方法:打开 VPN 的 TUN 模式

不同 VPN 软件的叫法可能不一样,常见名称有:

  • TUN 模式
  • 虚拟网卡
  • VPN 模式
  • 增强模式
  • 全局模式
  • 接管系统流量

一般按下面的顺序操作即可。

第一步:打开 VPN 软件

先确认 VPN 客户端已经正常连接服务器。仅仅打开软件窗口还不够,状态需要显示“已连接”。

第二步:开启 TUN 或虚拟网卡模式

在 VPN 的设置中找到 TUN、虚拟网卡或增强模式并打开。

如果软件同时有“系统代理”和“TUN 模式”,优先使用 TUN 模式。系统代理有时只能处理普通的 HTTP/HTTPS 请求,而 Codex 的远程控制使用 WebSocket,TUN 对这类连接通常更稳妥。

第三步:确认流量确实经过 VPN

有些 VPN 虽然显示 TUN 已打开,但分流规则仍然把部分域名直连。遇到这种情况,可以临时切换到:

  • 全局模式;或
  • chatgpt.com 及其子域名走代理的规则。

排查完成后,再改回平时使用的分流模式。

第四步:重新打开 Codex

TUN 模式开启后,建议完全退出 Codex,再重新启动一次。

如果任务栏右下角还有 Codex 图标,先右键退出,再打开 Codex。这样可以让桌面程序重新建立远程控制连接。

第五步:重新设置手机控制

在电脑端 Codex 中进入设置,找到类似下面的入口:

Text
Settings → Connections → Control this PC → Set up / Add

具体文字可能会随版本略有变化。

然后用手机端 ChatGPT 扫描电脑端显示的二维码。手机和电脑要登录同一个 ChatGPT 账号;如果使用了团队或企业工作区,两边还要选择同一个工作区。

配对完成后,电脑需要保持开机、联网,并且 Codex 处于运行状态。电脑睡眠或关机时,手机不能控制这台电脑。

如何确认已经修好

可以按下面三点检查:

  1. 手机端能看到这台电脑,并且状态正常。
  2. 电脑端不再反复弹出“无法启用远程控制”。
  3. 再次运行下面的命令时,显示 TcpTestSucceeded : True
PowerShell
Test-NetConnection chatgpt.com -Port 443

如果仍然失败,说明 TUN 可能没有接管系统流量,或者 VPN 的分流规则把 chatgpt.com 设置成了直连。

常见误区

只给浏览器装代理插件

这种代理一般只影响浏览器标签页,Codex 桌面端不会自动跟着走。网页能打开,不代表 Codex 的远程控制连接也能用。

只打开系统代理,不开 TUN

有些网络环境下,普通系统代理可以访问网页,但不能稳定处理桌面程序的 WebSocket。遇到这种情况,直接使用 TUN 模式更省事。

一直删除设备、重新扫码

如果日志已经显示设备登记存在,反复扫码通常解决不了网络连接失败。先确认 VPN 和 TUN,再重新扫码更有效。

TUN 开了,但仍然使用直连规则

部分 VPN 的规则模式会让某些域名绕过代理。可以临时改成全局模式验证。如果全局模式下恢复正常,再把 chatgpt.com 加入代理规则。

更新 Codex 后不重启

更新后旧进程可能还留在后台。遇到连接状态异常时,完全退出 Codex 并重新打开,通常比连续点击“重试”有效。

不需要做的事情

这次问题不需要:

  • 修改路由器端口映射;
  • 开放 Windows 的 3389 远程桌面端口;
  • 把电脑端口暴露到公网;
  • 删除 Codex 配置文件;
  • 反复卸载和安装 Codex。

远程控制连接依赖 Codex 和 ChatGPT 服务之间的安全连接,不需要把电脑直接暴露在公网。

最后整理成一张检查清单

遇到“无法启用远程控制”时,按这个顺序检查:

  1. 电脑端和手机端登录同一个账号、同一个工作区。
  2. 电脑端 Codex 已更新到较新的版本。
  3. VPN 显示已连接。
  4. VPN 的 TUN、虚拟网卡或增强模式已开启。
  5. chatgpt.com 没有被分流规则设置为直连。
  6. 运行 Test-NetConnection chatgpt.com -Port 443,确认连接成功。
  7. 完全退出并重新打开 Codex。
  8. 在电脑端重新进入远程控制设置,用手机扫码。

这次实际的关键步骤就是第 4 步:打开 VPN 的 TUN 模式。开启后 Codex 能够正常连接远程服务,手机端控制也就恢复了。

参考:ChatGPT 官方 Remote connections 文档

阅读进度 0%