codex连接超时主因是客户端默认30秒超时阈值与国内网络tls握手、初始化及流式响应节奏不匹配;需同步延长codex_request_timeout至120000毫秒和codex_stream_timeout至180000毫秒,禁用websocket改用openai_http协议,并验证代理端口监听与穿透有效性。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

codex连接超时不是服务器繁忙导致的,而是客户端默认超时阈值(30秒)与国内真实网络路径的TLS握手延迟、上下文初始化耗时、首chunk分发节奏严重不匹配——实测中curl能在820ms返回完整响应,但codex list却稳定超时,根源在于Node.js HTTP客户端对流式响应节奏的容忍度远低于实际网络波动特征。
确认是否真为服务端过载
执行 curl -I https://api.openai.com/v1/models --max-time 10,若返回 HTTP/2 200 或 401,说明服务端可达且未过载;若超时或报 ENOTFOUND,则问题在本地DNS或网络层。
运行 codex --print "ping" --max-turns 1,观察是否卡在“Reconnecting”或直接报 ETIMEDOUT。前者指向WebSocket协商失败,后者才是典型超时,与服务器负载无关。
延长超时阈值(最有效)
方法一:临时生效
在当前终端执行 export CODEX_REQUEST_TIMEOUT=120000 && export CODEX_STREAM_TIMEOUT=180000,再运行 codex 命令。
方法二:永久生效
将两行配置追加到 ~/.bashrc(macOS/Linux)或 ~/.zshrc(Zsh用户),然后 source ~/.zshrc;Windows用户需在系统环境变量中新增 CODEX_REQUEST_TIMEOUT=120000。
【必须同步设置流式超时】仅调大 request timeout 不足以解决流式响应中断,CODEX_STREAM_TIMEOUT 必须设为 ≥180000,否则首个 chunk 后仍会触发 Stream timeout No data received for 30000ms。
降级通信协议绕过WebSocket
第一步:打开 ~/.codex/config.toml,在文件最顶部顶格写入:
model_provider = "openai_http"
第二步:在文件任意空白处添加完整段落:
[model_providers.openai_http]
name = "OpenAI HTTP only"
wire_api = "responses"
supports_websockets = false
使用 OpenAI Codex CLI 处理编码任务。触发词:codex、code review、fix CI、refactor code、implement feature、coding agent、gpt-5-codex。Clawdbot 可将编码工作委托给 Codex CLI 作为子代理或直接工具。
⚠️ 注意:model_provider 行不能有任何缩进,否则配置解析失败,codex 仍会尝试 WebSocket 连接。
验证代理链路是否真正可用
① 检查代理进程是否监听目标端口:
macOS/Linux 执行 lsof -i :7890,Windows 执行 netstat -ano | findstr :7890,确认输出含 LISTEN 状态。
② 测试代理穿透能力:
curl -x http://127.0.0.1:7890 https://api.openai.com/v1/models -I --max-time 10,返回 HTTP 状态码即证明代理链路通畅。
③ 若使用 Clash/Stash/Surge,请确认其 HTTP 代理端口与配置中一致,且已启用;SOCKS5 端口不能用于 codex 的 HTTP 请求。
释放被系统拦截的本地回调端口
管理员身份打开 PowerShell,执行:
netsh interface ipv4 show excludedportrange protocol=tcp
查看输出中是否包含 1359–1458 区间;若 1455 被排除,立即执行:
net stop winnat → net start winnat
重启 WinNAT 后无需重启系统,直接重试 codex login 即可生效。










