clashv

Claude 等 AI 应用怎么设置代理

开着 Clash 时,ChatGPT、Claude 等 AI 桌面应用和命令行工具不走代理的原因,以及系统代理、环境变量和 TUN 模式三种做法,附各系统的设置写法。

本篇概要
内容
为什么浏览器能用、别的程序不行、做法一:环境变量(命令行工具)、做法二:TUN 模式(任何程序)、做法三:系统代理(遵守系统设置的应用) 等 5 部分
预计阅读
约 4 分钟
适用
Windows、macOS、Linux

浏览器里能打开 AI 服务,桌面应用或命令行工具却连不上,多半是因为这些程序没有经过 Clash。本页说明原因和三种做法。

关于服务的地区限制,请先看 AI 服务怎么判断地区:按官方政策,地区限制看的是你实际所在的地方,本页只讲 Clash 的设置。

为什么浏览器能用、别的程序不行

Clash 的“系统代理”开关,改的是操作系统里的代理设置。浏览器会读这个设置,但很多程序不读:

  • 命令行工具一般只认环境变量。例如 Node.js 官方文档说明,Node.js 只在启用 NODE_USE_ENV_PROXY 或 --use-env-proxy 时才会使用 HTTP_PROXY、HTTPS_PROXY 环境变量(Node.js 官方文档(在新窗口打开));curl 读取 http_proxy、HTTPS_PROXY 等环境变量(curl 官方文档(在新窗口打开))。
  • 桌面应用是否遵守系统代理,由应用自己决定,各家没有统一说明。

所以有三种做法:

做法 适合 代价
系统代理 浏览器、遵守系统代理的应用 不读系统代理的程序管不到
环境变量 命令行工具、开发工具 每个终端都要设置,或写进配置文件
TUN 模式 任何程序 需要管理员权限或安装服务

做法一:环境变量(命令行工具)

先查 Clash 的端口

环境变量要指向 Clash 的本地端口。端口在客户端设置里能看到,默认值各不相同,例如:

客户端 默认混合端口
Clash Verge Rev 7897
FlClash 7890

(来自两个项目的官方源码,2026-10-29 核对;你改过端口就以设置里的为准。)

更省事的办法是让客户端直接生成命令:

  • Clash Verge Rev:托盘菜单的“复制环境变量”,复制格式可以在设置里的“复制环境变量类型”选择(bash、cmd、powershell 等)。
  • FlClash:托盘菜单的“复制环境变量”。
  • ClashX Meta:菜单栏的“复制终端代理命令”。

手动设置

以端口 7897 为例(换成你的端口)。

macOS / Linux(bash、zsh):

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

Windows PowerShell:

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

Windows 命令提示符:

set http_proxy=http://127.0.0.1:7897
set https_proxy=http://127.0.0.1:7897

PowerShell 和命令提示符的写法与 Clash Verge Rev“复制环境变量”生成的一致;它生成的 bash 版本还多一个 all_proxy。这样设置只对当前这个终端窗口有效,关掉就没了。

Claude Code

按 Claude Code 官方文档(网络配置(在新窗口打开)):

  • 支持标准的 HTTPS_PROXY、HTTP_PROXY 和 NO_PROXY 环境变量,小写写法也可以。
  • 不支持 SOCKS 代理,所以要用 http:// 开头的地址,不要用 socks5://。
  • 环境变量只在启动时读一次,设置后要重新启动 Claude Code。
  • 这些变量也可以写进 ~/.claude/settings.json 的 env 里,这样不用每次都设置:
{
  "env": {
    "HTTPS_PROXY": "http://127.0.0.1:7897"
  }
}
  • 在交互界面运行 /status,“Proxy”一行会显示当前使用的代理地址。

完整步骤见博客文章 Claude Code Proxy 设置:开着 Clash 时怎么让它走代理。

其他开发工具

Git、npm 等工具的设置见 让终端和开发工具走代理。

做法二:TUN 模式(任何程序)

TUN 模式会把系统流量路由进 Clash,不读系统代理的桌面应用、命令行工具也会经过 Clash,不用逐个设置。开启方法和需要的权限见 TUN 模式是什么。

做法三:系统代理(遵守系统设置的应用)

打开客户端的“系统代理”开关即可。应用不遵守系统代理时,改用上面两种做法。

设置好了还是连不上

  1. 在客户端的连接列表里找这个应用连接的域名。找不到,说明它根本没经过 Clash,回到上面检查设置。
  2. 找到了,看它命中了哪条规则、走了哪个出口。规则把它判成了直连,见 分流规则写了但不生效。
  3. 终端里的问题可以按 终端、命令行不走 Clash 代理怎么办 排查。

常见问题

环境变量里写 127.0.0.1 还是 localhost?

两种都指本机。本站示例统一用 127.0.0.1,和 Clash Verge Rev 生成的命令一致。

为什么 Claude Code 设置了 socks5 地址不生效?

Claude Code 官方文档写明不支持 SOCKS 代理。改用 http://127.0.0.1:端口。Clash 的混合端口同时提供 HTTP 和 SOCKS 代理,地址前缀换成 http:// 即可。

设置了环境变量,过一会儿又失效了?

在终端里 export 或 $env: 设置的变量只对当前窗口有效。想长期生效,写进 shell 的配置文件,或者像 Claude Code 那样写进工具自己的配置。

下一步

本页内容依据各项目的官方文档和源码整理 · 有错误?提交反馈