告别重连:完美解决 Codex 每次打开都要 Reconnecting 5 次的问题

前言

不知道大家有没有遇到过这种情况:无论是 Codex CLI 还是 Codex App,每次启动或刚发送问题时,都会先出现一串 Reconnecting...

几乎每次都要经历 5 次重连后,才能正常响应。明明只是想快速处理一点代码问题,却把时间都浪费在反复重连上。更让人头疼的是,它并不是完全无法连接,而是前 5 次全部失败,最后一次却又成功了。这种“明明可以连接,却偏偏要反复重试”的体验,真的非常影响使用效率。


📌 报错特征

Reconnecting...

🔍 问题原因:为什么会出现 tls handshake eof

问题的根本原因在于:WebSocket(WSS)协议在当前局域网或代理环境下,无法正常完成全双工通信。

Codex 默认会优先建立 WebSocket 流式连接。当代理环境对 WSS 支持不佳,或握手失败时,它会不断尝试重新连接。只有在达到重试上限后,才会降级为 HTTP 模式。这正是导致漫长 5 次 Reconnecting 的主要原因。


🛠️ 解决方案(实测有效)

经过多台设备测试,目前共有以下 3 种有效解决方案,可根据自己的代理软件和使用习惯选择最适合的一种。


方案一:修改 config.toml,禁用 WebSocket(⭐⭐⭐⭐⭐ 强烈推荐)

通过修改 Codex 的配置文件,在对应的 Provider 中明确禁用 WebSocket,并强制使用 HTTP 通信,从根源上避免 WSS 重连问题。

第一步:找到配置文件

配置文件通常位于用户目录下的 .codex 文件夹中。

Windows

C:\Users\你的用户名\.codex\config.toml

Linux / macOS

~/.codex/config.toml

第二步:修改配置

如果使用官方接口,建议新建一个自定义 Provider(实测成功率高于直接修改默认配置)。

model = "gpt-5.4-mini"
model_reasoning_effort = "high"
disable_response_storage = true
model_provider = "openai_http"

[model_providers.openai_http]
name = "OpenAI HTTP Only"
requires_openai_auth = true
wire_api = "responses"
supports_websockets = false

关键配置说明

配置项作用
wire_api = "responses"强制使用 Responses API,避免容易出问题的流式连接
supports_websockets = false明确禁用 WebSocket,阻止 Codex 优先尝试 WSS
提示: 如果你已经配置了其他 Provider,不想新建,也可以直接在原有 Provider 中增加以上两项配置进行测试。

方案二:开启代理软件的 TUN 模式(适用于 Clash Verge 等)

如果你使用的是 Clash Verge 或其他支持 TUN 模式 的代理客户端,可以直接在设置中开启 TUN Mode

原理

TUN 模式会从系统底层接管网络流量,不再依赖应用程序是否正确使用系统代理,而是统一接管所有网络请求,包括 WebSocket(WSS)流量。

对于经常使用终端工具(例如 Codex CLI、Claude Code 等)的开发者来说,这是兼容性最好、最省心的方案之一。


方案三:为 Codex 配置 .env 代理环境变量

~/.codex 目录下创建或修改 .env 文件,明确指定代理地址,避免 Codex 无法正确识别代理。

方法一:手动配置

假设你的 HTTP(或 Mixed)代理端口为 7890

HTTP_PROXY=http://127.0.0.1:7890
HTTPS_PROXY=http://127.0.0.1:7890
ALL_PROXY=http://127.0.0.1:7890
NO_PROXY=localhost,127.0.0.1,::1

方法二:让 AI 自动配置(推荐)

如果不想自己查找代理端口,可以直接把下面这段提示词发送给 Codex:

帮我修复 Codex App 一直 Reconnecting 的问题。

请定位我本机正在使用的代理端口和代理协议,然后创建或更新 ~/.codex/.env,并写入以下代理配置。

不要写死端口,请自动替换为实际端口;如果文件已经存在,请保留其他配置。

HTTP_PROXY="http://127.0.0.1:<HTTP 或 Mixed 端口>"
HTTPS_PROXY="http://127.0.0.1:<HTTP 或 Mixed 端口>"
NO_PROXY=localhost,127.0.0.1,::1

配置完成后,请检查是否生效,并告诉我如何重启 Codex。

⚠️ 避坑指南:为什么修改后还是没有效果?

一定要彻底关闭旧进程,再重新启动 Codex。

修改配置文件或环境变量后,如果后台仍然存在旧的 Codex 进程,新配置通常不会立即生效。

请确保彻底退出 Codex(可通过任务管理器或 kill 命令结束所有相关进程),然后重新启动。

Windows: 可以在任务管理器结束所有 Codex.exe 或相关进程。
Linux / macOS: 可以执行:
pkill -f codex

重新启动 Codex 后,新的配置才能正确加载,彻底告别反复 Reconnecting,恢复流畅使用体验。


📋 总结

方案推荐指数难度是否推荐
修改 config.toml 禁用 WebSocket⭐⭐⭐⭐⭐★☆☆☆☆✅ 最推荐
开启 TUN 模式⭐⭐⭐⭐☆★★☆☆☆✅ 推荐
配置 .env 代理变量⭐⭐⭐⭐☆★★☆☆☆✅ 推荐

如果你的 Codex 每次都会出现 Reconnecting ×5,建议优先尝试 方案一。绝大多数情况下,仅需增加两行配置即可彻底解决问题。

评论区
头像