Codex连接超时频繁是因网络延迟与默认30秒阈值不匹配,需延长超时设置、修复macOS代理环境缺失、验证代理链路、降级为HTTP协议或排查SSH远程网络隔离。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

codex连接超时频繁出现,说明请求在默认30秒内始终未收到服务端响应,命令卡死、对话中断、“Reconnecting…”循环反复,这不是偶然故障,而是网络延迟特征与默认阈值严重不匹配的明确信号。
延长请求与流式超时阈值
第一步:临时提高超时值验证效果
执行命令:codex --timeout 120000 --stream-timeout 180000 "分析这段代码"。这会将请求总时限设为120秒、流式等待设为180秒,覆盖TLS握手、上下文初始化和首chunk返回全过程。
第二步:永久生效配置
在终端中运行:echo 'export CODEX_REQUEST_TIMEOUT=120000' >> ~/.zshrc && echo 'export CODEX_STREAM_TIMEOUT=180000' >> ~/.zshrc && source ~/.zshrc。注意:若使用bash,请替换~/.zshrc为~/.bashrc。
第三步:验证是否生效
运行codex --print "ping" --max-turns 1,观察是否不再报Request timeout exceeded 30000ms错误。如果仍超时,说明问题不在超时阈值本身,需进入下一步排查。
修复 macOS 桌面端代理环境缺失
如果你的 codex CLI 在终端里能正常工作,但桌面 App 从 Dock 或 Finder 启动后反复显示“Reconnecting… 1/5 → 5/5”,那基本可以锁定是 GUI 应用无法读取~/.zshrc里的代理变量——这是 macOS 的机制限制,不是 codex bug。
方法一:注入代理变量到 launchd 环境(推荐)
① 打开终端,执行:launchctl setenv HTTP_PROXY http://127.0.0.1:7890
② 继续执行:launchctl setenv HTTPS_PROXY http://127.0.0.1:7890
③ 【必须完全退出 Codex 桌面应用(右键菜单→Quit,不是关闭窗口),再重新启动】
方法二:改用终端启动验证
在终端中运行:open -a "Codex"。如果此时桌面端恢复正常,就进一步确认了是 launchd 环境变量缺失问题。
检查并验证代理链路可用性
很多超时根本不是 codex 的问题,而是代理端口压根没监听或协议类型错配。
第一步:确认代理端口处于监听状态
macOS/Linux 执行:lsof -i :7890 | grep LISTEN;Windows 执行:netstat -ano | findstr :7890。若无任何输出,说明你的代理工具(Clash、Stash 等)未启用该端口或配置有误。
通过 Codex CLI 生成图片,支持尺寸控制和批量模式。依赖:codex (npm)。代理默认启用。用 generate.sh 生成单张,batch_generate.sh 批量生成游戏 UI 素材,gen_size.sh 指定尺寸。所有输出保存至 ~/.codex/generated_images/。
第二步:测试代理能否通达 OpenAI 接口
执行:curl -x http://127.0.0.1:7890 https://api.openai.com/v1/models -I --max-time 10。只要返回 HTTP 状态码(如HTTP/2 401),即证明代理链路通畅;若提示Connection refused或Failed to connect,说明代理未运行或端口不匹配。
第三步:警惕 SOCKS5 与 HTTP 代理混用
codex 默认使用 HTTP 代理协议。如果你的代理工具只开了 SOCKS5 端口(如 7891),却在环境变量里填了http://127.0.0.1:7891,请求必然失败。请检查代理软件设置,确保 HTTP(S) 端口已开启且地址一致。
降级通信协议禁用 WebSocket
WebSocket 在国内网络下极易因心跳超时或中间设备重置连接而中断,导致流式响应提前断开,触发“Reconnecting”循环。强制切换为纯 HTTP 协议可绕过此问题。
方法一:修改 config.toml 配置文件
打开~/.codex/config.toml,在文件最顶部(任何[xxx]段落之前)添加:model_provider = "openai_http"
然后在任意空白处新增段落:
[model_providers.openai_http]<br>name = "OpenAI HTTP only"<br>wire_api = "responses"<br>supports_websockets = false
【注意:model_provider 必须顶格写,不能有任何缩进,否则配置解析失败】
方法二:用环境变量临时覆盖
启动 codex 前执行:CODEx_MODEL_PROVIDER=openai_http codex "任务"。这种方式无需修改配置文件,适合快速验证。
排查远程 SSH 环境下的网络隔离
如果你通过 VSCode Remote SSH 连接到 Orange Pi、树莓派等远程设备后 codex 超时,问题大概率出在远程机器自身网络——它根本访问不了 OpenAI 或你配置的 Base URL。
第一步:在远程终端执行:curl -I --max-time 10 https://api.openai.com/v1/models。若超时或报错Could not resolve host,说明远程机器网络不通。
第二步:建立 SSH 反向代理隧道
在本地 Windows/macOS 上执行:ssh -R 10808:127.0.0.1:7890 user@remote-ip,将本地代理端口映射到远程机器的 10808 端口。
第三步:在远程机器的config.toml中设置:HTTP_PROXY = "http://127.0.0.1:10808"HTTPS_PROXY = "http://127.0.0.1:10808"
重启远程 codex 进程。

















