跳到主要内容

Codex CLI 代理设置:终端环境变量、TUN 模式与常见坑

Codex 使用教程之代理篇:浏览器能开 ChatGPT 但 Codex CLI 连接失败,多半是终端没有走代理。本文给出 Windows PowerShell 与 macOS/Linux 两组环境变量写法、TUN 模式开启步骤、验证命令与常见坑对照表,并说明选 Codex 稳定机场时要看什么。

发布于 约 5 分钟 · 1897 字进阶
Codex CLI 代理设置教程封面

直接答案

Codex CLI 不读取系统代理,让它走机场只有两种方式:在终端导出 HTTP_PROXY / HTTPS_PROXY / ALL_PROXY 指向客户端混合端口,或在客户端开启 TUN 模式接管全部流量。两者选其一即可,同时开启反而容易出问题;设置完成后用 curl 计时命令验证,再启动 codex。

你在浏览器里能正常打开 ChatGPT,npm install -g @openai/codex 也装好了,可一输入 codex 就卡在登录页,或者任务跑到一半提示连接断开。这是 Codex 使用教程里被问得最多的场景,九成以上原因只有一个:终端没有走代理。本文专门讲代理设置,分两条路线(环境变量、TUN 模式)给出完整步骤,最后汇总常见坑。安装与登录本身请先看 Codex CLI 安装与基础使用教程。

为什么浏览器正常,Codex 却连接失败

图形客户端(Clash Verge Rev、Mihomo Party、v2rayN 等)开启「系统代理」后,修改的是操作系统层的代理设置。浏览器、微信、Steam 这类桌面程序会主动读取它,而 Node.js 程序不会。Codex CLI 基于 Node.js 运行,它发出的请求会直接走本机默认网络,于是出现「浏览器能开、终端连不上」的割裂。

解决思路只有两种:要么告诉 Node.js 代理在哪里(环境变量),要么让客户端在更底层接管所有流量(TUN 模式)。下表是两种方式的对比。

方式原理适用场景需要管理员权限对其他程序的影响
环境变量进程读取 HTTP_PROXY 等变量后主动连代理端口临时测试、单个项目、WSL否仅当前终端会话
TUN 模式客户端创建虚拟网卡,在网络层接管流量长期开发、多工具并用是全部程序都走客户端

两种方式二选一。开启 TUN 后再导出环境变量,请求会先进代理端口再被 TUN 二次接管,部分内核版本会出现回环或 DNS 异常,排查起来很费时间。

路线一:终端环境变量(推荐先试)

第一步:确认客户端端口

打开客户端设置页,找到「混合端口」或「HTTP 端口」。Clash Verge Rev 默认 7897,部分 Clash 系客户端默认 7890,v2rayN 以界面显示为准。下文以 7890 为例,请替换成你自己的端口。

第二步:导出变量

macOS / Linux(zsh 或 bash):

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

Windows PowerShell:

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

Windows 用户如果在 WSL 里运行 Codex,WSL 内部是独立的 Linux 环境,仍然要用 bash 写法导出一遍。此时代理地址不能写 127.0.0.1,而要写 Windows 主机的 IP,或在客户端开启「允许局域网连接」后使用 cat /etc/resolv.conf 里的 nameserver 地址。

第三步:验证代理是否生效

curl -sS -o /dev/null -w "%{http_code} %{time_total}s\n" https://api.openai.com/v1/models

返回 401 且耗时在一两秒内,表示代理已经生效(未携带密钥返回 401 是正常的)。如果长时间无输出或报 Connection timed out,说明变量没写对或端口不对,不要急着启动 Codex。

第四步:持久化

每开一个新终端都要重新导出很麻烦。macOS / Linux 把 export 行写入 ~/.zshrc 或 ~/.bashrc;PowerShell 写入 $PROFILE 文件。更干净的做法是单独建一个 codex-env.sh,需要时 source 一下,避免 Git、npm 等工具在不需要时也走代理。

路线二:TUN 模式(长期开发更省事)

TUN 模式让客户端接管整台电脑的流量,Codex、Claude Code、Git、Docker 全部无感走代理,不需要记任何变量。开启步骤:

  1. 在客户端「设置」中安装「服务模式」(Windows 与 macOS 都需要管理员授权)。
  2. 打开「TUN 模式」开关,栈类型先用 mixed,不通时换 gvisor 或 system。
  3. 确认「自动路由」与「自动选择接口」已勾选。
  4. 用上一节的 curl 命令验证,此时不需要任何环境变量。
  5. 如果之前在 shell 配置文件里写过 export,先注释掉再测试。
# 对应的 Mihomo 内核配置片段,Clash Verge Rev 会自动生成
tun:
  enable: true
  stack: mixed
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53

Windows 下 TUN 模式的详细说明与冲突处理见 Windows 客户端使用指南,macOS 见 macOS 客户端配置指南。

⚠️ 注意

TUN 模式与企业 VPN、游戏加速器的虚拟网卡经常冲突,表现为开启后整机断网。遇到这种情况先关闭另一方,不要反复重装客户端。

常见坑对照表

现象原因处理
curl 正常,codex 仍提示 unable to connect变量写在了另一个终端窗口在同一窗口导出后再运行 codex
登录时浏览器授权成功,终端却一直等待浏览器与终端走了不同节点,回调被拦统一节点,或用 API Key 登录
任务跑到一半断开节点不保持长连接或限制并发换节点,参考稳定机场标准
输出整段一次出现而非逐字流式线路对 SSE 做了缓冲更换线路类型,优先专线
设置 NO_PROXY 后局域网服务不通变量格式错误,含空格用逗号分隔且不留空格
WSL 内连不上写了 127.0.0.1改为 Windows 主机 IP 并开启允许局域网

更完整的错误码与处理方式见 Codex 常见错误汇总,连接超时的通用排查见 连接超时诊断。

选 Codex 稳定机场时看什么

代理配置正确后,剩下的稳定性取决于节点。Codex 一个任务动辄运行十几分钟,期间要维持流式长连接,还会并发发起多个请求,所以 Codex 机场推荐的判断标准与看视频完全不同:

  • 长连接保持:节点能否维持 30 分钟以上不断流,比峰值速度重要得多。
  • 并发限制:部分低价节点限制单账号连接数,Codex 并发读文件时会被掐断。
  • 出口 IP 质量:与浏览器使用同一节点,避免登录授权时 IP 不一致。
  • 晚高峰丢包:开发高峰与晚高峰重叠,丢包率要低于 1%。

站内对这四项的详细分析见 Codex 稳定机场与网络环境分析。按这些指标筛选出的品牌可以在 Codex 机场推荐 栏目查看,其中 极连云 针对 AI 工具做了专门分流,宇宙云 的 IEPL 专线在长连接表现上更稳。更多稳定机场推荐的横向对比,可以看 稳定机场推荐 栏目。

💡 提示

为 Codex 单独指定一个节点,不要与下载、视频共用。多数客户端支持按规则把 openai.com 相关域名固定到某个节点,这样换节点看视频时不会打断正在运行的任务。

总结

Codex CLI 代理设置的核心只有一句话:终端不读系统代理,必须用环境变量或 TUN 模式让它走客户端。先用 curl 验证,再启动 codex,能省掉绝大多数无谓的排查。配置稳定后,再去关注节点的长连接与并发能力,这才是 Codex 稳定机场的真正门槛。更多 Codex 教程见 Codex 教程栏目 与 Codex 专题页。

总结

  • 终端程序默认不走系统代理,Codex 连接失败的第一嫌疑永远是代理变量没设置。
  • 环境变量适合临时与单项目使用,TUN 模式适合长期开发,二者不要同时启用。
  • 验证顺序:curl 能通 → codex 能登录 → 跑一个只读任务观察流式输出是否连续。
  • Codex 稳定机场的关键指标是长连接保持与并发限制,而不是峰值带宽。

常见问题

Q机场能用 ChatGPT 吗?Codex 也能一起用吗?

Codex 使用 ChatGPT 账号登录,服务同属 OpenAI,所以能稳定打开 ChatGPT 的节点通常也能跑 Codex。区别在于 Codex 是终端程序,需要单独配置代理,且任务时间长,对节点的长连接要求更高。

Q机场为什么有些节点不能用 AI 工具?

常见原因是节点出口 IP 被 OpenAI 判定为高风险、节点所在地区不在支持列表,或线路对长连接做了限制。浏览器打得开只说明地区没问题,Codex 还要看节点能否维持几十分钟不断。

Q机场显示超时怎么办?

先在客户端里对节点测延迟,全部超时说明本地到机场入口不通,换入口或等待公告;只有 Codex 超时而浏览器正常,则是终端代理没生效,按本文的验证命令重查一遍。

QWindows 电脑怎么用机场跑 Codex?

先在 Clash Verge Rev 或 v2rayN 里确认混合端口,再在 PowerShell 中用 $env:HTTPS_PROXY 指向该端口。想一劳永逸可以安装服务模式后开启 TUN,官方更推荐在 WSL 中运行 Codex,WSL 内同样需要导出环境变量。

Q机场适合程序员吗?

适合,但要按开发场景选。程序员的流量主要来自 Git、npm、Docker 和 AI 编程工具,特点是长连接多、并发多,选机场时优先看节点稳定性与并发限制,而不是流媒体解锁。

参考资料与信息来源

  • OpenAI Codex CLI 官方文档 · 环境变量与配置文件字段以官方文档为准,本文只覆盖代理相关的通用写法。
  • 本站 AI 工具连接测试方法 · 验证命令与判断标准来自站内长期测试流程。

相关 AI 工具专题