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 模式是什么。
做法三:系统代理(遵守系统设置的应用)
打开客户端的“系统代理”开关即可。应用不遵守系统代理时,改用上面两种做法。
设置好了还是连不上
- 在客户端的连接列表里找这个应用连接的域名。找不到,说明它根本没经过 Clash,回到上面检查设置。
- 找到了,看它命中了哪条规则、走了哪个出口。规则把它判成了直连,见 分流规则写了但不生效。
- 终端里的问题可以按 终端、命令行不走 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 那样写进工具自己的配置。
下一步
本页内容依据各项目的官方文档和源码整理 · 有错误?提交反馈