GitHub 访问与下载加速:机场节点选择、git 代理与终端代理设置
本文要点
- 浏览器能开 GitHub 不代表 git 和终端也走了代理,它们需要单独配置代理地址。
- Release 和 raw 文件下载走的是 githubusercontent.com 等域名,分流规则漏掉它们就会很慢。
- GitHub 对节点地区不敏感,优先选延迟低、晚高峰稳定的节点,不必追求特定国家。
GitHub 对节点有什么要求
GitHub 本身对访问者的地区和 IP 类型几乎没有限制,不像 AI 工具和流媒体那样需要特定国家的节点。它的痛点只有两个:连得上和下得快。所以选节点时不用纠结地区,看三件事就够了:
- 延迟低:影响 git 推拉时的握手速度和网页响应,一般离你近的节点更好。
- 带宽足:影响 clone 大仓库和下载 Release 的速度。
- 晚高峰稳定:开发常在晚上,节点一到晚上就抽风会直接导致 push 失败。
如果你的机场有多个地区,可以先用香港、日本、新加坡这类近距离节点,下载大文件时再对比一下美国节点,哪个快用哪个。想要晚上也稳定的,可以参考 稳定机场推荐。
浏览器能开,git 却不走代理
这是最常见的误解。客户端开启「系统代理」后,只有遵守系统代理设置的程序(浏览器、部分 GUI 软件)会走代理。git 命令和大部分终端程序不读系统代理,所以网页能打开,git clone 还是慢甚至超时。
解决办法有两种:
- 给 git 单独配置代理(下面详细讲)。
- 开启客户端的 TUN 模式,让所有程序的流量都经过客户端,不用逐个配置。做法见 TUN 模式使用。
给 git 和终端配置代理
先在客户端里找到本地代理端口,一般在设置或首页能看到,Clash 系客户端常见默认端口是 7890,其他客户端以界面显示的为准。下面以 127.0.0.1:7890 为例。
只让 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
注意这只对 https://github.com/... 形式的仓库地址生效。SSH 方式(git@github.com:...)不走 HTTP 代理,最简单的做法是改用 HTTPS 地址 clone,或者直接用 TUN 模式。
让整个终端会话走代理
很多命令行工具(curl、pip、npm、go 等)会读取环境变量 HTTP_PROXY 和 HTTPS_PROXY。
macOS / Linux 终端:
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
Windows PowerShell:
$env:HTTP_PROXY="http://127.0.0.1:7890"
$env:HTTPS_PROXY="http://127.0.0.1:7890"
这些变量只在当前终端窗口有效,关掉就失效;想长期生效可以写进 shell 配置文件,但记得用完机场后它们仍会尝试连本地端口,客户端没开时命令会报连接被拒绝。
只让 GitHub 走代理的分流思路
国内 git 托管、公司内网服务不需要走代理,全局代理反而会把这些流量绕一圈。更合理的做法是在客户端里用规则模式,只匹配 GitHub 相关域名。要覆盖的不止 github.com 一个:
| 域名 | 用途 |
|---|---|
| github.com | 网页、HTTPS clone、API |
| githubusercontent.com | raw 文件、Release 附件、头像 |
| githubassets.com | 网页静态资源 |
| github.io | GitHub Pages 站点 |
主流订阅自带的规则集通常已经包含这些域名;如果你用的是自定义配置,在规则里按「域名后缀」匹配这几条,全部指向代理即可。
Release 下载慢和常见报错
Release 下载慢:附件实际从 githubusercontent.com 系列域名下载,只匹配 github.com 的规则会漏掉它,流量就直连了。按上表补齐域名,或临时切全局模式验证一下是不是规则问题。
Failed to connect to github.com port 443:git 配置的代理端口和客户端实际端口不一致,或者客户端没有运行。核对端口再试。
Connection was reset / Recv failure:多半是当前节点不稳定或被干扰,换一个节点;如果所有节点都这样,按 国外网站打不开 的顺序排查。
白天正常,晚上一到就超时:典型的晚高峰拥堵,见 晚高峰速度变慢。长期靠 GitHub 工作的开发者,可以考虑 IEPL 专线机场,晚上会稳不少。
常见问题
开了机场为什么 git clone 还是很慢?
大多数客户端默认只接管系统代理,也就是浏览器的流量。git 不读系统代理设置,需要用 git config 单独指定 http.proxy,或者开启 TUN 模式让所有流量都经过客户端。
GitHub Release 下载速度为什么比网页慢得多?
Release 附件和 raw 文件实际由 githubusercontent.com 等域名提供,如果分流规则只匹配了 github.com,这些下载会直连国内线路。把这些域名也加进代理规则即可。
访问 GitHub 应该选哪个地区的节点?
GitHub 没有地区限制,选哪国节点都能用。一般选离你物理距离近、延迟低的节点,比如香港、日本、新加坡,大文件下载再切到带宽更足的节点对比一下即可。