站长自营 API 中转

正在配置代理或 API 中转?可以把模型接口统一到一个网关里

系统代理负责让客户端连得上,API 中转负责统一 Base URL、Key、余额和多模型路由。ZZSwitch 是我自己运营的统一 API 网关,适合 OpenCode / Claude Code / Codex 等工具接入。

Codex 国内使用指南

OpenAI 的服务器在海外,中国大陆直连会超时。解决方案有两条路:本地代理(梯子走流量)和 API 中转(换一个国内可达的 base_url)。两条路可以单独用,也可以混用。

注意:本文仅介绍技术配置方法,请确保你的访问方式符合所在地区的相关法律法规。

先搞清楚你要解决什么问题

场景 推荐方案
有稳定的本地代理(Clash/V2Ray 等) 直接配 HTTPS_PROXY 环境变量,最简单
没有代理,想用人民币充值 国内 OpenAI 兼容中转服务 + 修改 base_url
公司/团队统一分发 API Key 搭自有反代,统一管控

方案一:本地代理(HTTPS_PROXY)

Codex CLI 遵循标准 HTTP 代理环境变量,大多数本地代理工具(Clash、Surge、V2Ray 等)开启"允许局域网"或"系统代理"后,端口通常是 78901080

# 临时设置(当前终端有效)
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_urlapi_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

  1. 检查 config.toml 的路径是否正确
  2. 检查 model_provider[model_providers.xxx] 的名字是否完全一致
  3. 有没有同时设置了 OPENAI_API_BASE 环境变量指向旧地址(会被 config.toml 覆盖,但反过来不会)

Q:中转服务的 API Key 和 OpenAI 官方 Key 一样用吗?

格式上一样(通常都是 sk- 开头),但是两者不能混用——官方 Key 必须搭配 api.openai.com,中转 Key 必须搭配中转的 base_url

Q:有推荐的中转服务吗?

本站不推荐或背书任何具体中转服务商。可以在 V2EX、掘金开发者社区搜索近期评价,选择近期有人反馈可用、有退款机制的服务,注意不要绑定过多额度。


相关文档

站长自营 API 中转

ZZSwitch API 中转

统一 Base URL、Key 和余额。

打开 ZZSwitch