核心结论
Codex CLI 不会自动使用“系统代理”。最省心的方式是开启代理客户端的 TUN 模式;不想开 TUN 时,在 shell 配置中设置 HTTPS_PROXY / HTTP_PROXY 指向本地代理端口。频繁出现 stream disconnected 时,固定使用 OpenAI 支持地区的稳定节点,并关闭自动测速切换。
操作步骤概览:为 Codex CLI 配置代理
约 5 分钟- 1
确认代理端口
在代理客户端设置中查看混合代理端口,例如 Clash Verge Rev 默认 7897。
- 2
选择配置方式
开启 TUN 模式,或在 shell 配置文件中写入 HTTPS_PROXY 与 HTTP_PROXY 环境变量。
- 3
重新打开终端
新开一个终端窗口使环境变量生效,用 curl 测试 api.openai.com 是否可达。
- 4
登录并运行 Codex
运行 codex 并按提示使用 ChatGPT 账号或 API Key 登录,开始任务。
Codex 的网络问题和 ChatGPT 网页完全不同。浏览器能打开 chatgpt.com,并不代表终端里的 codex 能连上 OpenAI。本文先讲清 Codex 的网络链路,再按系统给出配置方法。
Codex 的三段网络请求
- 安装:通过 npm(
npm i -g @openai/codex)或 Homebrew 下载; - 登录:运行
codex后选择用 ChatGPT 账号登录,会打开浏览器完成授权,然后回调本机端口;也可以使用 API Key; - 运行:Codex 持续向 OpenAI API 发送请求并接收流式输出,一次任务可能持续很久。
其中第 3 段最关键:它需要支持地区的落地 IP + 长时间不中断的连接。
为什么“系统代理”对 Codex 无效
代理客户端的“系统代理”只是在操作系统里登记了一个代理地址,浏览器等程序会主动读取它。命令行程序通常不会读取这个设置,而是看环境变量 HTTPS_PROXY / HTTP_PROXY。所以你需要二选一:
| 方式 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| TUN 模式 | 虚拟网卡接管所有流量 | 一次开启,所有程序生效 | 需要管理员权限;与部分 VPN 软件冲突 |
| 环境变量 | 告诉终端程序使用代理 | 可控、只影响终端 | 每种工具可能要单独配置 |
方式一:开启 TUN 模式(推荐)
以 Clash Verge Rev 为例:设置 → 虚拟网卡模式(TUN)→ 开启。Windows 首次使用需要先安装“服务模式”。开启后,终端、编辑器扩展、子进程都会按规则走代理。详见 Clash Verge Rev 使用教程。
方式二:设置环境变量
先在代理客户端中确认混合代理端口(Clash Verge Rev 默认 7897,其他客户端常见 7890),以下以 7897 为例。
macOS / Linux(zsh 或 bash)
编辑 ~/.zshrc 或 ~/.bashrc,追加:
export HTTPS_PROXY=http://127.0.0.1:7897
export HTTP_PROXY=http://127.0.0.1:7897
export NO_PROXY=localhost,127.0.0.1,::1
保存后执行 source ~/.zshrc,或新开一个终端窗口。
Windows PowerShell
临时生效(当前窗口):
$env:HTTPS_PROXY = "http://127.0.0.1:7897"
$env:HTTP_PROXY = "http://127.0.0.1:7897"
$env:NO_PROXY = "localhost,127.0.0.1"
永久生效可在“系统属性 → 环境变量”中添加同名用户变量。
WSL2
在 Windows 用户目录的 .wslconfig 中启用镜像网络后,WSL 内可以直接使用 127.0.0.1:
[wsl2]
networkingMode=mirrored
修改后执行 wsl --shutdown 重启 WSL。未启用镜像网络时,需要在代理客户端开启“允许局域网连接”,并把代理地址改为 Windows 主机 IP。
验证是否生效
curl -I https://api.openai.com/v1/models
能返回 HTTP 状态码(如 401,表示未带密钥但网络可达),说明网络通了;如果长时间无响应或连接被重置,说明代理没有生效或节点不可用。
npm 与 Git 的代理
安装和开发过程中还会用到 npm 和 Git,它们有各自的代理配置:
npm config set proxy http://127.0.0.1:7897
npm config set https-proxy http://127.0.0.1:7897
git config --global http.proxy http://127.0.0.1:7897
不再需要时用 npm config delete proxy、git config --global --unset http.proxy 移除。开启 TUN 模式时这些都不需要单独设置。
常见错误与解决
stream disconnected before completion
流式输出过程中连接被中断。按顺序处理:
- 关闭自动测速(url-test)分组,为 OpenAI 相关域名固定一个节点;
- 换延迟更稳定的节点或线路,晚高峰尤其明显;
- 检查代理客户端是否设置了过短的连接超时;
- 避免在任务运行中切换网络。
登录回调失败 / 一直等待授权
浏览器授权成功后,Codex 需要接收发往 localhost 的回调。确认 NO_PROXY 包含 localhost,127.0.0.1;如果使用 TUN 模式,确认本地回环地址没有被代理规则错误接管。
403 / unsupported_country_region_territory
落地 IP 不在 OpenAI 支持的地区。切换到日本、新加坡、台湾、美国等节点。
ECONNRESET / ETIMEDOUT
网络层连接被重置或超时:通常是代理未生效、节点故障或丢包严重。先用上面的 curl 命令验证。
更多错误含义见 AI 工具常见错误代码速查。
为 Codex 选机场的要点
- 有 OpenAI 支持地区的节点(日本、新加坡、台湾、美国);
- 晚高峰丢包率低,长连接稳定;
- 可以固定节点使用。
开发场景下专线和优质中转的优势非常明显。收录品牌在 Codex CLI 上的测试结果见 Codex 稳定机场。
参考资料与官方来源
产品政策与支持地区可能随时调整,请以官方页面最新内容为准。
常见问题
QCodex 可以用香港节点吗?
不可以。香港不在 OpenAI 支持的国家和地区列表中,请使用日本、新加坡、台湾、美国等地区节点。
Q设置了 HTTPS_PROXY,npm 安装还是很慢?
npm 有自己的代理配置,可以执行 npm config set proxy 与 https-proxy;也可以使用可用的 npm 镜像源安装,再通过代理运行 Codex。
Q登录时浏览器授权成功,但终端一直等待?
登录回调会访问本机的 localhost 端口。请确保 NO_PROXY 包含 localhost 和 127.0.0.1,避免本地回调被发往代理。
QWSL 里怎么使用 Windows 上的代理?
WSL2 开启镜像网络模式后可直接使用 127.0.0.1;否则需要在代理客户端中开启“允许局域网连接”,并使用 Windows 主机的 IP 作为代理地址。