Skip to content

Codex App Mac版Reconnecting问题解决:launchctl设置代理环境变量

2026年5月9日

最近用 Codex App 的时候,遇到一个很烦的问题:每次新开一个对话,它都会先显示 "Reconnecting..." 重试 5 次才恢复正常。

问题表现

每次新开对话,Codex 都会这样:

Reconnecting... 2/5
Reconnecting... 3/5
Reconnecting... 4/5
Reconnecting... 5/5
timeout waiting for child process to exit

奇怪的是,它并不是完全不能用。每次重连几次以后,最后又能正常开始回复。

所以这个问题就很折磨人:它不像是网络完全不通,更像是一开始没走对线路,失败几次以后才绕回了正确路线。

问题根因

后来发现,这个问题大概率不是:

  • ❌ Clash 不通
  • ❌ VPS 不通
  • ❌ 节点不能访问 OpenAI
  • ❌ 账号权限有问题

真正的原因更像是:Codex App 在新建对话的启动阶段,可能会先尝试直连 OpenAI,而不是一开始就走系统代理。

也就是说,虽然电脑上已经开了 Clash,网页、终端、其他工具也都可以正常访问 OpenAI,但 Codex App 启动时的某些请求或子进程,可能没有马上继承系统代理。

于是就出现了这种情况:

先尝试直连 OpenAI

直连失败

开始 Reconnecting

重试几次后才走到代理

最后又能正常使用

解决思路

直接告诉 Codex App:从启动第一秒开始,就走这个代理。

Mac 上可以通过 launchctl setenv 给图形界面 App 设置环境变量。

具体操作步骤

第一步:确认你的代理本地端口

打开 Clash Verge 查看:

  • 设置 → 查看 Clash 端口
  • 默认一般是 78907897

记住这个端口号,下面会用到。

第二步:设置 launchctl 环境变量

打开终端,执行:

bash
# 把 7897 换成你实际的代理端口
launchctl setenv http_proxy http://127.0.0.1:7897
launchctl setenv https_proxy http://127.0.0.1:7897
launchctl setenv HTTP_PROXY http://127.0.0.1:7897
launchctl setenv HTTPS_PROXY http://127.0.0.1:7897

第三步:验证设置

bash
launchctl getenv http_proxy
# 应该输出: http://127.0.0.1:7897

第四步:重启 Codex App

完全退出 Codex App(Command+Q),重新打开。

第五步:测试

新建一个对话,应该不会再出现 Reconnecting 了。

进阶:持久化设置

上面用 launchctl setenv 设置的环境变量会在下次登录前生效。

如果想永久生效,需要创建 plist 文件:

bash
# 创建配置文件
cat > ~/Library/LaunchAgents/setenv.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>setenv.proxy</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/launchctl</string>
        <string>setenv</string>
        <string>http_proxy</string>
        <string>http://127.0.0.1:7897</string>
    </array>
    <array>
        <string>/bin/launchctl</string>
        <string>setenv</string>
        <string>https_proxy</string>
        <string>http://127.0.0.1:7897</string>
    </array>
</dict>
</plist>
EOF

# 加载配置
launchctl load ~/Library/LaunchAgents/setenv.plist

这样每次开机的代理环境变量都自动设置好了。

如果还不行

如果设置了代理环境变量还是不行,试试:

方案1:更新 Clash 配置

在 Clash 的配置里添加:

yaml
proxy-groups:
  - name: "auto"
    type: url-test
    proxies:
      - 你的节点
    url: "http://www.gstatic.com/generate_204"
    interval: 300

方案2:使用 Proxifier

下载 Proxifier for Mac,强制所有应用流量走代理。

方案3:终端启动

在终端里启动 Codex:

bash
export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897
open -a "Codex"

一句话

Codex Reconnecting 问题是启动时没吃上代理,用 launchctl setenv 设置环境变量,一行命令解决。

不要孤军奋战啦!

加入微信群一起学习交流 AI

与大神一起使用 OpenClaw、Hermes、Claude Code、Seedance 2.0、GPT-Image-2 等

微信公众号

扫码关注微信公众号
私信 "加群",将自动获取微信群二维码

探索 AI 世界,掌握智能未来