GitHub为什么连接缓慢以及解决方法
1. 前言
之前有一篇文章介绍了Git的使用方法:项目或者文件管理神器-Git。
一般对于电脑有一定认知的人都会知道GitHub,但是因为GitHub的服务器在国外,所以有时候连接速度非常的感人。
我们通过ipip.net的路由跟踪来看一下我们访问GitHub走的线路。

可以看到在广州出口走的骨干网到新加坡的服务器,这就是为什么访问GitHub有时候会异常缓慢的原因,尤其是在晚高峰时期,通过骨干网出口的数据量过于庞大,电信还会选择权重不高的用户进行丢包,从而缓解骨干网拥挤的问题。
具体的服务器和线路详解可以参考:VPS的各种线路到底有什么区别。
2. 终极解决办法
看了网上有非常多的帖子说修改host,但是我个人认为,修改host并不能解决骨干网晚高峰拥挤的问题。
终极解决方法是通过代理服务器。
首先你需要有一个境外的服务器,参考VPS的各种线路到底有什么区别该文章中讲解的服务器,或者你有其它的代理软件也可以,但是连接代理服务器时的出口线路一定不能是骨干网,不然跟直连没有任何区别,依然连接缓慢。
关于代理服务器这里就不详细讲解了,这篇文章着重讲解如何通过代理服务器来连接GitHub,从而摆脱缓慢的Clone速度。
2.1 代码
# 设置ssgit config --global http.proxy socks5://127.0.0.1:1080
git config --global https.proxy socks5://127.0.0.1:1080
# 设置代理git config --global https.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080
# 取消代理git config --global --unset http.proxy
git config --global --unset https.proxy
# 仅代理GitHubgit config --global http.https://github.com.proxy https://127.0.0.1:1080
git config --global https.https://github.com.proxy https://127.0.0.1:10802.2 步骤
首先需要知道你的代理服务器使用的端口号,在你的代理软件上可以看到,一般是1080,但是Clash默认使用的是7890。
- 打开Git命令窗口,该窗口安装Git后在文件夹中点击右键选择
Git bash here就会出现:

- 输入
git config --global http.proxy socks5://127.0.0.1:1080点击回车。(1080需要填写你的代理软件使用的端口号,我的是7890)

- 没有任何消息就是最好的消息,这个时候就设置完成了。
注意:其它的设置可以参考上面给出的代码。
3. 速度测试
3.1 没有用代理的速度

3.2 用代理后的速度
设置完毕后,Clone和git push的速度就跟你代理服务器的质量密切相关。

4. 使用镜像站
该方法仅对git clone有用,对git push无效,并且无法登陆账号,私人项目无法进行Clone。
比如Clone Vue项目,项目地址:https://github.com/vuejs/vue.git。
则将地址改为https://github.com.cnpmjs.org/vuejs/vue.git。
4.1 速度

只需要在Clone时将项目地址中的github.com改为github.com.cnpmjs.org,就可以使用镜像站。
那么为什么该镜像网站会这么快呢?我们再次通过ipip.net的路由跟踪测试一下:

可以看到,在省级城市已经走上了59.43开头的线路,说明该服务器用的是CN2 GIA的线路,所以拥有这么快的传输速度完全不奇怪。
转载协议
本文采用 CC BY-NC-SA 4.0 协议进行许可,转载请注明出处。 CC BY-NC-SA 4.0
允许转载、修改和分享,但必须注明作者和出处,且不得用于商业用途,衍生作品需采用相同协议。
☕ 请我喝杯咖啡
如果这篇文章对你有帮助,欢迎打赏支持!