Codex 代理配置完全指南:终端、npm、Git 及 WSL2 环境设置
在国内使用 Codex 进行 AI 编程时,代理配置是绕不开的一环。从终端环境变量到 npm 镜像源,从 Git 代理到 WSL2 网络模式,一个环节没配好,Codex 就可能卡在 "connecting" 状态。本文将系统梳理每个环节的配置方法,并介绍如何通过 TeamoRouter 大幅简化整个流程。
为什么 Codex 在国内需要代理配置?
Codex 底层通过 OpenAI API 与 GitHub 的 AI 服务通信。由于网络限制,直接连接往往不稳定甚至完全不可达。这就需要在多个层面配置代理:
- 终端层面:Codex CLI 发起 HTTP 请求的环境变量
- 包管理器层面:npm/pip 等工具安装依赖时的源设置
- Git 层面:Codex 拉取代码和推送变更时的网络通道
- IDE 层面:VS Code 等编辑器自身插件的网络配置
- WSL2 层面:Windows 子系统与宿主机网络的连通方案
简化方案:用 TeamoRouter 统一模型接入
在逐个排查代理配置之前,有一个更简洁的选择——直接使用 TeamoRouter 作为统一 API 网关。
TeamoRouter 提供了国内可直接访问的 API 端点,只需修改 Codex 的 baseUrl 配置即可。这样你完全不需要为 OpenAI API 配置代理,终端、npm、Git 等层面的代理仍然需要(用于访问 GitHub 等),但模型通信层面的代理复杂度大幅降低。
通过 TeamoRouter 接入,还可以同时兼容 Claude Code 和 Gemini CLI,一套配置,多个 Agent 工具共用。
核心优势:
- 缓存命中率 >99%,响应极快
- 浮动费率低至官方价格的 10%-20%
- SLA 99.6%,保障业务连续性
- 5000 QPM 配额,满足团队高频调用
- 100% 兼容 Agent API 协议,一行配置即用
为什么浏览器能访问,但 Codex 不行?
很多开发者发现浏览器可以正常访问 OpenAI,但 Codex 终端就是连不上。原因在于:
- 浏览器 使用了系统代理或 VPN 的全局代理,且 HTTP/HTTPS 流量都被正确处理
- Codex CLI 运行在终端环境中,默认不走系统代理,需要显式设置环境变量
- 浏览器有自动化的 PAC 代理脚本和 WebRTC 等回退机制,终端没有
- Codex 的 Node.js 运行时使用
http/https模块,需要HTTP_PROXY等环境变量才能走代理
理解了这一点,你就知道为什么终端代理配置是必须的了。
终端代理配置
终端代理是基础。在 shell 配置文件(~/.zshrc、~/.bashrc 或 ~/.bash_profile)中添加以下变量:
# HTTP/HTTPS 代理
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
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,::1,10.0.0.0/8,192.168.0.0/16
export no_proxy=localhost,127.0.0.1,::1,10.0.0.0/8,192.168.0.0/16
配置后执行 source ~/.zshrc 使生效,然后用以下命令验证:
# 验证代理是否生效
curl -I https://api.openai.com
# 查看当前代理设置
echo $HTTP_PROXY
echo $HTTPS_PROXY
注意:
127.0.0.1:7890是 Clash/ShadowSocks 等代理工具的默认端口,请根据你的实际代理工具调整。
临时为单个命令设置代理:
HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890 codex "你的提示词"
npm 代理配置
Codex 在运行时会自动安装依赖。如果 npm 不走代理,安装会非常慢甚至失败。
全局 npm 代理配置:
npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890
查看和删除代理配置:
# 查看
npm config get proxy
npm config get https-proxy
# 删除
npm config delete proxy
npm config delete https-proxy
npm 镜像源(推荐与代理配合使用):
# 使用淘宝镜像源
npm config set registry https://registry.npmmirror.com
# 恢复官方源
npm config set registry https://registry.npmjs.org
已验证的 npm 代理配置:
npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890
npm config set registry https://registry.npmmirror.com
Git 代理配置
Codex 在需要访问 GitHub 仓库时,Git 代理至关重要。
全局代理设置:
# HTTP/HTTPS 代理
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
# 查看
git config --global --get http.proxy
git config --global --get https.proxy
为特定域名设置代理(仅 GitHub):
git config --global http.https://github.com.proxy http://127.0.0.1:7890
git config --global https.https://github.com.proxy http://127.0.0.1:7890
取消代理:
git config --global --unset http.proxy
git config --global --unset https.proxy
WSL2 代理配置
WSL2 的网络环境比较特殊,需要额外处理。
方法一:宿主机代理转发
在 Windows 宿主机上运行代理工具(如 Clash),然后在 WSL2 中获取宿主机 IP:
# 在 WSL2 中配置
export host_ip=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
export HTTP_PROXY=http://$host_ip:7890
export HTTPS_PROXY=http://$host_ip:7890
将这段加入 WSL2 的 ~/.bashrc 实现自动配置:
# WSL2 自动代理
function set_proxy() {
export host_ip=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
export HTTP_PROXY=http://$host_ip:7890
export HTTPS_PROXY=http://$host_ip:7890
export http_proxy=http://$host_ip:7890
export https_proxy=http://$host_ip:7890
echo "Proxy set to $HTTP_PROXY"
}
function unset_proxy() {
unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy
echo "Proxy unset"
}
方法二:WSL2 中直接运行代理
在 WSL2 内直接安装 Clash 等代理工具,配置更为直接:
# 在 WSL2 中安装 clash
wget https://github.com/Dreamacro/clash/releases/...
# 配置完成后
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
IDE 代理配置
VS Code 代理设置:
在 VS Code 的 settings.json 中配置:
{
"http.proxy": "http://127.0.0.1:7890",
"http.proxyStrictSSL": false,
"http.proxySupport": "on"
}
或者在 VS Code 设置界面搜索 "proxy" 进行配置。
Codex base URL 配置
无论是否配置代理,都需要确保 Codex 能正确连接到 API 端点。如果使用 TeamoRouter,配置更简单:
# 设置 baseUrl 为 TeamoRouter 端点
export CODEX_BASE_URL=https://api.teamorouter.com/v1
# 设置 API Key
export CODEX_API_KEY=your-teamorouter-key
这样就不需要为 OpenAI API 单独配置代理了,TeamoRouter 端点在国内可直接访问。
常见错误排查
| 错误信息 | 可能原因 | 解决方法 |
|---|---|---|
connect ETIMEDOUT |
代理连接超时 | 检查代理地址和端口是否正确 |
connect ECONNREFUSED |
代理服务未运行 | 启动代理工具 |
self signed certificate |
SSL 证书错误 | 设置 NODE_TLS_REJECT_UNAUTHORIZED=0(仅测试) |
network read timeout |
网络不稳定 | 切换更稳定的代理节点 |
getaddrinfo ENOTFOUND |
DNS 解析失败 | 设置 export NODE_OPTIONS=--dns-result-order=ipv4first |
总结
代理配置是国内使用 Codex 的基本功。终端、npm、Git、WSL2、IDE 五个层面逐一配置,确保开发环境畅通。而 TeamoRouter 的引入可以从根本上简化模型通信层面的代理问题,让你只需专注写代码,不必操心网络配置。
常见问题 (FAQ)
Q: 配置了代理但仍然超时怎么办?
A: 首先确认代理工具是否正常运行(curl -I https://www.google.com),然后检查 HTTP_PROXY 端口是否与代理工具一致。
Q: npm 安装依赖太慢怎么办?
A: 配置 npm 镜像源 npm config set registry https://registry.npmmirror.com,同时确保 npm 代理配置正确。
Q: 使用 TeamoRouter 还需要配置这些代理吗? A: TeamoRouter 解决的是模型 API 的国内访问问题,终端、npm、Git 层面的代理(用于访问 GitHub 等)依然需要。但你可以省去针对 OpenAI API 的代理配置。
Q: WSL2 和 Windows 的代理能共用吗? A: 不能直接共用。WSL2 需要单独配置,通常通过宿主机 IP 转发(方法一)或在 WSL2 内运行代理(方法二)。
Q: Codex 的 baseUrl 如何验证是否配好?
A: 运行 codex "hello" --verbose,观察日志中的 API 请求地址是否为配置的 baseUrl。
快速开始
- 注册 TeamoRouter 获取 API Key
- 按 Codex 接入文档 配置 baseUrl 和 API Key
- 跑通第一个 Codex 任务
通过 TeamoRouter 稳定接入 Codex、Claude Code、Gemini CLI。