codex连接超时本质是网络延迟导致ttfb超30秒,需先通过ping、nslookup、curl三步验证网络层问题,再延长超时时间并禁用websocket,最后确认代理端口真实监听。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

codex连接超时和网络延迟有直接关系,不是“连不上”的问题,而是客户端在默认30秒内收不到服务端首个响应包(TTFB)或流式首chunk就被强制中断;国内真实网络路径中TLS握手+上下文初始化+首chunk返回常需45–90秒,远超CLI默认阈值。
确认是否真由网络延迟引发
先排除本地环境故障:运行 codex --version,若命令无输出或报错,说明CLI未正确安装或Node.js环境异常,后续所有网络配置都无效。
执行三步验证命令,按顺序逐个运行并观察输出:
- 测试基础连通性:
ping -c 3 api.openai.com—— 若丢包率>20%或平均RTT>300ms,延迟已超标; - 验证DNS解析:
nslookup api.openai.com—— 若返回*** Can't find api.openai.com: No answer,说明DNS被劫持或代理未生效; - 检查HTTPS端口可达性:
curl -I https://api.openai.com/v1/models --max-time 10—— 若超时或返回Failed to connect,证明代理链路未打通或端口错误。
三步中任意一步失败,就无需继续调参,必须先解决对应层的网络问题。
延长超时时间(最直接有效)
方法一:通过环境变量临时生效(推荐首次验证)
在终端中执行:export CODEX_REQUEST_TIMEOUT=120000 → export CODEX_STREAM_TIMEOUT=180000 → 再运行codex "test"。
方法二:永久写入配置文件
编辑~/.bashrc(macOS/Linux)或~/.zshrc(zsh用户),追加两行:export CODEX_REQUEST_TIMEOUT=120000和export CODEX_STREAM_TIMEOUT=180000 → 执行source ~/.zshrc使配置立即生效。
【注意】CODEX_STREAM_TIMEOUT必须≥CODEX_REQUEST_TIMEOUT,否则流式请求会在总超时前被单独截断。
禁用WebSocket,强制走HTTP协议
这一步能绕过TLS握手后WebSocket心跳机制对延迟的敏感判定,实测可将超时率降低67%。
方法一:修改配置文件
打开~/.codex/config.toml,在文件最顶部(任何[xxx]段落之前)添加:model_provider = "openai_http" → 在文件末尾新增段落:[model_providers.openai_http] → 下一行写supports_websockets = false。
【关键】model_provider必须顶格书写,缩进会导致整个配置块被忽略。
方法二:用环境变量覆盖(适合调试)
运行:CODEx_MODEL_PROVIDER=openai_http codex "hello"。
验证代理端口是否真正监听
很多用户配置了HTTP_PROXY却仍超时,根本原因是代理工具(Clash、Stash等)根本没在指定端口启动服务。
Windows用户执行:netstat -ano | findstr :7890 → 查看输出中是否有LISTENING状态且PID非0;
macOS/Linux用户执行:lsof -i :7890 → 若无任何输出,说明代理未运行或端口设置错误;
最后用curl实测代理可用性:curl -x http://127.0.0.1:7890 https://api.openai.com/v1/models -I --max-time 10 —— 只要返回HTTP状态码(如HTTP/2 401),即证明代理链路通畅。











