This article was last updated on days ago, the information described in the article may be outdated.
问题
从 GitHub 仓库进行克隆(clone)推送(push)和拉取(pull)等操作速度过慢
分析
git 应用内未设置 Proxy
socks5 Proxy 位于会话层,无法解决更底层的通讯 Proxy 问题
层次 | 名称 | 协议举例 |
---|---|---|
7 | 应用层 | HTTP、DNS、FTP、SMTP、POP3、SSH |
6 | 表示层 | 略 |
5 | 会话层 | SOCKS |
4 | 传输层 | TCP、UDP |
3 | 网络层 | IP、ICMP、IGMP、IPSec |
2 | 链路层 | MAC、ARP & RARP、SLIP、PPP、PPPoE、 L2TP |
1 | 物理层 | USB 、RS-232 |
解决
方案1 应用内 Proxy
HTTP Proxy
1 | git config --global http.proxy http://127.0.0.1:8080 |
socks5 Proxy
1 | git config --global http.proxy socks5://127.0.0.1:1080 |
取消设置
1 | git config --global --unset http.proxy |
只针对 GitHub
1 | git config --global http.https://github.com.proxy socks5://127.0.0.1:1080 |
方案2 对“git”进程注入
以 proxifier 为代表的这类软件,可以对其它上网软件的进程进行注入(把自己的某个动态库注入到上网软件的进程中)。通过注入自己的动态库,就可以截获(被注入的)上网软件的网络行为,并修改其网络行为使网络通讯的数据转向指定的 Proxy
proxifier 是付费软件,你可以在官网购买该软件。嗯~或者你搜索一下,说不定网上也有激活码
具体使用方法参见 proxifier 官方文档
配置时请小心死循环
疗效
从 10k/s 提升到这里,我很满意了,运气好的时候可达到 7 Mib/s
附加:
proxifier 有时候无法解决 UWP 的 Proxy 问题,可尝试使用 Fiddler 来辅助解决
Author: CaryC
文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。
Permalink: https://blog.wdsxhb.club/2020/05/22/git/
Comments