跳到主要内容

Codex 连接失败怎么办?终端代理、长连接与 API 域名排查

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

发布于 约 4 分钟 · 1705 字进阶
Codex 连接失败排查封面

直接答案

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、429curl 返回码 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%,或者任务中断时间与丢包高峰重合,就是线路问题,换节点。处理顺序:

  1. 关闭「自动选择」「故障转移」「负载均衡」类策略组,手动固定一个节点。
  2. 优先选专线节点,中转线路在晚高峰丢包上升最明显。
  3. 同一节点连续三次长任务都不断,再把它写进规则固定给 openai.com 相关域名。
  4. 仍然断开的,对照 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 的意义是晚高峰丢包低、长连接不易被打断。价格高于中转线路,但对需要稳定跑长任务的用户来说是值得的。

参考资料与信息来源

相关 AI 工具专题