Codex 每次都要 Reconnecting 5 次的解决办法
方案一:直接禁用 WebSocket(最快最直接)
如果你不想折腾代理配置,最简单的办法就是让 Codex 别再优先走 WebSocket,直接强制它只用 HTTPS。
找到配置文件
| 系统 | 路径 |
|---|---|
| macOS / Linux | ~/.codex/config.toml |
| Windows | C:\Users\你的用户名\.codex\config.toml |
修改配置
在配置文件顶部添加或修改:
在文件末尾添加:
保存后重启 Codex
这波操作的意思很简单:告诉 Codex 别连 WebSocket 了,直接走 HTTP。这样就不会再出现前面 5 次 Reconnecting 的罚站流程。
副作用: Codex 的历史会话可能会按 provider 分组。切到 openai_http 之后,原来 provider 下面的部分历史会话可能暂时看不到。不是没了,只是分组变了——如果想回去,把配置还原即可。
方案二:配置 .env 让 WebSocket 也走代理(推荐)
如果你希望 Codex 保持默认能力,不想禁用 WebSocket,这个方案更推荐。
创建 .env 文件
路径如下:
| 系统 | 路径 |
|---|---|
| macOS / Linux | ~/.codex/.env |
| Windows | C:\Users\你的用户名\.codex\.env |
注意: 文件名就是.env,不是.env.txt。Windows 用户尤其注意别让系统隐藏了后缀名。
文件内容
端口号换成你代理软件实际使用的端口:
| 代理软件 | 常见端口 |
|---|---|
| Clash | 7890 |
| v2rayN | 10808 |
具体以你自己的代理软件里显示的端口为准。
这个方案的核心思路是不禁用 WebSocket,而是让 WebSocket 握手也能正确走代理,这样 Codex 就不用先失败 5 次再 fallback 到 HTTP 了。
方案三:TUN 兜底方案
还有一种办法——直接在代理软件里开启 TUN 模式。
TUN 的逻辑更粗暴:它不是只代理某个软件,也不是只代理终端环境变量,而是从虚拟网卡层面接管系统流量。
所以理论上,Codex 的 WebSocket、HTTPS、各种请求都更容易被接住。
但我不建议一上来就开 TUN
原因很简单:TUN 影响范围太大。它可能会影响:
其他软件联网
内网访问
公司本地开发服务
某些 App 的网络行为
建议顺序
TUN 更适合当兜底方案——前面两个方案都不行,再考虑它。


评论