一、国内装 Codex 为什么难
OpenAI Codex CLI 是目前最强的终端 AI 编程工具之一,能直接在你的终端里自主写代码、跑测试、修 bug。但国内开发者要装上它,会遇到三层障碍:网络墙、OpenAI 的 IP 风控、ChatGPT 登录困难。
本文交付物
一套经过实测的国内 Codex CLI 安装方案,包含代理节点选择、免 API Key 的 ChatGPT 账号登录技巧,以及完整配置流程。读完后你能在本机跑起 Codex,不花一分钱 API 费用。
官方提供了三种安装方式:npm 全局安装、Homebrew、官方脚本。其中官方脚本走 chatgpt.com/codex/install.sh,在国内基本打不开。npm 方式走 registry.npmjs.org,国内可达,是首选。
二、代理节点的选择陷阱
很多人以为"能上 YouTube 就能用 OpenAI",这是最大的误区。YouTube 不做 IP 风控,OpenAI 做。你的节点能看 4K 视频,不代表能登录 ChatGPT。
实测三个不同节点,结果如下:
| 节点 | 地区 | IP 类型 | chatgpt.com | api.openai.com |
|---|---|---|---|---|
| 某 VPS 商 A | 新加坡 | 机房 IP | 403 | 421 |
| 某 VPS 商 B | 美国 | 机房 IP | 403 | 421 |
| 某 VPS 商 C | 台湾 | 机房 IP | 403 | 401(可用) |
关键结论
机房 IP(VPS 自建、廉价机场)基本都会被 chatgpt.com 拦截(403)。但 api.openai.com 的风控更宽松,部分机房 IP 能调通。香港节点完全不支持,OpenAI 明确将其列入不支持地区。
住宅 IP、机场里标注"解锁 ChatGPT/OpenAI"的专线节点、部分 IPLC 线路。判断方法:curl 测试 chatgpt.com 返回 200 而非 403。
廉价 VPS 自建节点、免费 VPN、共享人数过多的大路货。主机名暴露 VPS 身份的(如 orangevps.com)几乎必被风控。
三、两个域名的风控差异
这是本文最核心的发现:chatgpt.com 和 api.openai.com 是两套完全不同的风控策略。理解这一点,就能找到在国内用 Codex 的钥匙。
403 和 401 是本质区别:403 是门都没进(IP 被风控),401 是进门了但没钥匙(只是没带凭证)。
四、安装 Codex CLI
前提:Node.js 18 以上(建议 22+)。macOS 用 Homebrew 装:brew install node。
# 全局安装 Codex CLI npm install -g @openai/codex # 国内网络慢可加镜像 npm install -g @openai/codex --registry=https://registry.npmmirror.com # 验证安装 codex --version # 应输出 codex-cli 0.145.0 或更高
坑:PATH 警告
安装后可能出现 WARNING: could not create PATH aliases。不影响使用,npm 全局 bin 已在 PATH 里,codex 命令能正常调用。
五、免 API Key 登录方案
Codex 支持两种认证:ChatGPT 账号登录(免 API Key)和 API Key 登录。ChatGPT 账号登录更划算——免费版也能用,不需要单独充值 API 额度。
但问题在于:正常的 ChatGPT 登录流程需要浏览器打开 chatgpt.com 授权,而你的节点可能打不开。解决方案是 codex-auth-helper——一个开源 Chrome 扩展,能把浏览器里的 ChatGPT 会话凭证导出成 Codex 需要的 auth.json 文件。
在任何能登录 chatgpt.com 的环境(哪怕一次),用扩展读取已登录的会话 Cookie,合成 Codex 规范的 auth.json(含 JWT 仿真 id_token)。纯本地处理,不上传任何服务器。
下载 zhishile/codex-auth-helper 仓库,Chrome 加载 extension 目录,确保浏览器已登录 ChatGPT,点扩展图标,生成并保存 auth.json,放到 ~/.codex/auth.json。
# 1. 下载 codex-auth-helper git clone https://github.com/zhishile/codex-auth-helper.git # 2. Chrome 打开 chrome://extensions/ # 3. 开启右上角"开发者模式" # 4. 点"加载已解压的扩展程序",选 extension 文件夹 # 5. 在能登录 ChatGPT 的浏览器里,点扩展图标 # 6. 点"生成并保存 auth.json" # 7. 把下载的 auth.json 放到 Codex 配置目录 mkdir -p ~/.codex cp ~/Downloads/auth.json ~/.codex/auth.json
安全说明
codex-auth-helper 只声明 downloads 和 chatgpt.com 两个权限,代码开源可审查。生成的 auth.json 包含你的会话凭证,不要泄露或上传到任何服务器。凭证中的 IP、邮箱、Token 等敏感信息在本文中均已打码。
六、配置代理与验证
Codex 走 api.openai.com,需要代理把请求转发到能通的地区。把代理变量写入 shell 配置,新开终端自动生效。
# 追加到 ~/.zshrc(macOS 默认 shell) # 根据你的代理软件端口修改,常见:1087/7890/1080 echo 'export https_proxy=http://127.0.0.1:1087' >> ~/.zshrc echo 'export http_proxy=http://127.0.0.1:1087' >> ~/.zshrc echo 'export all_proxy=socks5://127.0.0.1:1080' >> ~/.zshrc # 让配置生效 source ~/.zshrc # 验证代理通不通(返回 401 = 正常) curl -sS -o /dev/null -w "%{http_code}\n" https://api.openai.com/v1/models
| 返回值 | 含义 | 处理 |
|---|---|---|
| 401 | 代理通了,只是没带凭证 | 可以启动 Codex |
| 000 | 代理没开或网络断 | 检查代理软件是否连接 |
| 403 | IP 被 OpenAI 风控 | 换节点,找住宅 IP |
验证 Codex 登录状态:
# 启动 Codex,日志会显示认证信息 codex exec "say hello" # 日志出现 auth_mode="Chatgpt" 和 user.email="****@gmail.com" 即成功
七、日常使用速查
# 交互模式(最常用) codex # 单次执行 codex exec "你的指令" # 在项目里用(自动识别 git 仓库) cd ~/Projects/your-project && codex # 让 Codex 能直接改文件 codex --sandbox workspace-write # 完全自动模式(慎用) codex --approval-policy always --sandbox workspace-write
第一次使用建议
先在测试目录试:mkdir ~/codex-test && cd ~/codex-test && codex,输入"创建一个 hello.py,打印当前时间"。确认能生成文件后,再在真实项目里用。善用 git,不满意就 git checkout . 回滚。
八、续期与故障排查
auth.json 过期续期
auth.json 里的 token 大约 10 天后过期。过期后 Codex 会报 401 Unauthorized。续期方法:重新在浏览器登录 chatgpt.com,用 codex-auth-helper 扩展重新导出,覆盖 ~/.codex/auth.json。
常见报错排查
| 报错 | 原因 | 解法 |
|---|---|---|
| Connection timed out | 代理没开或断网 | 检查代理软件是否连接 |
| HTTP 403 | IP 被 OpenAI 风控 | 换住宅 IP 节点 |
| HTTP 401 | auth.json 过期 | 重新导出 auth.json |
| Operation not permitted | 沙箱权限不足 | 在真实终端运行,不在受限环境里跑 |
能看 YouTube 不等于能用 OpenAI。机房 IP 看 YouTube 毫无压力,但 OpenAI 会主动风控机房 IP。选节点时优先找"解锁 ChatGPT"标签的线路。
ChatGPT 桌面 App 要不要装
不装完全不影响 Codex 编程。Codex 走 api.openai.com,不依赖 ChatGPT App。桌面 App 提供 computer use、浏览器联动等高级功能,但安装和登录都需要能解锁 chatgpt.com 的节点。
返回技艺录