终端代理配置教程
Clash + 终端代理配置教程
一、背景
Clash 开启全局/规则代理后,浏览器和系统应用会自动走代理,但终端(Git Bash / CMD / PowerShell)不会。
原因:终端程序(curl、npm、pip、git 等)不会读取系统代理设置,而是通过环境变量来决定是否使用代理。
二、环境变量解释
| 变量 | 作用 | 示例值 |
|---|---|---|
HTTP_PROXY |
HTTP 请求的代理地址 | http://127.0.0.1:7890 |
HTTPS_PROXY |
HTTPS 请求的代理地址 | http://127.0.0.1:7890 |
ALL_PROXY |
所有协议的代理(SOCKS5) | socks5://127.0.0.1:7890 |
NO_PROXY |
不走代理的地址白名单 | localhost,127.0.0.1 |
127.0.0.1:7890 是 Clash 默认的 HTTP 代理端口,这个地址指向的是你本机运行的 Clash,不是某个具体节点。你在 Clash 里切换节点,这个地址不变,所以换节点不需要改环境变量。
三、自动化脚本(推荐)
把以下代码写入 Git Bash 的 ~/.bashrc 文件:
- 打开终端时:自动检测 Clash 是否在运行(端口 7890),在就设代理,不在就不设
- 手动切换:随时用
proxy命令控制
1 | # --- Clash proxy auto-detect + toggle --- |
使用方法
1 | proxy on # 开启代理 |
日常操作流程
- 先开 Clash → 再开终端 → 自动挂代理 ✅
- 终端已开着 → 启动 Clash → 手动敲
proxy on - 关掉 Clash → 手动敲
proxy off
四、手动设置方式(备用)
如果你用的是 CMD 或 PowerShell,需要手动设:
Git Bash / Linux
1 | export HTTP_PROXY=http://127.0.0.1:7890 |
CMD
1 | set HTTP_PROXY=http://127.0.0.1:7890 |
PowerShell
1 | $env:HTTP_PROXY="http://127.0.0.1:7890" |
五、验证代理是否生效
1 | # 能返回 200 说明代理生效 |
六、常见问题
Q: 代理显示 ON 但访问不了外网?
检查 Clash 是否在运行、节点是否可用、端口是否为 7890。
Q: 换了节点需要重新设置吗?
不需要。环境变量指向的是本机 Clash(127.0.0.1:7890),不是具体节点。
Q: 规则代理 vs 全局代理?
- 规则代理:国内外流量按规则分流,国内直连、被墙的走代理
- 全局代理:所有流量都走代理节点
无论哪种模式,终端代理的配置方法一样,区别只是 Clash 内部怎么转发。
Q: 某些命令不想走代理怎么办?
NO_PROXY 白名单已包含 localhost,127.0.0.1,本地服务不受影响。临时让某个命令不走代理:
1 | unset HTTP_PROXY HTTPS_PROXY && your_command |
七、Clash 常用端口
| 端口 | 用途 |
|---|---|
| 7890 | HTTP/HTTPS 代理(mixed port) |
| 7891 | SOCKS5 代理 |
| 9090 | Clash 控制面板(Web Dashboard) |
不同 Clash 客户端(Clash for Windows、Clash Verge、mihomo 等)端口可能不同,以你实际使用的为准。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 mint1.!



