Codex Mobile 连接排坑

ChatGPT iOS 连接不上 Codex Desktop?扫码进首页、Mac 离线、重新连接无反应的完整修复指南

一篇面向真实故障场景的排查记录:从账号、二维码、手机 App、旧连接状态,到 macOS GUI 应用代理环境变量,按优先级给出可执行方案。

作者:马乔 适用场景:iPhone ChatGPT App 连接 Mac 上的 Codex Desktop

一、典型现象

如果你遇到下面任意一种情况,可以优先参考本文:

  • iPhone ChatGPT 侧边栏一会有 Codex,一会没有。
  • 扫 Codex Desktop 的二维码后,直接进入 ChatGPT 首页。
  • 手机端显示 Mac 离线,红点状态。
  • 手机端有“重新连接”,但点击没有反应。
  • 第一次曾出现授权页,允许后失败,之后再也进不去连接页。
  • 手机端卡在“正在等待桌面端”。
  • Mac 本地 Codex 能正常用,但手机远程控制连不上。

二、最终核心结论

真正解决问题的关键:Codex Desktop 作为 macOS 图形界面 App 启动时,没有稳定继承代理环境变量,导致它无法稳定连接 OpenAI 的远程控制服务。

也就是说,问题不一定出在手机,也不一定是二维码坏了,而是 Codex Desktop 没有稳定走代理。结果就是手机端看到 Mac 离线、重新连接无反应、扫码退回首页等混乱状态。

三、为什么“终端有代理”还不够?

很多人会在终端里写:

export HTTPS_PROXY=http://127.0.0.1:7890

但这只影响当前终端窗口。

Codex Desktop 是 macOS 图形界面 App,通常从 Dock、Finder 或启动台打开。这类 App 的环境变量来自 macOS 的 launchd,而不是你当前终端里的 export

重点:终端能走代理,不等于 Codex Desktop 这个 GUI App 能走代理。

四、先确认你的代理端口

不同代理软件端口不同。常见端口包括 7890789710801087。本次实际使用的是 10909

可以在终端运行:

lsof -nP -iTCP -sTCP:LISTEN | grep -E "789|1080|1087|clash|mihomo|surge"

找到类似结果:

127.0.0.1:10909

这里的 10909 就是后面要填的端口。如果你的端口不同,请替换成自己的。

五、核心修复步骤

以下示例以端口 10909 为例。打开 Mac 的“终端”,输入:

launchctl setenv HTTP_PROXY http://127.0.0.1:10909
launchctl setenv HTTPS_PROXY http://127.0.0.1:10909
launchctl setenv ALL_PROXY socks5://127.0.0.1:10909
launchctl setenv NO_PROXY localhost,127.0.0.1,::1

然后完全退出 Codex:

killall Codex

再重新打开 Codex:

open -a Codex

也可以手动操作:点击屏幕左上角 Codex,选择 退出 Codex,再重新打开。

六、验证是否设置成功

在终端输入:

launchctl getenv HTTPS_PROXY
launchctl getenv ALL_PROXY

如果返回类似:

http://127.0.0.1:10909
socks5://127.0.0.1:10909

说明 GUI 代理环境变量已经写入。

七、重新连接手机

1
打开 Codex Desktop。
2
进入 Set up Codex mobile
3
生成新的二维码,不要继续使用旧二维码。
4
用 iPhone 自带“相机”扫码,不建议用微信扫码。
5
在 ChatGPT App 中确认授权,等待连接成功。

八、其他可能原因与对应处理

原因 1

手机 App 本地状态异常

表现:Codex 侧边栏一会有一会没有;扫码直接进首页;连接页按钮没反应。

处理:卸载 iPhone 上的 ChatGPT App,重启 iPhone,重新安装并登录同一个账号,再从 Codex Desktop 重新扫码。

原因 2

旧连接状态卡住

表现:手机端显示旧的 Mac 名称,状态一直离线,点击“重新连接”无反应。

处理:在手机 ChatGPT 的 Codex / 连接页面里尝试断开旧连接;如果没有删除按钮,可以尝试“全部断开连接”。

原因 3

账号不一致

表现:Mac 端登录一个账号,手机端登录另一个账号,手机端看不到 Codex 或看不到对应 Mac。

处理:确认 Mac Codex 登录账号和 iPhone ChatGPT 登录账号一致。

原因 4

ChatGPT App 版本过旧

表现:扫码进首页,没有 Codex 入口,或者 Codex 入口不稳定。

处理:去 App Store 更新 ChatGPT。如果仍异常,卸载后重装。

原因 5

代理规则只代理浏览器

表现:浏览器能打开 ChatGPT,但 Codex Desktop 手机连接失败,手机显示 Mac 离线。

处理:不要只看浏览器能否访问。Codex Desktop 也必须能访问 OpenAI 的远程控制服务。

九、如果想回退这些设置

如果以后不想让 macOS GUI App 继承这些代理变量,可以执行:

launchctl unsetenv HTTP_PROXY
launchctl unsetenv HTTPS_PROXY
launchctl unsetenv ALL_PROXY
launchctl unsetenv NO_PROXY

然后重启 Codex。

十、最终推荐排查顺序

  1. 确认 Mac 和手机是同一个 ChatGPT 账号。
  2. 更新或重装 iPhone ChatGPT App。
  3. 确认本机代理端口。
  4. launchctl setenv 设置 GUI 代理环境变量。
  5. 完全退出并重新打开 Codex Desktop。
  6. 从 Codex Desktop 重新生成二维码。
  7. 用 iPhone 自带相机扫码。
  8. 不要反复使用旧二维码。

一句话总结:如果 ChatGPT iOS 连接不上 Codex Desktop,尤其出现“Mac 离线”“重新连接无反应”“扫码进首页”,优先检查 Codex Desktop 这个 macOS GUI App 是否真正继承了代理环境变量。