使用指南 · Codex 代理

Codex 怎么设置代理(Mac)

Codex 的网络代理在终端里用环境变量设置,config.toml 里没有对应的代理项,它管的是模型提供方和 API 地址。下面讲终端怎么设、配置文件里哪些别混淆,以及怎么用 TUN 不设变量也走代理。

简短回答

Codex 官方文档没有单独的代理设置项;在终端导出 HTTPS_PROXY 后,Codex CLI 0.159.3 实测会经该 HTTP 代理出网。config.toml 管的是 API 地址。

出处OpenAI 官方文档:Codex Advanced Configuration

先判断你的情况:终端、桌面应用、已装 Clash,还是想改 API 地址

按问题选入口
你的情况推荐做法要注意
在终端运行 codex(CLI)启动前 export HTTPS_PROXY,见下一节本文只在 Mac 上实测了终端 CLI;官方文档没有写 SOCKS,建议填 HTTP 端口
Codex 的桌面应用或 IDE 扩展优先用 TUN 接管,不依赖应用读不读变量本文没有逐一验证它们是否读取环境变量
已经装了 Clash、Surge 之类的客户端把它的 HTTP 端口或混合端口填进变量,或让它开启 TUN只开系统代理时,终端里的 codex 不一定走代理
想换 API 地址(中转、网关)改 config.toml 的 base_url,这不是网络代理见下文「config.toml 里有代理设置吗」

终端里怎么设置 Codex 代理配置:HTTPS_PROXY

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"

codex
  1. 确认代理客户端的 HTTP 端口

    在你的代理客户端里找 HTTP 端口或混合端口,下面以 127.0.0.1:7890 为例。

  2. 在终端导出变量并启动 codex

    变量要在启动 codex 之前设置,只对当前终端有效;写进 ~/.zshrc 可以长期生效。

  3. 在代理端确认

    我们在 Mac 上用 Codex CLI 0.159.3 做过验证:把 HTTPS_PROXY 指向一个只记录请求的本地端口,Codex 向它发出了对 chatgpt.com:443 的 CONNECT 请求。这是我们自己的实测,OpenAI 官方文档没有写这一点。

config.toml 里有代理设置吗:它管的是 API 地址

Codex 的本地状态默认放在 ~/.codex(由 CODEX_HOME 决定),配置文件是 ~/.codex/config.toml。官方文档里这个文件的 openai_base_url 和 model_providers.<id>.base_url,是把 Codex 指向某个 LLM 代理、路由器或网关的 API 地址,不是让 Codex 自己走你的网络代理。

配置里还有 features.network_proxy,官方描述为给沙箱命令启动的网络代理,实验性,默认关闭。它是沙箱里命令的访问策略,不是 Codex 出网时用的代理。

所以遇到连不上的问题,先分清两件事:网络不通用上一节的环境变量或 TUN;想换 API 地址才改 config.toml。

# ~/.codex/config.toml:把内置 OpenAI 提供方指向另一个地址
openai_base_url = "https://us.api.openai.com/v1"

# 或者自定义一个提供方
model_provider = "proxy"

[model_providers.proxy]
name = "OpenAI using LLM proxy"
base_url = "http://proxy.example.com"
env_key = "OPENAI_API_KEY"

Codex 代理规则:只让 Codex 走代理,其余直连

终端里的环境变量只作用于设置了它的那个进程,其他程序不受影响。想让整台 Mac 都走代理时,用 TUN:sing-box 的 TUN 入站打开 auto_route 后,会把默认路由指向虚拟网卡,进程不需要读取任何代理变量。

这时要靠规则决定哪些流量走代理。Pax 的应用分流只能选 .app,不能选 codex 这样的命令行程序,所以只让 Codex 走代理要用域名规则。先在流量监控里看 Codex 实际访问了哪些域名,再把这些域名指向代理线路。域名规则对所有访问这个域名的应用都生效,不只是 Codex。

用 Pax 怎么做:不设环境变量,让 Codex 走代理

Pax Connect 是基于 sing-box 的 Mac 代理客户端,让 Claude Code、Codex 无需环境变量即可走代理,配置中转 API,并在本机统计 Token 用量与费用。App 界面目前只有中文,Pax 不提供线路,需要自己的节点或订阅。

  1. 导入自己的线路

    在「线路管理」里导入已有的节点或订阅,选定要用的一条。

  2. 选择 TUN 并开启代理

    代理模式选 TUN,开启时按提示完成管理员授权。之后不需要再设 HTTPS_PROXY。

  3. 在终端运行 codex 并发一条消息

    让它产生新连接。

  4. 到「流量监控 → 概览」核对

    Pax 能识别 Codex CLI 进程,按应用查看可以看到它的连接、目标域名、实际线路和最近命中的规则。进程名按安装位置识别,目前覆盖 npm 全局安装的 @openai/codex;识别不到时,用目标域名对照。

流量监控概览,按应用显示实际连接、最近命中规则、延迟、连接数和传输量。
打开「流量监控 → 概览」,从应用、目标和实际去向核对连接。真实 Pax Demo 界面 · 内存模拟数据 · 中文 UI · 2026-11-11 截图
  1. 选择观察维度

    顶部按应用、域名或系统与进程查看,再选择时间范围。

  2. 对照规则与去向

    「实际连接」与「最近命中规则」分开读,不能只看代理开关。

  3. 查看明细

    从一行继续打开详情;字节、连接数与延迟不等于 HTTPS 对话正文。

验证与排查:Codex 代理问题怎么查

先看代理客户端自己的连接日志里有没有 Codex 的请求;用 Pax 就看「流量监控 → 概览」里 Codex CLI 的连接和实际线路。两边对得上,说明网络这一层是通的。

网络通了不等于账号可用。登录状态、套餐、API Key 或中转地址的问题,不会因为代理而消失,需要从账号和 config.toml 里的地址上排查。

常见症状与处理
症状常见原因怎么处理
终端里反复出现 Reconnecting... waiting for network代理地址不通,或代理端返回了错误(我们用一个拒绝连接的本地端口复现过)确认客户端已启动、端口正确、地址带 http:// 前缀
export 之后还是直连变量没有在启动 codex 的那个终端里生效在同一个终端里执行 echo $HTTPS_PROXY,再重新运行 codex
只想让 Codex 走代理,浏览器也被改了域名规则对所有应用生效收窄域名范围,先在流量监控里确认 Codex 实际用到的域名
能连上,但提示登录、额度或权限问题代理成功不等于账号可用检查登录方式与 config.toml 里的 API 地址

常见问题

codex 代理配置怎么写?

在终端里先执行 export HTTPS_PROXY=http://127.0.0.1:7890,再运行 codex。~/.codex/config.toml 里没有对应的代理项,别把 base_url 当成网络代理。

codex 代理问题怎么排查?

先在代理客户端或 Pax 的流量监控里确认有没有 Codex 的连接。没有,说明变量没生效或没有 TUN 接管;有,再检查账号和 config.toml 里的 API 地址。

codex 代理规则怎么设?

用 TUN 接管整机流量,再用域名规则指定哪些域名走代理。先在流量监控里看 Codex 实际访问的域名。Pax 的应用分流只能选 .app,不能直接选 codex 命令行程序。

codex 支持 socks5 代理吗?

官方文档没有说明,我们也没有验证。保险的做法是填客户端的 HTTP 端口或混合端口,或者用 TUN。

让 Pax,来到你的 Mac。

获取 Mac 安装包。安装前请查看系统要求和首次打开说明。

macOS 26+ · Apple Silicon

让 Pax,来到你的 Mac。

获取 Mac 安装包。安装前请查看系统要求和首次打开说明。

下载 Mac 版

macOS 26+ · Apple Silicon

系统要求与安装说明 ↗
真实 Pax Demo 界面 · 内存模拟数据

2026-11-11 截图,App 为中文界面。示例数字不代表实测或账单,点开放大。