Codex 连接失败怎么办?终端代理、长连接与 API 域名排查
Codex 连接失败分三种:CLI 启动就报 unable to connect、登录授权卡住、任务跑到一半 stream disconnected。本文把一次 Codex 请求拆成代理变量、DNS、TLS、API 域名、长连接五个环节,每个环节给一条可验证的命令,并说明 CLI、IDE 扩展与网页版的差别。

直接答案
Codex 连接失败按五个环节依次验证:终端是否读到了 HTTPS_PROXY 变量(echo 检查);域名是否通过代理解析(nslookup 看是否为 fake-ip);TLS 是否能握手(curl 看 time_appconnect);api.openai.com 等域名是否返回 4xx 而非超时;长任务是否能维持 20 分钟不断(换丢包低的固定节点)。启动即失败几乎都是前两个环节,跑到一半断开几乎都是最后一个环节。
Codex 连接失败的报错只有几种:unable to connect、fetch failed、ECONNRESET、ETIMEDOUT、stream disconnected,但背后的环节至少有五个。本文的做法是把一次 Codex 请求从终端到 OpenAI 服务器拆开,每个环节给一条命令验证,哪条命令失败就处理哪个环节。错误码本身的含义见 Codex 常见错误与解决,代理的完整配置步骤见 Codex CLI 代理设置,这篇只负责「失败了,怎么快速定位」。
一次 Codex 请求经过哪五个环节
| 环节 | 失败时的典型报错 | 验证方法 | 处理 |
|---|---|---|---|
| 1. 终端读取代理变量 | unable to connect、fetch failed,启动即失败 | echo $HTTPS_PROXY 有无输出 | 导出变量或开启 TUN |
| 2. DNS 解析 | ENOTFOUND、getaddrinfo 相关 | nslookup api.openai.com | 让客户端接管 DNS |
| 3. TLS 握手 | 证书错误、ECONNRESET 出现在连接初期 | curl 看 time_appconnect | 校时、换节点、关 TLS 拦截 |
| 4. API 域名可达 | 超时、403、429 | curl 返回码 4xx 即为可达 | 换出口地区或节点 |
| 5. 长连接保持 | stream disconnected、任务中途停止 | 跑 20 分钟任务观察 | 固定丢包低的专线节点 |
启动就失败,看 1–4;能启动、能对话、跑一会儿断,看 5。
环节 1 与 2:代理变量与 DNS
Codex CLI 是终端进程,不读取系统代理设置,只认环境变量。这是最常见的失败原因,而且在新开终端、换 shell、用 IDE 内置终端时会反复出现。
# macOS / Linux
echo "$HTTPS_PROXY $HTTP_PROXY"
export HTTPS_PROXY=http://127.0.0.1:7890
export HTTP_PROXY=http://127.0.0.1:7890
nslookup api.openai.com
# Windows PowerShell
"$env:HTTPS_PROXY $env:HTTP_PROXY"
$env:HTTPS_PROXY = "http://127.0.0.1:7890"
$env:HTTP_PROXY = "http://127.0.0.1:7890"
Resolve-DnsName api.openai.com | Select-Object Name, IPAddress
读法:第一条输出为空就是没配代理;端口以客户端混合端口为准,Clash Verge Rev 与 Mihomo Party 默认 7890,v2rayN 默认 10809。DNS 这一步返回 198.18 开头的 fake-ip 地址说明客户端已接管解析;返回真实 IP 也不一定错,但如果后续握手失败,就要怀疑解析结果被污染,处理方法见 DNS 污染怎么判断与修复。
不想在每个终端里导出变量的,可以在客户端开启 TUN 模式接管全部流量,这样 Codex 不需要任何变量。两种方式不要同时用,否则请求可能经过两次代理。
ℹ️ 说明
走 HTTP 代理时,Codex 的请求会先连到 127.0.0.1:7890,域名由客户端处理,所以 nslookup 看到的本地解析结果与实际请求用的并不一定相同。真正的判断标准是环节 3、4 的 curl 结果。
环节 3 与 4:TLS 握手与 API 域名
# macOS / Linux:一条命令同时看握手时间与返回码
curl -sS -o /dev/null -w "code=%{http_code} connect=%{time_connect}s tls=%{time_appconnect}s total=%{time_total}s\n" --max-time 15 https://api.openai.com/v1/models
# Windows PowerShell
curl.exe -sS -o NUL -w "code=%{http_code} connect=%{time_connect}s tls=%{time_appconnect}s total=%{time_total}s`n" --max-time 15 https://api.openai.com/v1/models
读法:
code=401,tls 在 1 秒内:完全正常。401 是因为没带密钥,说明终端已经通过代理到达了 OpenAI。code=000且 connect 很小、tls 为 0:TCP 连上了代理,但 TLS 没握成。先校对系统时间,再换节点;仍失败时检查是否有安全软件做 TLS 拦截。code=000且 total 等于 max-time:请求根本没到,回到环节 1 检查变量与端口。code=403:出口 IP 被拒,换一个地区的节点。code=429:出口 IP 被限流,等几分钟或换节点。
⚠️ 注意
登录授权阶段会在浏览器里打开 OpenAI 的授权页,完成后跳转回本机 localhost 的一个端口。如果客户端规则把 localhost 或 127.0.0.1 也送进了代理,回调永远到不了,表现为授权页显示成功、终端却一直等待。确认 fake-ip-filter 与规则里本地地址走 DIRECT。
环节 5:长连接为什么会断
Codex 执行任务时,终端与服务器之间是一条持续数分钟到数十分钟的流式连接。它会断在三种地方:节点丢包触发重传超时、策略组自动切换导致出口 IP 变化、节点或中间设备的空闲超时策略回收连接。
验证方法很简单:固定一个节点,让 Codex 跑一个 20 分钟左右的任务,同时在另一个终端对节点做 mtr:
sudo mtr -r -c 200 节点入口地址
最后一跳丢包超过 2%,或者任务中断时间与丢包高峰重合,就是线路问题,换节点。处理顺序:
- 关闭「自动选择」「故障转移」「负载均衡」类策略组,手动固定一个节点。
- 优先选专线节点,中转线路在晚高峰丢包上升最明显。
- 同一节点连续三次长任务都不断,再把它写进规则固定给 openai.com 相关域名。
- 仍然断开的,对照 AI 流式输出中断怎么办 处理 SSE 相关的客户端设置。
CLI、IDE 扩展与网页版的差别
| 入口 | 代理从哪里来 | 排查重点 |
|---|---|---|
| Codex CLI(终端) | 环境变量 HTTPS_PROXY,或 TUN | 环节 1、5 |
| IDE 扩展(VS Code 等) | 编辑器自身的代理设置,部分版本继承环境变量 | 编辑器 http.proxy 设置;重启编辑器让变量生效 |
| 网页版 / Codex 云端任务 | 浏览器出口节点 | 与 ChatGPT 网页一致,看 ChatGPT 无法连接怎么办 |
IDE 扩展最容易被忽略的一点:从桌面图标启动的编辑器不会读取 shell 配置文件里的 export,需要在编辑器设置里单独配置代理,或者从已经导出变量的终端里用命令启动编辑器。
预防与节点选择
Codex 对网络的要求可以概括为一句话:出口 IP 稳定不变、晚高峰丢包低、能维持长连接。做 Codex 机场推荐与 Codex 稳定机场评估时,我们把「固定节点连续三次 20 分钟任务不中断」作为通过线。宇宙云 的 IEPL 专线与 极连云 的 AI 适配节点在这项测试里表现稳定,专线机场推荐的更多对比见 Codex 机场专题 与 专线线路栏目。日常建议:把代理变量写进 shell 配置文件、为 Codex 固定专用节点、每月在晚高峰复测一次 mtr。网络环境的整体要求见 Codex 网络环境分析。
总结
- Codex CLI 不读系统代理,终端里没有 HTTPS_PROXY 就等于没开代理,这是 unable to connect 的头号原因
- 登录授权要经过浏览器回调到本地端口,代理规则把回调域名分错方向就会卡在授权页
- 任务中途 stream disconnected 与节点丢包直接相关,关掉自动切换、固定专线节点最有效
- IDE 扩展走编辑器自己的代理设置,网页版只看浏览器出口,三者排查入口不同
常见问题
Q机场适合程序员吗?
适合,但对线路要求比普通浏览高:Codex、Claude Code 这类工具需要几十分钟不断的长连接,对丢包与空闲超时敏感。选节点时看晚高峰丢包率与长连接保持能力,而不是只看延迟。
Q机场能用 ChatGPT 吗?
能,Codex 与 ChatGPT 共用同一套账号与地区策略。网页版 ChatGPT 能正常使用的节点,Codex 登录授权通常也没问题;差别在于 Codex 还要求终端层面正确配置代理,以及节点能维持长连接。
Qv2rayN 连接失败怎么办?
v2rayN 用户跑 Codex 时,先在 v2rayN 里确认本地监听端口(默认 10808 socks、10809 http),终端里 HTTPS_PROXY 要指向 http 端口。节点本身连不上时,先在 v2rayN 里对节点做真连接测试,再回到终端。
Q机场晚高峰卡顿正常吗?
中转线路在晚高峰出现丢包与延迟上升是普遍现象,对网页影响不大,对 Codex 这类长连接工具却会直接表现为任务中断。专线节点的晚高峰表现明显更稳,这也是程序员用户更倾向专线机场的原因。
Q专线机场是什么意思?
指通过 IEPL 或 IPLC 专用链路出境、不经过公网拥塞段的线路。对 Codex 的意义是晚高峰丢包低、长连接不易被打断。价格高于中转线路,但对需要稳定跑长任务的用户来说是值得的。
参考资料与信息来源
- OpenAI Codex 文档 · CLI 安装、登录与配置说明以官方为准


