clashv

让终端和开发工具走 Clash 代理

命令行工具一般不读系统代理。说明怎么用环境变量或 TUN 模式让终端、Git、npm 等开发工具走 Clash,以及 Claude Code 的代理设置方法和确认是否生效。

本篇概要
内容
终端:环境变量、Git、npm、自己写的 Node.js 程序 等 6 部分
预计阅读
约 4 分钟
适用
Windows、macOS、Linux

开着 Clash 的系统代理,浏览器能上,git clone、npm install 却很慢或连不上?因为命令行工具一般不读系统代理设置。这个场景有两种解决思路:

思路 做法 适合
环境变量 在终端里设置 HTTP_PROXY / HTTPS_PROXY,或给工具单独配置代理 不想开 TUN、只想让部分工具走代理
TUN 模式 打开客户端的 TUN(虚拟网卡),所有程序都经过 Clash 工具很多、不想逐个设置

TUN 模式最省事,开启方法见 TUN 模式是什么。下面讲环境变量和各工具的单独设置。

示例统一用端口 7897(Clash Verge Rev 的默认混合端口);FlClash 默认是 7890。以你客户端设置里的端口为准。

终端:环境变量

最快的办法是让客户端生成命令:Clash Verge Rev 和 FlClash 的托盘菜单都有“复制环境变量”,ClashX Meta 的菜单栏有“复制终端代理命令”。复制后粘贴到终端执行即可。

手动设置:

# macOS / Linux
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"

只对当前终端窗口有效。不想走代理的地址写进 NO_PROXY,例如 localhost,127.0.0.1。

验证:在这个终端里用 curl 打开任意一个 https 网址,再到 Clash 客户端的连接列表里看,能找到这条连接就说明走进了 Clash。curl 会读取这些环境变量(curl 官方文档(在新窗口打开));注意 curl 只认小写的 http_proxy,HTTPS_PROXY 大小写都可以。

Git

Git 通过 HTTPS 拉取时会读上面的环境变量。也可以只给 Git 设置代理(Git 官方文档 · git-config(在新窗口打开),http.proxy 一项):

git config --global http.proxy http://127.0.0.1:7897

取消:

git config --global --unset http.proxy

http.proxy 只管 https:// 开头的仓库地址。用 git@github.com:... 这种 SSH 地址时它不起作用,这种情况开 TUN 最简单。

npm

npm 会遵守 HTTP_PROXY、HTTPS_PROXY 环境变量。也可以写进 npm 自己的配置(字段说明见 npm 官方仓库里的配置定义):

npm config set proxy http://127.0.0.1:7897
npm config set https-proxy http://127.0.0.1:7897

取消:

npm config delete proxy
npm config delete https-proxy

自己写的 Node.js 程序

Node.js 默认不读代理环境变量。按 Node.js 官方文档,要设置 NODE_USE_ENV_PROXY=1,或用 --use-env-proxy 参数启动,http、https 和 fetch() 才会使用 HTTP_PROXY、HTTPS_PROXY(需要 Node.js v22.21.0 或 v24.5.0 及以上;Node.js 官方文档(在新窗口打开))。

export NODE_USE_ENV_PROXY=1
node app.js

Claude Code

Claude Code 支持 HTTPS_PROXY 等环境变量,但不支持 SOCKS 代理,并且只在启动时读取一次。可以把代理写进 ~/.claude/settings.json 的 env 里长期生效。详见 AI 应用和命令行工具怎么设置代理 和博客 Claude Code Proxy 设置:开着 Clash 时怎么让它走代理。走了代理还提示所在地区不受支持,见 AI 服务怎么判断地区。

规则也要放行

工具走进了 Clash,还要看规则把它判到哪里。比如规则把 github.com 判成了直连,它就不会走代理。在客户端的连接列表里能看到每个连接命中的规则。规则的写法见 Clash 配置文件详解 · 分流规则,也可以用 分流规则生成器 生成。

常见问题

设置了环境变量,git clone 还是很慢?

先确认仓库地址是 https:// 开头。SSH 地址不读 http.proxy 和这些环境变量,改用 HTTPS 地址或开 TUN。

用完代理怎么恢复?

关掉终端窗口,环境变量就没了。git config 和 npm config 是写进配置文件的,要用上面的取消命令删掉。

终端还是不走代理?

按 终端、命令行不走 Clash 代理怎么办 逐项排查。

下一步

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

专题文章