AI 工具 · 教程

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

发布:2026 年 10 月 5 日阅读约 6 分钟

Claude Code、Codex CLI、Gemini CLI 都运行在终端里。终端不会自动使用浏览器的代理,这是「网页能用、命令行连不上」最常见的原因。

为什么终端不走代理

代理客户端开启「系统代理」后,修改的是操作系统的代理设置,浏览器会读取它,但大多数命令行程序不会。所以要让终端里的 AI 工具走代理,只有两种办法:

方法 原理 适合
TUN 模式 客户端创建虚拟网卡,接管整台电脑的流量 新手、想一次搞定所有程序
环境变量 告诉当前终端把请求发给本地代理端口 只想让终端走代理、不方便装虚拟网卡

方法一:开启 TUN 模式(推荐新手)

以 Clash Verge Rev 为例:

  1. 打开「设置」,找到 TUN 模式(也叫虚拟网卡模式)。
  2. 首次开启需要安装服务模式,按提示授权。
  3. 打开开关,保持「规则」模式即可,AI 相关域名会自动走代理。

开启后不需要再设置任何环境变量,Claude Code、Codex CLI、Gemini CLI、npm、git 都会走代理。其他客户端的开启方法见 客户端教程。

方法二:设置 HTTPS_PROXY 环境变量

先在代理客户端里找到本地端口(Clash Verge Rev 默认 7897),下面的示例都以 7897 为准,请换成你自己的端口。

macOS / Linux(bash、zsh)

export HTTPS_PROXY=http://127.0.0.1:7897
export HTTP_PROXY=http://127.0.0.1:7897
export NO_PROXY=localhost,127.0.0.1

要长期生效,把这三行追加到 ~/.zshrc(macOS 默认)或 ~/.bashrc,然后重开终端。

Windows PowerShell

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

要长期生效,运行 notepad $PROFILE,把这三行粘进去保存;如果提示文件不存在,先运行 New-Item -Type File -Force $PROFILE。

Windows CMD

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

WSL

WSL 里的 127.0.0.1 默认指向 WSL 自己,不是 Windows。两种处理方法:

  • 在 Windows 的 .wslconfig 中开启镜像网络(networkingMode=mirrored),之后 WSL 可以直接用 127.0.0.1:7897;
  • 或者在代理客户端里打开「允许局域网连接」,WSL 中把地址换成 Windows 主机的 IP。

安装阶段也要走代理

很多人卡在安装这一步,而不是使用阶段:

  • 官方安装脚本(curl ... | bash、irm ... | iex):需要能访问 claude.ai、chatgpt.com,先开 TUN 或设好环境变量再运行。
  • npm 安装(npm install -g @openai/codex、npm install -g @google/gemini-cli):npm 有自己的代理配置,环境变量不生效时可以单独设置:
npm config set proxy http://127.0.0.1:7897
npm config set https-proxy http://127.0.0.1:7897

各工具的官方安装命令见 Claude 下载与安装、Codex 下载与安装、Gemini 下载与安装。

怎么确认终端已经走代理

在同一个终端窗口里运行:

curl https://claude.ai/cdn-cgi/trace

返回结果中的 loc= 是你当前出口的国家代码。loc=US、loc=JP 说明已经走代理并且地区正确;loc=CN 说明没走代理;loc=HK 说明走了代理但节点在不支持的地区。把域名换成 chatgpt.com 可以检查 ChatGPT / Codex 的出口。

Windows PowerShell 里的 curl 是别名,请输入 curl.exe。

常见报错

现象 原因 解决
一直转圈后 ETIMEDOUT / 连接超时 终端没走代理 开 TUN,或检查环境变量是否在当前窗口生效
ECONNREFUSED 127.0.0.1 端口填错或客户端没开 对照客户端设置页的端口
地区不可用 / unsupported_country_region_territory 出口在香港或中国大陆 换美国、日本节点,见 地区不可用怎么办
浏览器登录成功,终端里仍要求重新验证 浏览器和终端走了不同地区的节点 让两者使用同一个策略组和节点
回答输出到一半中断 线路丢包或节点不稳定 换延迟更低、更稳定的节点或专线机场

适合 AI 命令行的机场

命令行工具会长时间保持连接,对线路稳定性的要求比网页更高。建议选择官方说明支持 AI 平台、并且是专线的机场,固定一个美国或日本节点使用。完整对比见 ChatGPT 机场推荐 和 AI 可用机场推荐。

本文推荐的机场

宇
宇宙云#1 · ¥8 / 月起 · 60 GB / 月起
9.6

综合第一:老牌 + IEPL 专线 + 流媒体与 AI 解锁全面,最适合作为长期主力机场。

看评测查看套餐优惠码

常见问题

浏览器能打开 claude.ai,为什么 Claude Code 还是连不上?

浏览器会读取系统代理,终端程序默认不会。开启代理客户端的 TUN 模式,或在终端设置 HTTPS_PROXY 环境变量,命令行工具才会走代理。

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

新手优先 TUN 模式,一次开启所有程序都走代理;不想接管全部流量、或公司电脑不方便装虚拟网卡时,用环境变量只让当前终端走代理。

HTTPS_PROXY 的端口填多少?

填代理客户端里显示的本地 HTTP 或混合端口。Clash Verge Rev 默认是 7897,其他客户端以设置页显示为准,填错端口会直接连接失败。

设置了环境变量,关掉终端就失效了?

直接在终端里设置只对当前窗口有效。要长期生效,写进 ~/.zshrc、~/.bashrc 或 PowerShell 的 $PROFILE 文件。

站内搜索