如果你在用 Codex 时每次对话都要先看到 "Reconnecting" 转圈等待,有一个简单的方法可以彻底解决这个问题。
手动方案:
创建一个 .env 文件。 ~/.codex/.env
文件内容:
HTTP_PROXY="http://127.0.0.1:你的代理端口"
HTTPS_PROXY="http://127.0.0.1:你的代理端口"
NO_PROXY="localhost,127.0.0.1,::1"
重启 Codex
省流方案:直接把下面这段提示发给 Codex 即可:
检查一下我电脑上 http proxy 的本地端口号,然后帮我创建一个 ~/.codex/.env 文件,在文件里写入两个环境变量 HTTP_PROXY 和 HTTPS_PROXY,值都设为 http://127.0.0.1:端口号(端口号就用你刚才查的那个)。
为什么 Codex 会频繁 "Reconnecting"?
核心原因在于 Codex 的网络连接机制与代理配置之间存在兼容问题,具体可以归结为两点:
1. WebSocket 连接不稳定(最根本的技术原因)
- 默认策略问题:Codex 默认倾向于优先使用 WebSocket 协议与服务器通信。
- 网络环境冲突:在很多用户的实际网络环境下(特别是使用了代理、加速器或防火墙的情况),WebSocket 长连接非常容易抖动或中断。
- 重试机制:由于连接不稳定,Codex 会触发内置的重连机制(显示 Reconnecting 1/5 到 5/5),直到重试 5 次失败后,才会"降级"切换到更稳定的 HTTPS 协议。这就是你感觉到"卡顿、转圈、等待很久"的原因。
2. 代理环境变量未被程序子进程继承
- 无法识别代理:即使你在电脑系统里开启了代理软件,Codex 本身(或它启动的底层 shell 子进程)可能无法自动识别并"继承"这些系统代理配置。
- 通信中断:因为 Codex 无法通过代理顺畅地访问服务地址,请求就会被直接拦截或阻塞,导致程序反复尝试重新建立连接。
这个方案为什么有效?
创建 ~/.codex/.env 文件并写入代理地址,本质上是强制给 Codex"指路":
通过写入 HTTP_PROXY 和 HTTPS_PROXY 环境变量,明确告诉 Codex 程序及其所有子进程:"当你需要联网时,请务必从这个指定的本地端口(代理端口)出发"。
这样做既保证了所有网络请求都能通过稳定的代理通道,也减少了程序因为找不到路而频繁尝试不稳定连接的情况,从而彻底解决了重连问题。
声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。