OpenAI Codex CLI 国内怎么用?Clash Verge 配置指南

OpenAI Codex CLI 受到开发者关注后,终端连接稳定性成为不少用户的实际问题。本文用 Clash Verge 演示订阅导入、代理模式与分流设置,帮助新手顺利完成 Codex CLI 的网络配置。

先分清 Codex CLI 需要代理的环节

OpenAI Codex CLI 是运行在终端中的 AI 编程工具,主要负责读取项目文件、执行命令、生成或修改代码,并通过网络访问 OpenAI 相关服务。它与浏览器中的网页应用不同:终端程序通常不会自动继承浏览器扩展的代理设置,也不一定完全跟随系统代理。因此,即使网页可以正常打开,Codex CLI 仍可能出现登录超时、请求失败、连接重置或模型响应中断。

在国内网络环境中使用 Codex CLI,通常需要同时确认三个层面:Clash Verge 是否已经启动并有可用节点,终端程序是否能够访问本机代理端口,以及 OpenAI 服务相关域名是否被正确分流。只打开 Clash Verge 的界面并不代表终端已经使用代理;只有系统代理、环境变量或 TUN 接管路径真正生效,Codex CLI 发出的连接才会经过 mihomo 内核。

先确定登录方式

Codex CLI 的认证方式可能随版本和账户类型变化。常见方式包括在终端中完成浏览器授权,或通过环境变量提供 API 密钥。使用浏览器登录时,浏览器页面能否打开只是第一步,终端还需要完成本地回调、令牌交换或后续 API 请求。使用 API 密钥时,则要重点检查密钥是否有效、账户是否具备对应模型权限,以及请求是否被本机代理或企业网络拦截。

安装 Clash Verge 并导入订阅

建议使用仍在维护的 Clash Verge 或 Clash Verge Rev,并优先从可信的软件分发渠道获取安装包。安装完成后打开客户端,先确认底部或设置页显示的内核已经正常运行。现在许多客户端使用 mihomo 内核,但不同发行版的菜单名称可能略有差异,判断依据应以“内核信息”“运行日志”或版本页面为准。

  1. 打开 Clash Verge,进入配置、Profiles 或订阅管理页面。
  2. 选择从 URL 添加配置,将服务提供方给出的 Clash、Clash Meta 或 mihomo 订阅地址粘贴进去。
  3. 点击下载或更新,等待配置内容完成解析。
  4. 选中刚刚导入的配置,设置为当前活动配置。
  5. 进入代理页面,确认策略组中至少有一个节点可以正常延迟测试。

订阅地址通常包含个人令牌,不能发布到论坛、代码仓库或公共截图中。如果导入时出现 403timeout 或 YAML 解析错误,应先检查订阅链接和返回内容,而不是立即修改 Codex CLI。浏览器下载到登录页面、验证码页面或 HTML 错误页时,Clash Verge 同样无法把它作为有效配置载入。

选择稳定的代理组

在代理页面中,常见的策略组包括“节点选择”“自动选择”“国外媒体”或“全球代理”。首次配置 Codex CLI 时,建议先手动选择一个延迟稳定、连续连接表现较好的节点,不要一开始就使用频繁切换节点的自动测速组。AI 请求往往持续时间较长,单次延迟低并不代表长连接稳定;如果节点在生成过程中反复切换,终端可能收到连接中断。

如果订阅中没有针对 OpenAI 域名的专用策略组,可以暂时使用“全局代理”验证链路,确认 Codex CLI 能够完成登录和请求后,再切回规则模式细化分流。测试完成后不建议长期保持全局代理,因为代码仓库、包管理器、局域网地址和国内服务可能因此走不必要的代理路径。

配置代理模式与本地端口

Clash Verge 常见的本地混合端口是 7890,但实际端口必须以当前客户端设置为准。混合端口通常同时兼容 HTTP 和 SOCKS5 请求,适合给终端工具使用。控制端口例如 9090 只用于客户端管理内核,不是给 Codex CLI 填写的代理端口。

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info

在 Clash Verge 的设置中,先开启系统代理,再选择规则模式。Windows 和 macOS 的系统代理通常会被浏览器、Git、部分开发工具自动读取,但终端程序的行为并不完全一致。若系统代理开启后 Codex CLI 仍然超时,可以通过环境变量明确告诉当前终端使用本机代理。

为终端设置代理环境变量

在支持 POSIX Shell 的 macOS、Linux 或 WSL 环境中,可以临时设置以下变量。端口 7890 仅为常见示例,如果 Clash Verge 使用其他端口,应替换为实际值。

export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
export ALL_PROXY=http://127.0.0.1:7890
export NO_PROXY=127.0.0.1,localhost

如果当前终端使用 SOCKS5 代理,也可以根据工具支持情况使用 socks5://127.0.0.1:7890。不过,并非所有程序都正确识别 ALL_PROXY,因此 HTTPS 请求通常优先使用 HTTPS_PROXY 测试。Windows PowerShell 可以使用下面的写法设置当前窗口内的变量:

$env:HTTP_PROXY="http://127.0.0.1:7890"
$env:HTTPS_PROXY="http://127.0.0.1:7890"
$env:ALL_PROXY="http://127.0.0.1:7890"
$env:NO_PROXY="127.0.0.1,localhost"

这些设置通常只对当前终端会话有效。直接写入系统环境变量虽然方便,但会影响 Git、包管理器和其他开发工具。更稳妥的方式是先临时设置,确认 Codex CLI 工作正常后,再决定是否写入 Shell 配置文件。不要把带有账号、密码或代理认证信息的完整 URL 粘贴到公共日志中。

为 OpenAI 请求设置分流规则

完成基础代理测试后,可以把 Clash Verge 从全局代理切回规则模式。规则模式会按照域名、IP 或规则集选择策略组。对于 Codex CLI,关键不是把所有流量都交给代理,而是确保登录、模型请求、令牌验证以及可能使用的静态资源域名不会被错误地判定为直连。

如果配置支持本地覆写,可以在已有规则的前提下增加面向 OpenAI 服务的规则。不同订阅的策略组名称不一样,下面的 Proxy 只是示例,实际名称应替换为配置中存在的策略组:

rules:
  - DOMAIN-SUFFIX,openai.com,Proxy
  - DOMAIN-SUFFIX,chatgpt.com,Proxy
  - DOMAIN-SUFFIX,auth.openai.com,Proxy
  - MATCH,DIRECT

不要盲目复制网络文章中的完整规则列表。服务域名、认证流程和客户端依赖可能会变化,过多规则还可能导致国内域名被错误代理。更可靠的检查方法是打开 Clash Verge 的连接日志,启动 Codex CLI,然后观察实际请求的域名、命中的规则和最终使用的策略组。若日志中显示请求命中 DIRECT 后连接失败,再针对该域名补充规则。

先测试终端,再运行 Codex CLI

在启动 Codex CLI 前,可以使用命令行工具验证 HTTPS 代理是否工作。下面的地址只用于测试网络连接,实际返回内容可能因服务端策略和账户状态不同而变化:

curl -I --proxy http://127.0.0.1:7890 https://api.openai.com

如果返回 HTTP 响应,说明终端至少能够通过本机代理建立连接;如果提示 Could not connect to server,应检查 Clash Verge 是否运行、端口是否正确以及是否有其他程序占用了端口。如果连接建立后出现 407,说明代理端要求认证;如果长时间无响应,则继续查看 Clash Verge 的连接日志、DNS 设置和节点状态。

启动 Codex CLI 与常见问题处理

网络测试通过后,在项目目录中启动 Codex CLI,并先完成登录或认证。首次运行建议选择一个不包含个人密码、SSH 私钥、云服务凭据和生产环境配置的测试项目。让工具执行命令前,先确认当前目录、工作区状态和它将要读取的文件范围。代理配置正确并不意味着可以忽略代码和凭据安全。

如果 Codex CLI 能够启动但请求失败,先不要同时修改节点、DNS、环境变量和规则。推荐按照“查看日志—固定节点—测试代理—检查认证—再调整规则”的顺序排查。Clash Verge 的连接记录可以判断请求有没有到达内核;Codex CLI 的终端输出则可以判断失败发生在认证、请求建立还是响应解析阶段。

现象 优先检查 处理建议
命令启动后一直等待 HTTPS_PROXY 与本地端口 确认端口可连接,并在 Clash 日志中查看是否有请求
浏览器授权无法完成 浏览器与终端的代理路径 保持 Clash 运行,确认回调和后续请求未被直连
认证成功但模型请求失败 账户权限、API 配额和规则分流 查看完整错误码,不要仅凭“网络错误”判断
生成过程中频繁断线 节点稳定性与自动切换 固定稳定节点,避免测试期间频繁切换策略组
关闭 Clash 后所有请求异常 残留系统代理或环境变量 关闭系统代理,并清理当前终端中的代理变量

完成测试后,如果不再需要代理,应关闭 Clash Verge 的系统代理开关,并在当前终端中清理临时变量。POSIX Shell 可以执行 unset HTTP_PROXY HTTPS_PROXY ALL_PROXY NO_PROXY;PowerShell 可以使用 Remove-Item Env:HTTP_PROXY, Env:HTTPS_PROXY, Env:ALL_PROXY, Env:NO_PROXY。这样可以避免后续访问内网、代码托管平台或包管理服务时意外沿用旧节点。

FlClash 下载入口 查看各平台客户端