Codex CLI 的网络问题九成出在终端代理层:终端不会继承浏览器代理,必须设置 HTTPS_PROXY 环境变量或开启 TUN 模式。用一条命令定位故障层——curl -I https://chatgpt.com:超时说明代理没生效;返回 403 说明代理通了但节点 IP 被拒;返回 200 说明网络层正常,间歇性超时要查晚高峰丢包与节点自动切换。
目录
用一条命令定位故障层
排查前先分层,不要盲目换节点:
curl -I https://chatgpt.com
| 结果 | 含义 | 下一步 |
|---|---|---|
卡住 / 超时 / Connection refused | 终端没走代理 | 本文第二节 |
403 / 验证页面 | 代理通了,节点 IP 被拒 | 换 AI 分组节点 |
200 / 301 | 网络层正常 | 查间歇性问题(第四节) |
让终端真正走上代理
方案 A:环境变量(精确控制)
export HTTPS_PROXY=http://127.0.0.1:7890
export HTTP_PROXY=http://127.0.0.1:7890
- 端口以客户端为准:Clash Verge 混合端口默认 7897,v2rayN 为 10809。
- 写入
~/.zshrc/~/.bashrc才能对新终端窗口生效。 - Windows PowerShell 语法不同:
$env:HTTPS_PROXY = "http://127.0.0.1:7897"。
方案 B:TUN 模式(一劳永逸)
在 Clash Verge 或 sing-box 中开启 TUN,虚拟网卡接管全部流量,终端、编辑器、Git 全部自动走代理。配置步骤见 Clash Verge 使用教程。Windows 上注意安全软件可能拦截虚拟网卡。
两个特殊环境
- WSL2:
127.0.0.1指向子系统自己,代理地址要写宿主机 IP;TUN 模式可以绕过这个坑。 - SSH 到远程服务器跑 CLI:远程机器需要自己的代理出口,本机代理帮不上忙;确认远程出口 IP 在 OpenAI 支持地区。
间歇性超时的两大元凶
配置正确但时好时坏,按顺序检查:
- 晚高峰丢包:21:00 前后
ping -c 100节点地址,丢包 > 1% 说明中转线路拥塞,换 IEPL / IPLC 专线节点。 - IP 漂移:策略组开着自动测速,任务中途切换节点 → 会话验证失败。固定节点、关闭自动切换,规则写法见 Codex 在国内怎么用。
稳定配置清单
- TUN 模式开启,或环境变量写入 shell 配置文件
- OpenAI 域名固定到单一美国专线节点
- 策略组自动测速 / 故障转移关闭
- 晚高峰 ping 丢包 < 1%
- 浏览器与终端使用同一出口(登录回调需要)
登录环节的问题(回调失败、账号验证)单独见 Codex 登录失败怎么办;运行中掉线的深入分析见 Codex 长时间运行为什么容易掉线。
常见问题
环境变量设置了为什么还是连不上?
三个常见坑:端口写错(以客户端实际端口为准,Clash Verge 默认 7897)、只设了 HTTP_PROXY 没设 HTTPS_PROXY、在新开的终端窗口里变量没有生效(需要重新 export 或写入 shell 配置文件)。
WSL 里的 Codex CLI 怎么走代理?
WSL2 中 127.0.0.1 指向子系统自身,需要把代理地址指向 Windows 宿主机 IP(cat /etc/resolv.conf 中的 nameserver),或直接在客户端开启 TUN 模式。
TUN 模式和环境变量选哪个?
追求省心选 TUN(所有进程自动走代理,无需逐个配置);只想让终端走代理、其他流量直连,用环境变量更精确。
CLI 间歇性超时但配置都正确?
看两个方向:晚高峰丢包(换专线节点)与策略组自动切换导致 IP 变化(固定节点并关闭自动测速)。