Claude Code、Codex、Gemini CLI 怎么走代理?终端代理设置完整教程

更新:作者:站长约 4 分钟读完

Claude Code、OpenAI Codex CLI、Gemini CLI 这类 AI 编程工具都跑在终端里。一个常见的困惑是:Clash 开着、浏览器能用,但终端里的工具就是连不上。

原因是 Clash 的「系统代理」只修改了操作系统的代理设置,而大多数命令行程序不会去读它。解决办法有两种。

方法一:设置代理环境变量(推荐)

绝大多数命令行工具会读取 HTTPS_PROXY、HTTP_PROXY 这两个环境变量。Claude Code 的官方文档明确支持这种方式。

第 1 步:查看 Clash 的端口

打开 Clash 客户端的「设置」,找到 混合端口(Mixed Port)。下面的例子用 7897,请换成你自己的。

Clash Verge Rev 托盘菜单里一般有「复制环境变量」之类的选项,可以一键复制下面的命令。

第 2 步:在终端设置

macOS / Linux(zsh、bash):

export https_proxy=http://127.0.0.1:7897 http_proxy=http://127.0.0.1:7897 all_proxy=socks5://127.0.0.1:7897

Windows PowerShell:

$env:HTTPS_PROXY="http://127.0.0.1:7897"; $env:HTTP_PROXY="http://127.0.0.1:7897"

Windows CMD:

set HTTPS_PROXY=http://127.0.0.1:7897
set HTTP_PROXY=http://127.0.0.1:7897

这样设置只对当前终端窗口有效,关闭后失效。

第 3 步:验证

curl -s https://ipinfo.io

返回结果里的 country 如果是 US、JP、SG 等,说明终端已经走代理,并且出口地区正确。如果是 HK,请在 Clash 里换节点——香港不在多数 AI 服务的支持地区内。

让设置永久生效

macOS / Linux:把下面几行加到 ~/.zshrc(或 ~/.bashrc)末尾,然后执行 source ~/.zshrc:

# Clash 代理开关
proxy_on() {
  export https_proxy=http://127.0.0.1:7897 http_proxy=http://127.0.0.1:7897 all_proxy=socks5://127.0.0.1:7897
  echo "代理已开启"
}
proxy_off() {
  unset https_proxy http_proxy all_proxy
  echo "代理已关闭"
}

以后在终端输入 proxy_on / proxy_off 即可切换。不建议直接写死 export,否则 Clash 没开时所有终端命令都会连不上网。

Windows:在「系统属性 → 环境变量」中添加 HTTPS_PROXY 和 HTTP_PROXY 用户变量,重新打开终端生效。

方法二:开启 Clash TUN 模式

TUN 模式会创建一块虚拟网卡,接管整台电脑的流量,不需要给每个程序单独设置。

  • Clash Verge Rev:「设置 → 虚拟网卡模式」,Windows 首次使用需先安装服务模式;
  • 开启 TUN 后,建议关闭方法一里的环境变量,避免绕两次。

TUN 适合同时有很多工具需要代理的情况,比如 Docker、IDE 插件、包管理器。原理见 Clash 代理模式与 TUN 模式详解。

三个工具的注意事项

Claude Code

  • 支持 HTTPS_PROXY / HTTP_PROXY 环境变量;
  • 需要出口在 Claude 支持的地区,香港不行;
  • 一次任务可能持续很久,用固定节点,不要用自动测速组。节点选择见 Claude 用什么节点。

OpenAI Codex CLI

  • 通常会读取同样的环境变量;如果设置后仍然连接失败,改用 TUN 模式;
  • 出口地区需在 OpenAI 支持范围内。

Gemini CLI

常见报错对照

现象 可能原因 解决
连接超时 / ETIMEDOUT 终端没走代理 设置环境变量或开 TUN
ECONNREFUSED 127.0.0.1:7897 端口填错,或 Clash 没运行 核对混合端口,确认 Clash 已启动
地区不支持 / unsupported_country 出口是香港等不支持地区 换美 / 日 / 新节点
任务执行到一半断开 节点被自动切换或丢包高 改用手动选择组,换低丢包的专线节点
证书错误 公司网络或安全软件拦截 HTTPS 关闭 HTTPS 扫描,或联系网管

选什么机场

AI 编程工具对丢包很敏感:一次长任务中只要连接断一次,就可能前功尽弃。优先选专线、丢包低、对应 AI 平台有实测的机场,见下方对照表和 机场推荐。

本站收录机场的 AI 可用性

「实测」= 第三方在美 / 日 / 新节点完成注册、登录与长对话验证;「宣称」= 机场自述、未经实测;「—」= 暂无数据。数据截至 2026-09-21,来源见各机场评测页。

机场ChatGPTClaudeClaude CodeCodexGemini
二猫云✓ 实测✓ 实测✓ 实测✓ 实测✓ 实测
光速云✓ 实测✓ 实测——宣称
宇宙云✓ 实测宣称——✓ 实测

完整套餐和测速数据见 机场推荐。

常见问题

开了 Clash 系统代理,为什么 Claude Code 还是连不上?

系统代理主要对浏览器和遵守系统设置的软件生效,终端程序通常不读取它。需要在终端设置 HTTPS_PROXY 环境变量,或开启 Clash 的 TUN 模式。

环境变量和 TUN 模式选哪个?

只有几个命令行工具需要代理时,用环境变量更精确;如果还有 Docker、IDE 插件等多个程序需要代理,开 TUN 模式更省事。

端口是 7890 还是 7897?

不同客户端默认端口不同,以你自己客户端设置页里显示的「混合端口 / Mixed Port」为准。

站长

文中操作步骤参照各项目官方文档整理,并标注更新日期。软件更新很快,发现内容过时欢迎反馈。

还没选好?看 Clash 客户端推荐 和 机场推荐。