Codex 国内使用指南
OpenAI 的服务器在海外,中国大陆直连会超时。解决方案有两条路:本地代理(梯子走流量)和 API 中转(换一个国内可达的 base_url)。两条路可以单独用,也可以混用。
注意:本文仅介绍技术配置方法,请确保你的访问方式符合所在地区的相关法律法规。
先搞清楚你要解决什么问题
| 场景 | 推荐方案 |
|---|---|
| 有稳定的本地代理(Clash/V2Ray 等) | 直接配 HTTPS_PROXY 环境变量,最简单 |
| 没有代理,想用人民币充值 | 国内 OpenAI 兼容中转服务 + 修改 base_url |
| 公司/团队统一分发 API Key | 搭自有反代,统一管控 |
方案一:本地代理(HTTPS_PROXY)
Codex CLI 遵循标准 HTTP 代理环境变量,大多数本地代理工具(Clash、Surge、V2Ray 等)开启"允许局域网"或"系统代理"后,端口通常是 7890 或 1080:
# 临时设置(当前终端有效)
export HTTPS_PROXY="http://127.0.0.1:7890"
export HTTP_PROXY="http://127.0.0.1:7890"
codex "帮我写一个 README"
写入 ~/.bashrc 或 ~/.zshrc 可以永久生效:
echo 'export HTTPS_PROXY="http://127.0.0.1:7890"' >> ~/.bashrc
echo 'export HTTP_PROXY="http://127.0.0.1:7890"' >> ~/.bashrc
source ~/.bashrc
验证代理是否通:
curl -x http://127.0.0.1:7890 https://api.openai.com/v1/models
返回 JSON 说明代理正常工作。
**Codex App(桌面客户端)**不读环境变量,它直接走系统代理:
- macOS:系统设置 → 网络 → 选中正在用的网络 → 详细信息 → 代理 → 勾选 HTTPS 代理,填
127.0.0.1:7890 - Windows:设置 → 网络和 Internet → 代理 → 手动代理设置 → 打开,填
127.0.0.1:7890
改完系统代理后重启 Codex App 生效。
方案二:API 中转(修改 base_url)
中转服务的原理是在境外架一个 OpenAI API 反代,给你一个国内可达的地址和兼容 Key。
config.toml 完整写法
Codex CLI 的配置文件路径:
- macOS / Linux:
~/.config/codex/config.toml - Windows:
%APPDATA%\codex\config.toml
项目级配置优先级更高,放在项目根目录的 codex.toml 即可。
中转配置的核心是两个字段:base_url 和 api_key,放在 [providers.openai] 节下:
[providers.openai]
base_url = "https://your-proxy.example.com/v1"
api_key = "sk-xxxxxxxxxxxx"
如果中转服务使用自定义 provider 名称(非 openai),需要同时声明顶层的 model_provider,并让 provider 段名保持一致(大小写完全匹配):
model_provider = "myproxy"
model = "gpt-4.1"
[model_providers.myproxy]
name = "myproxy"
base_url = "https://your-proxy.example.com/v1"
wire_api = "responses"
常见坑:
model_provider = "myproxy"和[model_providers.myproxy]的名字必须一字不差,包括大小写,否则 Codex 无法识别,直接回落到默认 OpenAI 地址。
修改配置后重启终端(Windows 重启命令提示符)使其生效。
环境变量方式(不改配置文件)
export OPENAI_API_BASE="https://your-proxy.example.com/v1"
export OPENAI_API_KEY="sk-xxxxxxxxxxxx"
环境变量的优先级低于 config.toml,两者同时存在时 config.toml 的值会覆盖环境变量。
Codex IDE 扩展代理配置
VS Code 的 Codex 扩展会读 VS Code 本身的代理设置:
// settings.json
"http.proxy": "http://127.0.0.1:7890",
"http.proxyStrictSSL": false
或者在 VS Code 中打开命令面板 → Open User Settings (JSON) 添加上面两行。
常见问题
Q:CLI 报 connection refused 或 timeout?
首先确认本地代理进程在跑,端口没被防火墙拦截。用 curl -x 测试(见方案一)。如果 curl 通但 Codex 不通,检查 HTTPS_PROXY 环境变量是否真的生效:
echo $HTTPS_PROXY
Q:配了 base_url 但还是连 api.openai.com?
- 检查
config.toml的路径是否正确 - 检查
model_provider和[model_providers.xxx]的名字是否完全一致 - 有没有同时设置了
OPENAI_API_BASE环境变量指向旧地址(会被 config.toml 覆盖,但反过来不会)
Q:中转服务的 API Key 和 OpenAI 官方 Key 一样用吗?
格式上一样(通常都是 sk- 开头),但是两者不能混用——官方 Key 必须搭配 api.openai.com,中转 Key 必须搭配中转的 base_url。
Q:有推荐的中转服务吗?
本站不推荐或背书任何具体中转服务商。可以在 V2EX、掘金开发者社区搜索近期评价,选择近期有人反馈可用、有退款机制的服务,注意不要绑定过多额度。