Codex连接超时本质是传输链路中断而非模型无响应,需依次排查本地环境、配置文件、代理链路、WebSocket支持及超时阈值——任一环节异常均导致30秒后“reconnecting…5/5”。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codex连接超时不是模型没响应,而是请求卡在传输链路中——DNS解析失败、代理端口未监听、WebSocket被拦截、超时阈值过短,任意一个环节出错都会触发30秒后强制中断并反复显示“reconnecting…5/5”。
确认本地环境是否就绪
先验证Codex根本没启动失败:打开终端,执行codex --version。若无输出或报错“command not found”,说明Node.js环境或全局安装异常。
接着运行node -v和npm list -g @openai/codex。Windows用户特别注意:PowerShell能运行≠CMD能运行≠Git Bash能运行,三者PATH可能完全隔离——必须在你实际敲codex的那个终端里验证。
如果npm list返回empty或ERR,说明全局包未正确安装,需用管理员权限重装:npm install -g @openai/codex。
检查配置文件是否被读取
方法一:直接定位路径
Windows用户打开资源管理器,粘贴:C:\Users\你的用户名\.codex\config.toml;macOS/Linux用户执行:ls ~/.codex/config.toml。若路径打不开,或文件名是config.toml.txt,说明配置根本未生效。
方法二:强制触发加载检测
临时将config.toml重命名为config.toml.bak,再运行codex --print "test"。若终端立即报错config file not found,证明程序确实在读这个位置;若依然无响应,说明它压根没走到配置加载阶段。
【VSCode插件与CLI默认读取不同配置路径】,插件可能读~/.codex/,但Windows上~可能指向C:\Users\用户名\AppData\Roaming\Code\User,不能假设一致。
排查网络与代理链路
第一步:确认代理端口是否真实监听
macOS/Linux执行:lsof -i :7890;Windows执行:netstat -ano | findstr :7890。输出中必须含LISTEN状态,否则代理软件根本没启用该端口——请打开Clash/Surge/V2RayN,检查HTTP/SOCKS5端口设置是否开启且端口号匹配。
第二步:验证代理能否通API
运行:curl -x http://127.0.0.1:7890 https://api.openai.com/v1/models -I --max-time 10。只要返回HTTP状态码(如HTTP/2 401),即证明代理链路通畅;若提示Connection refused,说明代理未运行或端口错误。
第三步:检查环境变量是否生效
执行:env | grep -i proxy。若无输出,说明HTTP_PROXY和HTTPS_PROXY未设置。此时需手动写入~/.codex/.env文件:HTTP_PROXY="http://127.0.0.1:7890"HTTPS_PROXY="http://127.0.0.1:7890"NO_PROXY="localhost,127.0.0.1,::1"。【注意:.env文件必须保存为UTF-8无BOM编码,否则解析失败】
修改核心配置绕过协议陷阱
① 打开~/.codex/config.toml(Windows为C:\Users\你的用户名\.codex\config.toml)
② 在文件最顶部(任何[xxx]段落之前)添加:model_provider = "openai_http"
③ 在文件任意空白处新增段落:[model_providers.openai_http]name = "OpenAI HTTP only"wire_api = "responses"supports_websockets = false
④ 在[client]段落下添加:use_websocket = false
⑤ 保存后必须重启终端,否则配置不生效。
这一步能绕过90%的“reconnecting…5/5”假死现象。如果禁用WebSocket后立刻响应,就坐实是代理对wss支持不全——浏览器能访问API≠终端CLI能走通wss。
延长超时阈值适配国内网络
方法一:通过环境变量永久生效
执行:export CODEX_REQUEST_TIMEOUT=120000(单位毫秒,即120秒)
追加到shell配置文件:echo 'export CODEX_REQUEST_TIMEOUT=120000' >> ~/.zshrc(macOS)或echo 'export CODEX_REQUEST_TIMEOUT=120000' >> ~/.bashrc(Linux)
然后执行:source ~/.zshrc或source ~/.bashrc
方法二:命令行临时覆盖
每次调用时加参数:codex --timeout 120000 "你的指令"
方法三:同步调整流式超时
执行:export CODEX_STREAM_TIMEOUT=180000(180秒),防止长任务因无数据返回而中断。
默认30秒超时对国内代理链路明显不足,60秒可覆盖TLS握手+上下文初始化+首chunk返回全过程,120秒留足冗余缓冲。


















