使用场景

GitHub 代理怎么设置:网页、clone 与终端的三条路径

2026-10-20 更新约 6 分钟读完
先说结论

GitHub代理要分三条路设置:浏览器靠系统代理或扩展,git 命令行靠 git 自己的代理配置或环境变量,包管理器靠各自的代理设置。想省事,可以用规则分流让 GitHub 相关域名自动走代理,再用 TUN 覆盖不读代理设置的工具。设置后,用一次 clone 或 ls-remote 验证是否生效。

GitHub代理怎么设置,几乎是每个程序员都要折腾一遍的事:浏览器里明明能打开,到了终端里 git clone 却慢得像在爬;好不容易设好了 git,又发现 npm、pip 依旧很慢。原因很简单:**不同的工具,走的是不同的网络路径,代理要各管各的。**这篇把三条路径讲清楚,再给你一套“按规则自动分流”的省事办法,最后教你怎么验证。

先搞清楚:三条路径,三种设置

路径 典型使用 读不读系统代理 怎么设置
浏览器 打开 GitHub 网页、下载 Release 读 系统代理,或浏览器扩展
git 命令行 clone、pull、push 默认不读 git 的代理配置,或环境变量
包管理器与其他工具 npm、pip、go 等 各不相同 各自的代理设置或环境变量

这张表是整件事的地图:设置之前,先问自己“我要让哪条路走代理”。关于系统代理为什么不是万能的,读 开了系统代理没反应。

第一条路:浏览器

浏览器通常会读取系统代理,所以最简单:在客户端里打开系统代理,浏览器就会走客户端。如果只想让 GitHub 走代理,可以靠客户端的规则分流,让 GitHub 相关域名走代理,其余直连。规则分流的原理见 规则分流是什么。

第二条路:git 命令行

git 有两种常用的设置办法。

**办法一:git 自己的代理配置。**示例里的端口是占位,请换成你的客户端实际使用的端口:

git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

想取消,用对应的取消命令:

git config --global --unset http.proxy
git config --global --unset https.proxy

**办法二:环境变量。**在当前终端里临时设置,关闭终端就失效。macOS 或 Linux 可以这样:

export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890

Windows 的 PowerShell 写法略有不同:

$env:https_proxy = "http://127.0.0.1:7890"
$env:http_proxy = "http://127.0.0.1:7890"

两种办法各有适用场景:全局配置省事但容易忘记取消,环境变量更灵活、影响范围小。

第三条路:包管理器和其他工具

包管理器常常有自己的代理设置,也常常读环境变量。思路是:

  1. 先查这个工具的官方文档,看它支持哪种代理设置方式;
  2. 优先用它自己的配置,其次用环境变量;
  3. 设置之后用一个小任务验证,比如下载一个小的包。

具体命令随工具而异,这里不一一列举,避免写出不准确的内容。关于 GitHub 本身的使用说明,可以参考 GitHub 官方文档。

想省事:让规则分流替你决定

逐个工具设置,容易遗漏。更省心的办法是:

  1. **用规则分流。**让 GitHub 相关域名走代理、国内网站直连,浏览器这一路无需额外设置;
  2. **用 TUN 补上不读代理的工具。**TUN 在网络层接管流量,连 git 这类不读系统代理的命令行也能被覆盖,原理见 TUN 模式是什么意思;
  3. **代价要心里有数。**TUN 需要更高权限,也更容易与其他软件冲突,建议先用前两条路径,确有需要再开。

自己动手:怎么验证真的走了代理

设置完成后,别只凭感觉,做一次验证:

验证项 做法 通过的标志
git 能否访问 用 git 列出一个公开仓库的远程引用 命令能较快完成,没有超时
客户端是否看到连接 在客户端的连接或日志页面查看 出现 GitHub 相关域名的记录
取消代理后对比 取消 git 代理,再执行同一命令 明显变慢或失败,说明之前确实生效
浏览器访问 打开仓库页面和 Release 下载 页面正常、下载顺畅

对比取消前后的差别,是最有说服力的验证方式。

GitHub代理常见故障与对策

现象 常见原因 先做什么
浏览器能开,git 不行 git 没有配置代理 按上文设置,并验证
设置了代理,git 报连接失败 端口与客户端不一致,或客户端没在运行 核对端口,确认客户端已启动
取消代理后 git 反而更慢 国内直连本身就慢 用规则分流,只让需要的域名走代理
SSH 方式 clone 不走代理 SSH 不读 HTTP 代理配置 改用 HTTPS 方式,或在 SSH 配置里单独设置
打开 GitHub 页面异常 网络或节点问题 读 GitHub 打不开或很慢怎么办

不同的使用场景,推荐怎么配

你的场景 推荐的组合 理由
只在浏览器里看仓库、下载 Release 系统代理加规则分流 最省事,不用碰命令行
日常 clone、pull、push git 代理配置,或规则分流加 TUN 命令行默认不读系统代理
在服务器或容器里拉代码 环境变量,限定在当前会话 影响范围小,容易清理
临时拉一个仓库 一次性环境变量 用完即走,不留痕迹
长期开发,多种工具混用 规则分流加 TUN 一次设置,覆盖面广

选择的原则是:影响范围越小越好,能临时就别永久,能局部就别全局。全局的 git 代理配置虽然方便,却容易在不需要时忘记取消,反而拖慢国内仓库的访问。

取消与回退:别忘了收尾

设置代理很容易,忘记取消也很容易。下面几个收尾的习惯,值得养成:

  1. 临时设置的环境变量,关掉终端即失效,不必特意处理;
  2. 全局的 git 代理,用完在不需要时取消,或者改成只对 GitHub 域名生效;
  3. 换了客户端或端口之后,回头检查 git 配置里的端口是否还对得上;
  4. 定期用一次 git config 的列表命令,看看有没有遗留的代理设置。

这样既能让 GitHub 访问顺畅,又不会让国内的代码托管访问被无谓地拖慢。

几个常见的误解

  • **“浏览器能用,终端也一定能用。”**两者路径不同,要分别设置;
  • **“设了全局代理就一劳永逸。”**国内站点也被代理会变慢,建议用规则分流;
  • **“公开的订阅或节点能用来加速 GitHub。”**来路不明的节点存在安全风险,不建议使用;
  • **“代理设置得越多越好。”**只设置需要的那几条路径,减少遗忘和冲突。

下一步

程序员的整体选机场思路,读 程序员选机场;想按条件筛选,用 选机场向导,再翻 机场推荐榜 核对资料。GitHub代理怎么设置,抓住三条路径、一次验证、规则分流这三件事,就不再手忙脚乱。

这篇没有覆盖的
  • 命令与设置项因系统、git 版本和客户端不同而有差异,本文给的是通用写法,请以官方文档和你所用客户端为准。
  • 示例里的端口是占位,请换成你的客户端实际使用的端口。
  • 本文不提供任何机场的速度数据,爱梯子没有 GitHub 访问速度的测试记录。

爱梯子榜单里排在前面的几家

名次看的是资料完整度和跟进程度,不是测速成绩。价格、线路一律照档案原样摆出来,付款前请到官网结账页再核一遍。

名次机场最低一档流量线路
第 1 名无忧链接¥6.6/月 按年付费40GB/月IPLC、IEPL官网入口
第 2 名暮光加速折合 ¥9.1/月 按年付费70GBIEPL官网入口
第 3 名微风网络¥27/月 按月付费200GBIEPL官网入口
第 4 名飞猫云折合 ¥7/月 按年付费50GBIPLC官网入口
第 5 名Firefly约¥8/月起 按年付费60GBIPLC官网入口
第 6 名灵动云折合 ¥8.3/月 按年付费70GBIEPL官网入口

看完整的机场推荐榜 → 数据来自机场档案,价格以官网结账页为准。

本文引用的官方来源

这篇的几个常见问题

为什么浏览器能打开 GitHub,git clone 却很慢或失败?

因为浏览器和 git 走的是不同的网络路径。浏览器可以读取系统代理,git 命令行默认不读,除非你给它配置代理或设置环境变量。所以浏览器里的代理生效,并不意味着终端里的 git 也走了代理,需要单独设置和验证。

git 代理设置,是用 HTTP 代理还是 SOCKS?

取决于你的客户端提供什么。多数客户端会同时开放 HTTP 和 SOCKS 两种本地代理端口,git 两种都支持,配置时的写法略有不同。选一个你的客户端实际监听的端口,并保持与客户端设置一致。

用 SSH 方式 clone,代理怎么设?

SSH 方式不走 HTTP 代理设置,需要在 SSH 的配置里单独指定代理方式,或者改用 HTTPS 方式 clone。具体写法请查 git 与 SSH 的官方文档。如果你不想折腾,用 TUN 让更多程序的流量被接管,也是一种思路。

设置了代理,怎么确认真的生效了?

用一条只读命令验证最直接,比如用 git 访问一个公开仓库并列出远程引用,看是否能快速完成;同时在客户端的连接日志里,看是否出现了 GitHub 相关域名的连接记录。两处都对得上,说明代理已生效。