Codex CLI 默认直连网络。在国内网络环境或企业内网中,通常需要通过 HTTP 代理(Clash、Surge、Zscaler 等)访问外网。
代理机制 链接到标题
Codex CLI 的 HTTP 客户端(Rust/reqwest)读取以下环境变量:
HTTP_PROXY/http_proxy— HTTP 代理地址HTTPS_PROXY/https_proxy— HTTPS 代理地址NO_PROXY/no_proxy— 绕过代理的地址列表ALL_PROXY/all_proxy— 兜底代理
优先级:HTTPS_PROXY > HTTP_PROXY > ALL_PROXY。
配置方式 链接到标题
推荐:.env 文件
链接到标题
Codex 启动时自动加载 ~/.codex/.env,将其中定义的环境变量注入进程。
HTTP_PROXY=http://127.0.0.1:7890
HTTPS_PROXY=http://127.0.0.1:7890
NO_PROXY=localhost,127.0.0.1,.lan,内网 IP 段
优点:不污染 shell 配置,只对 Codex 生效,与 opencode 等工具兼容。
备选:Shell 环境变量 链接到标题
直接写在 ~/.zshrc 或 ~/.bashrc 中:
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
export NO_PROXY=localhost,127.0.0.1,.lan,内网 IP 段
影响所有命令行工具,适合全局已配代理的场景。
NO_PROXY 注意点 链接到标题
reqwest 对 NO_PROXY 的域名匹配规则和浏览器不完全一致。如果代理拦截了本应绕过的请求,Codex 会返回 502。
经验:内网服务直接在 NO_PROXY 中写 IP 地址和网段,避免依赖主机名解析后匹配。 系统代理(如 Clash)的 ExceptionsList 也要同步配置 IP 段规则。
对于 macOS 上的系统级代理,ExceptionsList 中的 192.168.0.0/16、10.0.0.0/8 等段能确保内网流量不经过代理,但仅在请求使用 IP 而非主机名时生效。
验证 链接到标题
确认代理环境变量已加载:
env | grep -i proxy
确认内网服务直连正常(返回模型列表即为绕过成功):
curl -s http://内网服务器:38440/v1/models | head -c 100
启动 Codex(需在有 git 仓库的目录下运行):
cd /path/to/project
codex
参考 链接到标题
- opencode 同样使用
HTTP_PROXY=http://127.0.0.1:7890配合相同的NO_PROXY列表,配置可保持一致 - Codex 官方文档:developers.openai.com/codex