AI 工具进阶
Codex 代理配置:CLI、IDE 插件与云端网络指南
Codex CLI 和 IDE 插件需要让本机进程走代理,登录还依赖一个本地回调;云端任务则跑在 OpenAI 的服务器上,只要浏览器能正常打开 ChatGPT 即可。
文章目录
简要回答
Codex CLI 运行在终端,不跟随浏览器的系统代理,需要在启动前设置 HTTPS_PROXY 等代理变量,或开启客户端的 TUN 模式。登录时浏览器要访问本机 1455 端口完成回调,浏览器和终端最好走同一个节点;回调走不通时可以改用 codex login --device-auth 设备码登录。节点选美国、日本或新加坡,香港不可用。
Codex 的三种用法,网络要求不一样
OpenAI 的 Codex 现在有几种入口,网络上要关心的东西并不相同:
| 用法 | 请求从哪里发出 | 你需要做什么 |
|---|---|---|
| Codex CLI | 你电脑上的终端进程 | 让终端走代理,登录回调要通 |
| IDE 插件 | 编辑器里的插件进程 | 让编辑器进程走代理,最好用 TUN |
| Codex 云端 | OpenAI 的服务器 | 浏览器能打开 ChatGPT 即可 |
AI 工具通用的地区与 IP 原理见AI 工具网络环境指南,ChatGPT 网页端的节点选择见 ChatGPT 指南,这里集中讲 Codex 本地运行时的配置。
Codex CLI:让终端走代理
Codex CLI 不会读取浏览器的系统代理。最直接的办法是在启动前设置代理环境变量。下面示例里的 7897 只是举例,端口号是代理客户端的本地端口,例如 Clash Verge Rev 默认 7897、v2rayN 默认 10808,以你的设置为准。
macOS / Linux:
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
codex
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"
codex
需要长期生效时,把这几行写进 ~/.zshrc、~/.bashrc 或 PowerShell 的 $PROFILE。
用 TUN 模式省掉变量
TUN 模式在系统网络层接管流量,终端、IDE 插件、WSL 里的进程都能覆盖到,也能让浏览器和终端天然使用同一个出口。Clash 系客户端的开法见 Clash 教程,v2rayN 见 v2rayN 教程。开启 TUN 后建议关闭系统代理开关,并清掉终端里的代理变量,方便排查。
验证终端出口
在设置变量的同一个窗口执行 curl -s https://ipinfo.io(PowerShell 写 curl.exe),country 应显示节点所在地区。看到 CN 说明变量没生效,或者分流规则让 OpenAI 域名走了直连。
登录:回调与设备码
Codex 用 ChatGPT 账号登录时,会打开浏览器完成授权,再通过本机的回调地址把凭据交回 CLI。官方文档写明默认回调服务在 localhost:1455,本地网络设置拦截这个回调时登录就会失败。
先统一出口
浏览器和终端走同一个节点,开 TUN 是最简单的做法。授权页和终端出口不一致,是登录卡住的常见原因。
确认 localhost 不走代理
回调发生在本机,代理客户端的「绕过」列表里应包含 localhost 和 127.0.0.1,终端的
NO_PROXY也一样。回调走不通就换设备码
在 ChatGPT 的安全设置里启用设备码登录后,运行
codex login --device-auth,在任意浏览器里输入页面显示的代码即可,官方标注此功能为 beta。查看登录日志
官方文档说明,直接运行
codex login会在日志目录写入codex-login.log,登录失败时可以从这里找原因。
公司网络做了 TLS 解密时,官方给出的做法是在登录前把 CODEX_CA_CERTIFICATE 指向 PEM 格式的根证书;未设置时会退回读取 SSL_CERT_FILE。
IDE 插件与 WSL
Codex 的 VS Code 插件在编辑器内运行,网络请求由编辑器一侧的进程发出。最省事的办法是开启 TUN;不想开 TUN 的话,可以先在设置好代理变量的终端里用 code . 启动 VS Code,让它继承这些变量。
在 Windows 上通过 WSL2 使用时,Codex 运行在 Linux 环境里。WSL 中的 127.0.0.1 指向 Linux 自身,不是 Windows 宿主机,所以要么开 TUN,要么在代理客户端开启「允许局域网连接」后把地址换成宿主机的 IP。
节点、地区与 Claude Code 的区别
Codex 可用地区跟随 OpenAI 的支持范围,香港不可用,建议美国、日本、新加坡。它同样会进行持续数分钟的长连接任务,选节点时看丢包而不是只看延迟,并把 openai.com、chatgpt.com 等域名放进手动选择的固定策略组。
与 Claude Code 相比:两者都要求终端走代理、线路低丢包;Claude Code 对机房 IP 和频繁换区更敏感,Codex 更容易在浏览器回调这一步出问题。同一个合适的节点通常可以两边共用。机场选择见机场推荐。
常见报错
现象连接失败、请求超时
检查当前窗口的代理变量、curl 出口检查结果
终端没有走代理或端口填错。重新设置变量后再启动 codex,或改用 TUN。
现象浏览器授权后终端一直等待
检查浏览器与终端出口是否一致、localhost 是否被代理
统一出口后重试,仍不行就用 codex login --device-auth。
需要更详细的信息时,官方文档建议用 RUST_LOG=debug 提高日志级别后复现问题。
常见问题
Codex 和 Claude Code 能共用一个节点吗?
通常可以。两者都要求终端走代理、线路低丢包,美国、日本、新加坡节点一般都能同时满足。区别在于 Claude Code 对 IP 类型更敏感,Codex 更容易卡在登录回调。
用 Codex 云端任务也需要配置终端代理吗?
不需要。云端任务在 OpenAI 的服务器上执行,你这边只需要浏览器或 ChatGPT 客户端能正常访问。云端环境里的「互联网访问」设置控制的是容器能否联网,与你本地的代理无关。
远程服务器上没有浏览器,怎么登录 Codex?
官方文档给了三种办法:用 codex login --device-auth 设备码登录(需先在 ChatGPT 安全设置中启用);用 ssh -L 1455:localhost:1455 把回调端口转发到本地;或者在有浏览器的电脑上登录后,把 ~/.codex/auth.json 复制过去,这个文件要像密码一样保管。