博客

Codex 代理配置完全指南:终端、npm、Git 及 WSL2 环境设置

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)中添加以下变量:

bash
# 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 使生效,然后用以下命令验证:

bash
# 验证代理是否生效
curl -I https://api.openai.com

# 查看当前代理设置
echo $HTTP_PROXY
echo $HTTPS_PROXY

注意:127.0.0.1:7890 是 Clash/ShadowSocks 等代理工具的默认端口,请根据你的实际代理工具调整。

临时为单个命令设置代理:

bash
HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890 codex "你的提示词"

npm 代理配置

Codex 在运行时会自动安装依赖。如果 npm 不走代理,安装会非常慢甚至失败。

全局 npm 代理配置

bash
npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890

查看和删除代理配置

bash
# 查看
npm config get proxy
npm config get https-proxy

# 删除
npm config delete proxy
npm config delete https-proxy

npm 镜像源(推荐与代理配合使用)

bash
# 使用淘宝镜像源
npm config set registry https://registry.npmmirror.com

# 恢复官方源
npm config set registry https://registry.npmjs.org

已验证的 npm 代理配置

bash
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 代理至关重要。

全局代理设置

bash
# 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)

bash
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

取消代理

bash
git config --global --unset http.proxy
git config --global --unset https.proxy

WSL2 代理配置

WSL2 的网络环境比较特殊,需要额外处理。

方法一:宿主机代理转发

在 Windows 宿主机上运行代理工具(如 Clash),然后在 WSL2 中获取宿主机 IP:

bash
# 在 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 实现自动配置:

bash
# 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 等代理工具,配置更为直接:

bash
# 在 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 中配置:

json
{
    "http.proxy": "http://127.0.0.1:7890",
    "http.proxyStrictSSL": false,
    "http.proxySupport": "on"
}

或者在 VS Code 设置界面搜索 "proxy" 进行配置。

Codex base URL 配置

无论是否配置代理,都需要确保 Codex 能正确连接到 API 端点。如果使用 TeamoRouter,配置更简单:

bash
# 设置 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。

快速开始

  1. 注册 TeamoRouter 获取 API Key
  2. Codex 接入文档 配置 baseUrl 和 API Key
  3. 跑通第一个 Codex 任务

免费获取 Codex 配置 →

通过 TeamoRouter 稳定接入 Codex、Claude Code、Gemini CLI。

准备好接入了吗?登录控制台 · 购买额度 · 创建 API Key,三步即可开始。
Codex 代理配置完全指南:终端、npm、Git 及 WSL2 环境设置 · TeamoRouter