快速回答
2026 年给 Codex 配代理,核心变化就一句话:Codex 新版本默认走 /v1/responses(Responses API),你的代理 / 网关 / 中转站必须能转发这个路径,否则会莫名其妙超时或 404。如果你不想碰这些坑,最省事的路是直接用 TeamoRouter——它原生支持 /v1/responses,模型层根本不需要代理。
最省事的 5 步清单(不想看原理,直接照做):
- 确认 Codex 版本与账号类型;
- 终端设置代理环境变量;
- npm / Git 走同一代理;
- 用 curl 验证连通性;
- 或干脆换 TeamoRouter 端点,跳过代理。
旧文是完整版,这篇只讲 2026 变化
本站的《Codex 代理配置完全指南》把终端、npm、Git、WSL2、IDE 五个层面的代理配置都讲全了,包含完整的 WSL2 宿主机转发函数和 IDE settings.json 示例。那篇是"从零到一";这篇是"2026 年新版本下有什么变化、怎么快速配好、会遇到什么新坑"——两篇配合读。
2026 年 Codex 代理配置有哪些变化
1. /v1/responses 新协议:代理必须会转发
2026 年的 Codex 默认调用的是 Responses API(/v1/responses),不再是旧的 /v1/chat/completions。这对代理配置有直接影响:
- 老的中转站 / 网关如果只实现了 chat/completions 转发,遇到
/v1/responses会直接 404 或超时; - 自建反向代理时,务必确认路由规则同时覆盖
/v1/responses(以及/v1/models等元数据路径); - Codex 有时会先探测
/v1/models再发请求,只转发 responses 而漏掉 models 同样会出问题。
这是 2026 年"代理配好了还是报错"最常见的新原因。
2. 配置方式:环境变量 + config.toml 双轨
2026 年的 Codex 支持两种接入方式:
方式 A:环境变量(最快)
export OPENAI_BASE_URL="https://api.teamorouter.cn/v1"
export OPENAI_API_KEY="sk-teamo-你的Key"
方式 B:config.toml 的 model_providers(更可控)
# ~/.codex/config.toml
model = "gpt-5.6-codex"
model_provider = "teamo"
[model_providers.teamo]
name = "TeamoRouter"
base_url = "https://api.teamorouter.cn/v1"
env_key = "TEAMO_API_KEY"
export TEAMO_API_KEY=sk-teamo-你的Key
注意:新旧版本对 base_url 变量名的兼容不完全一致,有的版本读 CODEX_BASE_URL、有的读 OPENAI_BASE_URL。2026 年推荐统一用 OPENAI_BASE_URL(新版标准),并在 codex --verbose 里确认实际请求地址。
3. 桌面版走系统网络,与终端不是一条路
Codex Desktop App 用的是系统网络配置,终端 CLI 只认环境变量。经常出现"App 超时、CLI 正常"或反过来。配置时两个通道要分别验证。
4. DNS 解析顺序:IPv4 优先
新版本在部分网络环境下会出现 getaddrinfo ENOTFOUND 或连接挂起,多为 IPv6 解析顺序导致。可加:
export NODE_OPTIONS=--dns-result-order=ipv4first
5. base_url 变量名的变迁:CODEX_BASE_URL → OPENAI_BASE_URL
老版本里,Codex 用 CODEX_BASE_URL 指向自定义端点。2026 年的新版逐步统一到 OpenAI 生态的标准变量 OPENAI_BASE_URL,原因是 Codex 底层就是 OpenAI 的 Responses API 客户端,直接复用同一套环境变量命名。
实际影响:
- 老教程 / 老配置里可能还在用
CODEX_BASE_URL,新版本可能不再读取; - 最稳妥的做法是两个都设置,让新旧版本都覆盖:
export OPENAI_BASE_URL="https://api.teamorouter.cn/v1"
export CODEX_BASE_URL="https://api.teamorouter.cn/v1"
export OPENAI_API_KEY="sk-teamo-你的Key"
- 设置后用
codex --verbose验证实际请求地址,别靠猜。
三条路线怎么选:直连、代理、网关
配置之前先想清楚走哪条路,能省掉一半的折腾:
| 路线 | 适用情况 | 优点 | 缺点 |
|---|---|---|---|
直连 api.openai.com |
网络环境无限制 | 零配置 | 国内基本不可用 |
| 终端 / 工具代理 | 已有稳定代理节点 | 不改 Codex 配置 | 多层配置,节点不稳定时反复折腾 |
| API 网关直连(TeamoRouter) | 国内网络、团队共享 | 免代理、一个端点、统一计费 | 需注册获取 Key |
判断标准:如果你已经有稳定的代理且不想换,走代理方案没问题;如果你的诉求是"少折腾",直接上网关。多数 2026 年新踩的坑(/v1/responses 404、DNS 解析、节点被限流)都发生在第二条路线上,网关路线把这些坑一次性绕开。
最省事的 5 步快速配置清单
第 1 步:确认版本与账号
codex --version
codex login status
知道自己是不是新版、走积分还是 API Key。
第 2 步:终端代理(走代理方案时)
export HTTPS_PROXY=http://127.0.0.1:7890
export HTTP_PROXY=http://127.0.0.1:7890
export NO_PROXY=localhost,127.0.0.1
7890 是 Clash 等工具的默认端口,按你的实际工具调整。加到 ~/.zshrc / ~/.bashrc 持久化。
第 3 步:npm 与 Git 同路
npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
第 4 步:验证连通性
curl -I --max-time 20 https://api.openai.com/v1/models
快速返回 401 = 网络通(401 是未授权,说明能到达);超时或 000 = 网络路径有问题。
第 5 步:或直接换 TeamoRouter,跳过代理
export OPENAI_BASE_URL="https://api.teamorouter.cn/v1"
export OPENAI_API_KEY="sk-teamo-你的Key"
codex
国内直连可达,不需要为模型层配代理。
验证方法:3 条命令定位问题
| 要验证什么 | 命令 | 结果判断 |
|---|---|---|
| 终端代理是否生效 | curl -I --max-time 20 https://api.openai.com/v1/models |
快 401 = 通;超时 = 不通 |
| 代理节点本身是否可用 | curl -x http://127.0.0.1:7890 -I --max-time 20 https://api.openai.com/v1/models |
401 = 节点可用;超时 = 换节点 |
| Codex 实际请求地址 | codex "hello" --verbose |
看日志里 base_url 是否为期望值 |
常见错误表(2026 版)
| 错误信息 | 可能原因 | 2026 年最可能的坑 | 解决 |
|---|---|---|---|
404 on /v1/responses |
网关/中转不支持 Responses API | 老中转只做了 chat/completions | 换原生支持 /v1/responses 的网关(如 TeamoRouter) |
connect ETIMEDOUT |
代理连接超时 | 代理地址/端口写错 | 检查 HTTP_PROXY 与工具端口是否一致 |
connect ECONNREFUSED |
代理服务未运行 | 代理工具没启动 | 启动代理 |
getaddrinfo ENOTFOUND |
DNS 解析失败 | IPv6 解析顺序 | export NODE_OPTIONS=--dns-result-order=ipv4first |
self signed certificate |
SSL 证书错误 | 代理中间人证书不被信任 | 换可靠节点,或仅测试时 NODE_TLS_REJECT_UNAUTHORIZED=0 |
read ECONNRESET |
连接被重置 | SNI 阻断 / 节点被限流 | 换节点,或改走网关直连 |
request timed out on /v1/responses |
请求未收到响应 | 网关不支持 responses 路径导致挂起 | 先 curl 验证路径,再换网关 |
捷径:用 TeamoRouter 后模型层根本不需要代理
这是 2026 年最值得推荐的一条路:TeamoRouter 原生支持 /v1/responses(Codex 协议),无需任何本地协议转换,端点国内直连。
- 不用为模型流量配
HTTP_PROXY/HTTPS_PROXY; - 不用担心中转站不支持新协议;
- 一个 Key 同时接 Codex / Claude Code / dsh / Gemini CLI,统一计费;
- 缓存命中率 >99%,响应极快,SLA 99.98%,5000 QPM;
- 国内支付宝按量充值,余额不过期,失败请求不计费。
注意:TeamoRouter 解决的是"模型 API 的国内访问",终端 / npm / Git 访问 GitHub 等仍按需配代理。
CI / 团队环境怎么配
如果 Codex 跑在 CI 或团队共享的 Runner 上,注意两点:
- 环境变量通过 CI 的 Secrets 注入:不要把 Key 硬编码进仓库。在 CI 配置里把
OPENAI_API_KEY设成 secret,OPENAI_BASE_URL设成 TeamoRouter 端点; - Runner 的网络路径可能和本机不同:CI Runner 通常在国内云主机上,直连 OpenAI 更容易超时。此时直接用 TeamoRouter 端点最省事,避免在 CI 里再配一层代理。
# 示例:GitHub Actions 环境变量
env:
OPENAI_BASE_URL: https://api.teamorouter.cn/v1
OPENAI_API_KEY: ${{ secrets.TEAMO_API_KEY }}
常见疑问(FAQ)
Q:2026 年 Codex 还用配 CODEX_BASE_URL 吗?
推荐统一用 OPENAI_BASE_URL。新旧版本变量名有差异,用 codex --verbose 确认实际请求地址即可。
Q:我的中转站不支持 /v1/responses,只改代理能修吗?
不能。协议不支持是网关侧问题,代理救不了。要么换支持 Responses API 的网关,要么自建时把 /v1/responses 路由加进去。
Q:WSL2 里怎么配最省事? 宿主机跑代理 + WSL2 里转发,或 WSL2 里直跑代理,两种方式的完整函数示例都在旧完整版文里。更省事的是在 WSL2 里直接配 TeamoRouter 端点,彻底绕开转发问题。
Q:桌面版超时但 CLI 正常? 桌面版走系统网络。先在系统设置里确认代理,再在 App 设置里直接填网关 base_url,让两个通道统一。
Q:用 TeamoRouter 还需要给 npm / Git 配代理吗? 看用途。模型 API 不再需要;但如果要访问 GitHub 等站点,npm / Git 层面的代理仍按需配置。
Q:为什么我照旧教程配了代理还是报 404?
大概率是网关不支持 /v1/responses。2026 年 Codex 默认走 Responses API,老的中转站如果只实现了 chat/completions,就会 404。确认网关原生支持 responses 协议,或换 TeamoRouter。
Q:自建反代要转发哪些路径?
至少覆盖 /v1/responses 与 /v1/models。Codex 常先探测 /v1/models 再发请求,漏掉 models 也会导致配置验证失败。
小结
2026 年配 Codex 代理,最大的变化就是 /v1/responses 协议对网关的新要求。5 步清单能快速配好走代理的方案;但更省事的是直接用 TeamoRouter,让模型层根本不经过代理。注册 TeamoRouter,免代理直连 + 多模型路由 + 统一计费一次搞定。