<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Proxy on LeafCxy's Blog</title><link>https://leafcxy.github.io/tags/proxy/</link><description>Recent content in Proxy on LeafCxy's Blog</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 11 Aug 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://leafcxy.github.io/tags/proxy/index.xml" rel="self" type="application/rss+xml"/><item><title>Git 代理配置完全指南</title><link>https://leafcxy.github.io/posts/git-proxy-guide/</link><pubDate>Tue, 11 Aug 2026 10:00:00 +0800</pubDate><guid>https://leafcxy.github.io/posts/git-proxy-guide/</guid><description>&lt;p&gt;这篇文章梳理 Git 中所有代理配置方式，从简单的 &lt;code&gt;git config&lt;/code&gt; 到 SSH 协议的 SOCKS5 隧道，一份指南全搞定。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h2 id="为什么需要代理"&gt;为什么需要代理&lt;/h2&gt;
&lt;p&gt;访问 GitHub、GitLab 等平台时，有时会遇到 &lt;code&gt;git clone&lt;/code&gt; 速度极慢甚至超时的情况。尤其是在国内网络环境下，给 Git 配置代理几乎是必备技能。&lt;/p&gt;
&lt;div class="mermaid" align="center"&gt;flowchart LR
A[你的电脑] --&gt; B{需要代理？}
B --&gt;|直连通畅| C[直接连接 Git 服务器]
B --&gt;|速度慢/超时| D[代理服务器]
D --&gt; E[Git 服务器&lt;br/&gt;github.com&lt;br/&gt;gitlab.com]
C --&gt; E&lt;/div&gt;
&lt;h2 id="配置方式总览"&gt;配置方式总览&lt;/h2&gt;
&lt;p&gt;Git 提供多种配置代理的途径，优先级从高到低：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;配置方式&lt;/th&gt;
&lt;th&gt;持久性&lt;/th&gt;
&lt;th&gt;作用范围&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-c&lt;/code&gt; 命令行参数&lt;/td&gt;
&lt;td&gt;单次命令&lt;/td&gt;
&lt;td&gt;单仓库&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git config --local&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;写入 &lt;code&gt;.git/config&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;单个仓库&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git config --global&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;写入 &lt;code&gt;~/.gitconfig&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;当前用户&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;环境变量&lt;/td&gt;
&lt;td&gt;Shell 会话级&lt;/td&gt;
&lt;td&gt;当前终端&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="mermaid" align="center"&gt;graph TD
A[Git 发起网络请求] --&gt; B{有 -c 参数？}
B --&gt;|是| F[使用 -c 指定的代理]
B --&gt;|否| C{有 local 配置？}
C --&gt;|是| G[使用 local 代理]
C --&gt;|否| D{有 global 配置？}
D --&gt;|是| H[使用 global 代理]
D --&gt;|否| E{有环境变量？}
E --&gt;|是| I[使用环境变量代理]
E --&gt;|否| J[直连]&lt;/div&gt;
&lt;h2 id="一httphttps-代理"&gt;一、HTTP/HTTPS 代理&lt;/h2&gt;
&lt;p&gt;这是最常用的方式，适用于 &lt;code&gt;https://&lt;/code&gt; 协议的仓库。&lt;/p&gt;
&lt;h3 id="11-配置命令"&gt;1.1 配置命令&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 全局设置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global http.proxy http://127.0.0.1:7890
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global https.proxy http://127.0.0.1:7890
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 仅对当前仓库设置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --local http.proxy http://127.0.0.1:7890
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 查看当前配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global --get http.proxy
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 取消代理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global --unset http.proxy
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global --unset https.proxy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="12-带认证的代理"&gt;1.2 带认证的代理&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 用户名密码认证&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global http.proxy http://user:pass@127.0.0.1:7890
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 特殊字符需要 URL 编码，@ → %40，: → %3A&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global http.proxy http://user:p%40ss@127.0.0.1:7890
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="13-针对特定域名"&gt;1.3 针对特定域名&lt;/h3&gt;
&lt;p&gt;只想给 GitHub 走代理，公司内网 GitLab 直连？按域名精准控制：&lt;/p&gt;</description></item></channel></rss>