Clash Verge Rev 命令行代理:终端、curl 与 Git 设置
按单条命令、当前终端、单次 Git 操作设置代理,并检查与恢复环境变量。
本页目录
先确认本地代理端口
命令行工具不一定读取操作系统的代理设置。浏览器能上网而终端超时,先给目标工具明确指定代理,不必立刻重装客户端。
打开 Clash Verge Rev 设置,确认实际混合代理端口。下文以 7897 为例;如果你的端口不同,每条命令都要改成实际值。客户端必须正在运行且当前节点可用。电脑本机使用 127.0.0.1,它不是机场服务器地址。

先用单条 curl 命令验证
macOS、Linux 的终端运行:
curl --proxy http://127.0.0.1:7897 --noproxy "" \
--connect-timeout 10 --max-time 20 -I https://example.com/
Windows PowerShell 使用 curl.exe,避免被旧版 PowerShell 的同名别名误导:
curl.exe --proxy http://127.0.0.1:7897 --noproxy "" --connect-timeout 10 --max-time 20 -I https://example.com/
收到目标网站的 HTTP 响应,说明这条请求经过本地代理完成了连接;不代表所有网站都能访问,也不代表一定经过远端节点——最终仍受规则模式和所选策略影响。回到客户端连接页核对域名、命中规则和出站。
Connection refused 通常先查端口与内核是否运行;建立本地代理连接后才超时,则继续查节点和目标站。不要用关闭 TLS 校验掩盖证书错误。
Bash / Zsh:只让当前终端使用代理
确认没有需要保留的现有代理变量后,在当前窗口执行:
export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897
export no_proxy=localhost,127.0.0.1,::1
HTTPS 目标使用 https_proxy,值仍可为本地 HTTP 代理地址,工具会通过 CONNECT 建立隧道。先不要写入 .zshrc 或 .bashrc;当前窗口验证通过后,再决定是否需要长期设置。
客户端「复制环境变量类型」可选择相应终端语法后复制。复制得到的是命令,粘贴到终端执行后才会影响该会话;复制按钮不会自动给所有终端和编辑器配置代理。
PowerShell 与 CMD
PowerShell 当前会话:
$env:http_proxy = 'http://127.0.0.1:7897'
$env:https_proxy = 'http://127.0.0.1:7897'
$env:no_proxy = 'localhost,127.0.0.1,::1'
CMD 当前窗口:
set http_proxy=http://127.0.0.1:7897
set https_proxy=http://127.0.0.1:7897
set no_proxy=localhost,127.0.0.1,::1
从这个终端新启动的子进程通常会继承变量;之前已经打开的编辑器或终端不一定会改变。WSL、容器和虚拟机有自己的网络环境,其中的 127.0.0.1 未必指向宿主机。先确认运行位置,再参考局域网连接教程
配置可达的宿主机地址。
Git 先使用单次设置
HTTPS 仓库可先做一次只读访问:
git -c http.proxy=http://127.0.0.1:7897 ls-remote https://github.com/clash-verge-rev/clash-verge-rev.git HEAD
这条命令只为本次 Git 操作指定代理,不会写入全局 Git 配置。SSH 形式的 git@github.com:... 不使用同一个 HTTP 代理设置;不能因为 HTTPS 测试成功就认定 SSH 也已经配置完。
如果 Git 仍使用别的代理,查看配置来源:
git config --show-origin --get-all http.proxy
输出路径可能含用户名,求助时不要直接贴完整结果。需要长期设置时,优先仅在目标仓库使用 git config --local http.proxy ...;修改前记录已有值,避免覆盖原先的企业代理。
SOCKS 与 DNS 的区别
混合端口也支持 SOCKS5。需要由代理端解析目标域名时,可使用:
curl --proxy socks5h://127.0.0.1:7897 --noproxy "" -I https://example.com/
socks5h 与 socks5 的域名解析位置不同。一次测试只换这一项,保持节点与目标不变,才能判断失败是否与本地解析有关。
使用结束后恢复
Bash/Zsh 中移除本次设置:
unset http_proxy https_proxy no_proxy
PowerShell:
Remove-Item Env:http_proxy, Env:https_proxy, Env:no_proxy -ErrorAction SilentlyContinue
CMD 用 set http_proxy=、set https_proxy=、set no_proxy=。若此前已有这些变量,恢复记录的原值而不是删除。还设置过 ALL_PROXY、大写变量或 Git 仓库代理时,也要分别检查;只关客户端,残留代理仍会让命令连接一个已经不存在的端口。
相关文档:curl 代理参数 、Git http.proxy 。