使用 git 进行 push 时几乎无法连接

2021-11-30 13:25:55 +08:00
 Leoscott
如题,push 上去获得的响应要么是 Timeout 要么是 Connectiong reset.但偶尔会 push 成功。我平时习惯开着 clash ,也是时而成功时而不成功。而且我开着与不开着 clash 都尝试过。然而我把电脑晾个五六分钟就又可以成功 push 一次两次。请问有什么解决方法呢。已尝试过网上的方法都不管用。测试时用过校园网和手机热点,情况都一样
3769 次点击
所在节点    GitHub
10 条回复
fortynine
2021-11-30 13:29:54 +08:00
clash tun
Leoscott
2021-11-30 13:50:58 +08:00
@fortynine 请问是什么意思
virlaser
2021-11-30 14:27:21 +08:00
用的 clash for Windows ,git 流量默认不走 clash ,可以开个 socket 端口来提供代理,让 push 的流量走 clash

# 设置代理
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

但是上面比较麻烦,每次都要设置。因此需要找个办法让流量强制走 clash ,就是用 clash 的 tun 模式,虚拟张网卡,接管所有流量。下面是 clash for Windows 的文档。

https://docs.cfw.lbyczf.com/contents/tun.html#windows
gadfly3173
2021-11-30 15:07:06 +08:00
@virlaser #3 不需要每次开了再关把。。可以设置 DOMAIN-SUFFIX 之类的,只代理特定域名就好了
HongJay
2021-11-30 15:15:13 +08:00
对的。和楼上一样让 git 走代理就好了
Leoscott
2021-11-30 15:56:47 +08:00
@virlaser 原来是因为 git 流量默认不走 clash 配置的代理。请问这是什么原理呢
Leoscott
2021-11-30 15:58:52 +08:00
@virlaser
@HongJay 我在 clash 面板中的 connection 看到了 api.github.com:443 ,而且有走代理
Leoscott
2021-11-30 15:59:42 +08:00
@virlaser 文档已阅👍
virlaser
2021-11-30 16:25:33 +08:00
@Leoscott 我的理解是这样的,你打开 clash 后,clash 会修改系统的代理,把系统的代理指向 clash 起的代理服务器,浏览器默认会读取系统代理,因此使用浏览器的流量就会被正常代理;但是 git 不会去读取系统的代理设置,所以需要手动设置 git 的代理。
如果 git 的流量已经经过了代理还是不行,需要考虑下是不是梯子不太稳定。我这边代理了 git 的流量后,clone 下载的速度都可以把宽带跑满的。
Leoscott
2021-11-30 19:12:22 +08:00
@virlaser 系统的代理修改为了 127.0.0.1 localhost 。git 可能真的没有经过 clash(多次尝试 push ,clash 中没有出现与 github.com 的 connection)。梯子倒是一直稳,因为浏览器里开网页没问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/819005

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX