
Codex 重连5次怎么办?原因与 3 种修复方法,附排查顺序
最后更新:2026 年 9 月 5 日 · 作者:AI345 编辑部 · 约 7 分钟读完
一分钟答案:Codex 每次对话前显示 Reconnecting 1/5 到 5/5,通常是 WebSocket 连接在代理环境下握手失败,重试 5 次后才回退到普通 HTTPS。修复顺序:先在 ~/.codex/.env 里配置 HTTP_PROXY/HTTPS_PROXY 代理变量;不行再在 config.toml 里禁用 WebSocket 强制走 HTTPS;最后考虑代理软件开 TUN 模式。多数人改完第一个文件、完整重启 Codex 后就恢复了。
用 Codex 桌面版或 CLI 时,很多人都被这个画面卡住过:每次发消息,屏幕上先滚过 Reconnecting... 1/5、2/5、3/5、4/5、5/5,等几十秒才开始正常回答。换节点、重启软件、重装 Codex 都试过,第二天照样重连。这篇文章把重连 5 次的机制讲清楚,再给出按优先级排好的 3 种修复方法,照着顺序排查,基本都能解决。
Codex 重连5次是什么现象
典型的表现是这样的:
- 每次开启新会话或发送消息前,固定出现 Reconnecting... 1/5 到 5/5 的提示;
- 等 5 次重连跑完之后,Codex 往往又能正常回答;
- 浏览器访问 ChatGPT 网页版一切正常,只有 Codex 出现这个问题。
先说结论:这种现象通常不代表模型不可用、账号异常或 Codex 崩了,而是实时连接在建立阶段出了问题。Codex 支持 Responses API 的 WebSocket 传输,当前开源实现默认最多重连 5 次,单次连接超时 15 秒;5 次全部失败后,才会回退到普通 HTTPS 请求,之后一切照常。这也是为什么"重连 5 次但最终能回答"是这个问题的经典形态。
在 Codex 官方 GitHub 仓库里,标题或内容包含 reconnecting 的 issue 超过 500 条(其中 390 多条仍处于开启状态),WebSocket 连接性是当前最常见的反馈类型之一,所以遇到这个问题的不止你一个。
为什么会重连5次:WebSocket 重试机制
理解机制,排查才有方向。Codex 新版本默认优先用 WebSocket(WSS)传输 Responses API 的响应流,流程如下图:

- Codex 发起 WSS 连接,15 秒内握手失败(超时或被拦截);
- 自动重试,最多 5 次,界面上显示 Reconnecting 1/5 至 5/5;
- 5 次全部失败后,回退为普通 HTTPS 请求,对话继续。
问题就出在第 1 步。两个最常见的"握手失败"原因:
- 代理没有接管 WebSocket 流量。Codex 桌面应用不像浏览器那样自动走系统代理,它需要显式读到
HTTP_PROXY、HTTPS_PROXY这类环境变量才会走代理;这些变量没配置,或者代理节点不支持 WebSocket 转发,WSS 握手就会一直失败。 - 公司网络、防火墙或安全软件拦截 WSS。浏览器能上网不代表 WSS 能通,不少企业网络会拦截非标准端口的 WebSocket 握手。
判断方法很简单:HTTPS 能正常用(网页、ChatGPT 网页版都正常),但每次对话前固定重连多次,就优先查 WebSocket 和代理配置,而不是怀疑账号或模型速度。
方法一:给 Codex 配置代理环境变量(推荐先试)
这是覆盖面最广的修法,保留 WebSocket 能力,让 HTTPS 和 WSS 流量都正确走代理。
第 1 步:确认代理端口。 打开代理软件的设置页,找到本机 HTTP 代理监听端口。Clash 系列常见 7890,v2rayN 常见 10808,以你软件里实际显示的为准;注意填 HTTP 代理端口,不要未加确认就填 SOCKS 端口。
第 2 步:创建 .env 文件。 路径:
- macOS / Linux:
~/.codex/.env - Windows:
C:\Users\你的用户名\.codex\.env
Windows 用户注意确认文件名是 .env,而不是被隐藏扩展名后的 .env.txt。
第 3 步:写入代理配置(端口换成你自己的):
HTTP_PROXY="http://127.0.0.1:7890"
HTTPS_PROXY="http://127.0.0.1:7890"
NO_PROXY="localhost,127.0.0.1,::1"
第 4 步:完整重启 Codex。 关闭整个 Codex 桌面应用或 CLI 会话再打开,已有进程不会自动重读 .env。重新发一条消息,观察重连是否消失。
仍然重连时逐项检查:代理软件是否在运行;.env 是否放对了目录;Windows 文件名是否真的是 .env;端口是否和软件设置一致;当前节点是否允许 WebSocket;公司网络是否拦截 WSS 握手。
一个实用技巧:你也可以直接把这段需求发给 Codex 本身,让它帮你定位端口并写好 .env 文件,改完手动重启即可。
方法二:禁用 WebSocket,强制走 HTTPS
如果你的代理环境实在无法稳定支持 WebSocket,或者只想尽快消除等待,可以让 Codex 跳过 WebSocket,直接用 HTTPS。
打开配置文件(macOS / Linux 在 ~/.codex/config.toml,Windows 在 C:\Users\你的用户名\.codex\config.toml),在顶层加上:
model_provider = "openai_http"
再在文件里添加一个仅走 HTTPS 的模型提供方:
[model_providers.openai_http]
name = "OpenAI"
wire_api = "responses"
requires_openai_auth = true
supports_websockets = false
supports_websockets = false 会禁止这个 provider 使用 WebSocket 传输,Codex 从此直接走 HTTPS,不再有 5 次重连的等待。保存后完整重启 Codex 生效。
两点注意:改之前备份一下 config.toml,避免覆盖已有的模型和 MCP 配置;部分客户端版本按 provider 分组展示历史会话,切换后暂时看不到旧会话不代表被删了,恢复原配置即可。官方配置项的完整说明见 Codex 官方配置文档。
方法三:代理软件开启 TUN 模式
如果前两种方法都无效,可以把代理切到 TUN 模式。TUN 通过虚拟网卡在系统网络层接管流量,不依赖单个应用是否正确读取代理变量,对 CLI 和桌面应用覆盖更全面。
开启步骤:打开代理客户端(Clash Verge、Mihomo Party 等)→ 在"设置 / 网络 / TUN Mode"里打开开关 → 按提示安装服务模式或虚拟网卡(Windows 需要管理员权限)→ 重启终端和 Codex 验证。
代价是影响面大:TUN 会接管全系统流量,可能改变局域网访问、本地开发服务、虚拟机的网络行为。开启后建议检查内网和本地服务是否正常,并按需配置绕过规则。所以 TUN 排在第三位,作系统级兜底,而不是首选。
三种方法对比:怎么选

| 方法 | 改动位置 | 优点 | 缺点 | 适合谁 |
|---|---|---|---|---|
配置 .env 代理变量 |
~/.codex/.env |
保留 WebSocket,长期方案 | 依赖应用正确读取变量 | 绝大多数人,首选 |
| 禁用 WebSocket | ~/.codex/config.toml |
快速绕开问题,改动小 | 放弃 WebSocket 传输 | 代理不支持 WSS、想立刻见效 |
| TUN 模式 | 代理软件设置 | 系统级接管,覆盖面最大 | 影响全系统网络 | 前两种都无效时兜底 |
按"方法一 → 方法二 → 方法三"的顺序试,每改一步完整重启一次 Codex 再验证,避免多变量同时改动分不清哪个生效。
修完还是重连?4 个容易被忽略的原因

- OpenAI 服务端故障。 重连偶尔是服务端问题,先看 OpenAI 官方状态页有没有故障公告,再等一会儿重试,别急着改配置。
- 上下文过长导致偶发重连。 社区里有用户反馈:同一个会话历史内容积累太多之后开始频繁重连,新开一个会话就恢复正常。如果你的重连是"老会话重、新会话轻",先试试新开会话,并考虑压缩或清理长对话。
- VPN 断连后的"连接黑洞"。 官方仓库有 issue 记录:VPN 断开后 WebSocket 进入假死状态,CLI 长时间停在 Thinking。这类情况重连代理或重启 Codex 进程即可恢复,属于连接状态残留,不是配置错误。
- 间歇性网络抖动。 如果重连只是偶尔出现、不影响最终回答,多数是节点抖动,换一个更稳定的节点观察即可,不必大动干戈。
另外提醒一句:如果 Codex 报错内容明确是认证失败、额度不足或命令不存在,那不是本文讨论的重连问题。额度相关可以看我们的 Codex 额度与用量查询指南,配置相关可以看 OpenAI Codex 完整使用指南。
总结
Codex 重连 5 次的本质是:WebSocket 在代理或防火墙环境下握手失败,客户端重试 5 次(每次 15 秒)后才回退 HTTPS。它不是账号问题,也基本不用重装软件。记住这个处理顺序就够了:先配 .env 代理变量(方法一),不行就禁用 WebSocket 强制 HTTPS(方法二),最后开 TUN 模式兜底(方法三);修完仍然偶发重连,再查服务状态、上下文长度和 VPN 断连残留。
改完之后,每次对话省下的几十秒等待,就是这篇文章最实际的收益。关于 Codex 的更多使用技巧,欢迎继续阅读 AI 指南栏目的其他 Codex 教程。
参考资料
常见问题
Codex 重连5次但最后能回答,需要处理吗?
答:建议处理。这说明 WebSocket 握手在反复失败,每次对话前白白等几十秒,长期累计浪费的时间很可观。按本文方法一配置 `.env` 代理变量,多数情况可以根治。
为什么浏览器正常,只有 Codex 一直重连?
答:因为浏览器会自动走系统代理,而 Codex 桌面应用不会,它需要显式读到 `HTTP_PROXY`/`HTTPS_PROXY` 环境变量才走代理;WebSocket 流量没被代理正确接管时,就会出现连续 5 次重连。
改了 `.env` 还是重连,怎么办?
答:先确认三件事:完整重启过 Codex(旧进程不会重读配置);文件在 `~/.codex/.env` 且文件名不是 `.env.txt`;端口和代理软件实际显示的一致。确认无误仍失败,再依次试方法二和方法三。
禁用 WebSocket(supports_websockets = false)有什么副作用?
答:Codex 会全程改用普通 HTTPS 传输,失去 WebSocket 的实时流式体验,但功能本身不受影响。对多数用户来说,等待时间反而更短,是可接受的取舍。
重连是间歇性的,有时快有时重连,怎么回事?
答:两个常见可能:一是节点或线路不稳定,换节点观察;二是会话上下文过长,老会话频繁重连、新会话正常,这种情况新开会话或精简历史即可。如果重连后完全无法回答,再按完整排查顺序走。
Codex 重连5次和账号额度有关系吗?
答:没有直接关系。重连 5 次是连接层问题,额度不足会有明确的额度报错提示。不确定自己额度状态的话,可以用 `/status` 命令或网页仪表板查询,详见我们的 [Codex 用量查询指南](https://www.ai345.info/ai-guide/codex-usage-check-guide)。

京ICP备2024094994号-29