配置 Git 使用 Clash 代理
一、前提条件
- Clash 已安装并运行:确保 Clash 正在运行,并且加载了正确的配置文件。
- 代理端口:Clash 的
mixed-port
设置为7890
(默认 HTTP 和 SOCKS5 代理端口)。 - Git 已安装:确保你已安装 Git,并且可以通过命令行运行
git --version
验证。
二、步骤
1. 确认 Clash 代理状态
- 启动 Clash(例如 Clash for Windows)。
- 检查配置文件(通常是
config.yaml
),确认以下内容:1
mixed-port: 7890
- 确保 Clash 已运行,并且代理服务监听在
127.0.0.1:7890
。可以用以下命令检查:如果返回类似1
netstat -ano | findstr 7890
TCP 127.0.0.1:7890 0.0.0.0:0 LISTENING
,说明端口正常开放。
2. 配置 Git 使用 Clash 代理
- 打开命令行(CMD 或 Git Bash)。
- 设置 Git 的全局代理,使用 HTTP 协议(因为 Clash 的
mixed-port
支持 HTTP):1
2git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890 - 解释:
http.proxy
:设置 HTTP 协议的代理。https.proxy
:设置 HTTPS 协议的代理(GitHub 使用 HTTPS)。127.0.0.1:7890
:Clash 的本地代理地址和端口。
3. 验证代理配置
- 检查 Git 是否正确应用了代理设置:
1
2git config --global --get http.proxy
git config --global --get https.proxy - 如果返回
http://127.0.0.1:7890
,说明配置成功。
4. 测试代理连接
- 测试 Git 是否能通过代理访问 GitHub:
1
git ls-remote https://github.com/{User}/{RepositoryName}.git
- 成功输出示例:
1
2
300c87001b3c99bec7a6f1ef4b342c9a4f3d668d7 HEAD
00c87001b3c99bec7a6f1ef4b342c9a4f3d668d7 refs/heads/main
... - 如果失败(例如超时或连接错误),检查 Clash 是否运行,或者端口是否正确。
5. 使用 Git 操作
- 配置成功后,可以正常使用 Git 命令,例如克隆仓库:
1
git clone https://github.com/{User}/{RepositoryName}.git
- 或者拉取更新:
1
git pull
三、常见问题及解决方法
-
错误:无法连接到 127.0.0.1:7890
- 原因:Clash 未运行,或端口未监听。
- 解决:
- 启动 Clash,确保配置文件中的
mixed-port
是7890
。 - 检查端口:
netstat -ano | findstr 7890
。 - 如果端口被占用,修改 Clash 配置中的
mixed-port
(例如改为 7891),然后更新 Git 配置:1
2git config --global http.proxy http://127.0.0.1:7891
git config --global https.proxy http://127.0.0.1:7891
- 启动 Clash,确保配置文件中的
-
Clash 运行正常,但 Git 仍无法连接
- 原因:Clash 的代理规则可能将 GitHub 设为直连(DIRECT)。
- 解决:
- 编辑 Clash 配置文件,添加规则:
1
- DOMAIN-SUFFIX,github.com,PROXY
- 保存并重启 Clash。
- 编辑 Clash 配置文件,添加规则:
-
不需要代理时如何取消
- 清除代理设置:
1
2git config --global --unset http.proxy
git config --global --unset https.proxy
- 清除代理设置:
四、可选:使用环境变量(临时配置)
如果你不想修改全局配置,可以在当前命令行会话中设置环境变量:
- CMD:
1
2
3set HTTP_PROXY=http://127.0.0.1:7890
set HTTPS_PROXY=http://127.0.0.1:7890
git clone https://github.com/{User}/{RepositoryName}.git - Git Bash:
1
2
3export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
git clone https://github.com/{User}/{RepositoryName}.git
这种方式只在当前会话有效,关闭窗口后失效。
五、总结
通过以上步骤,你应该能成功配置 Git 使用 Clash 代理。如果你的 Clash 端口不是 7890,只需将教程中的端口号替换为实际值即可。配置完成后,Git 将通过 Clash 访问远程仓库(如 GitHub),非常适合需要代理的网络环境。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 梨花先雪!
评论