Clash Verge Rev 混合端口与系统环境变量配置:解决 Git、CMD 命令行与 Python 无法连接网络

一、为什么终端命令行不受系统代理影响?

很多开发者在使用 Clash Verge Rev 时遇到过一个困惑:桌面右下角开启了「系统代理」,Chrome 浏览器查资料没有任何问题;但一旦在终端执行 `git clone`、`pip install`、`npm install` 或运行 Docker 脚本时,控制台依然频繁抛出 `Connection timed out` 或 `Failed to connect to github.com port 443`。

这是因为 Windows 桌面版的「系统代理」开关,本质上只是修改了系统的 IE/Edge 注册表配置(WinINet API)。绝大多数现代开发工具(Git、cURL、Python、Node.js)属于 POSIX 命令行工具体系,它们不会主动去读取 Windows 的注册表代理,而是严格遵循通用的系统环境变量:`HTTP_PROXY` 与 `HTTPS_PROXY`。

二、获取当前的本地代理地址与端口

在配置环境变量前,必须确认客户端监听的本地端口:

打开 Clash Verge Rev 界面,点击左侧「设置」。

找到「混合端口 (Mixed Port)」,默认通常是 `7890` 或 `7897`。

对应的本地代理地址即为:

  • HTTP 协议代理:`http://127.0.0.1:7897`
  • Socks5 协议代理:`socks5://127.0.0.1:7897`

三、终端快速配置代理实操步骤

1. 在 CMD(命令提示符)中临时生效

Windows PowerShell 配置终端代理环境变量与网络测试

在黑色 CMD 窗口中,依次输入以下命令并回车(只在当前窗口生效,关闭后失效):

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

测试网络连通性:

curl -i https://ipinfo.io

如果返回的数据中显示当前节点的境外 IP,说明当前终端会话已经成功接入代理。

2. 在 Windows PowerShell 中配置快捷函数

在日常使用中,推荐在 PowerShell 个人配置文件中添加一键开关函数:

在 PowerShell 中运行 `notepad $PROFILE` 打开配置文件。

在文件末尾粘贴以下代码:

function set-proxy {
    $env:HTTP_PROXY="http://127.0.0.1:7897"
    $env:HTTPS_PROXY="http://127.0.0.1:7897"
    Write-Host "已开启终端代理 [127.0.0.1:7897]" -ForegroundColor Green
}

function unset-proxy {
    $env:HTTP_PROXY=""
    $env:HTTPS_PROXY=""
    Write-Host "已关闭终端代理" -ForegroundColor Yellow
}

保存并关闭记事本。今后每次打开 PowerShell,只需输入 `set-proxy` 即可一键开启命令行代理,输入 `unset-proxy` 即可一键复原。

3. 针对 Git 客户端的专用代理配置

如果经常需要拉取 GitHub 代码:

# 为全局 Git 配置走本地代理端口
git config --global http.proxy http://127.0.0.1:7897
git config --global https.proxy http://127.0.0.1:7897

# 如需取消 Git 代理,执行:
git config --global --unset http.proxy
git config --global --unset https.proxy

四、常见避坑提醒(FAQ)

问:配置了环境变量后,ping 命令依然超时不通?

答:这是正常的。ping 命令使用的是底层的 ICMP 网络协议,而 HTTP/SOCKS 代理只负责转发 TCP 和 UDP 应用层流量,无法代理 ICMP 报文。测试终端代理是否生效,应当使用 `curl -I https://www.google.com` 或 `git fetch` 进行验证。