尼采般地抒情

尼采般地抒情

尼采般地抒情

音乐盒

站点信息

文章总数目: 316
已运行时间: 1570

前言:今年GitHub的各种操作被屏蔽的挺迷的,一开始我只是以为偶尔报个连接失败的port443的错误,但是后来经常性的出现本地push不上GitHub的情况,在此情况记录一下各种情况(clone、pull、push……)连接不上的解决办法。


一、报错信息与原因分析

报错信息

Git push出(10054)/(port 443:time out)错

git push error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054


原因分析

  1. 由于Http协议错误,当 pull 或者 clone 的时候,或者是 github 某个CDN被qiang屏蔽所致。
  2. 用了kexueshangwang工具之后,由于更改代理服务器连接端口,导致本地push偶尔失败(但是以前有用)。

二、常规解决方案

2021.06.29更新解决方法:【针对clone失败】https的连接不行,那就用ssh的连接。

2021.07.13更新解决方案:【针对pull、push失败】ssh连接push连接不行,那就用token来push。

常规解决方法:

第一种方法是下面的三条命令,另外如果用了该三条命令还不行,那就ctrl + c ,再进行输入命令,以此往复,总会出现GitHub的登录框的……;

第二种方法就是在本地对host进行更改,让其可以访问github网站的相关ip;

常规解决方案1:改代理

10054的bug复制下面的

git config http.postBuffer 524288000

443的bug复制下面的

# 设置ss
git config --global http.proxy 'socks5://127.0.0.1:10080'
git config --global https.proxy 'socks5://127.0.0.1:10080'
# 设置代理
git config --global https.proxy http://127.0.0.1:10080
git config --global https.proxy https://127.0.0.1:10080
# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy

常规解决方案2:改变本地hosts文件

https://www.ipaddress.com/里面查找下面三个域名的ip地址

  • github.com
  • github.global.ssl.fastly.net
  • codeload.github.com

将其添加到本电脑hosts文件当中

C:\Windows\System32\drivers\etc\hosts 

类似下面:

CMD窗口刷新DNS缓存

ipconfig /flushdns

三、针对性解决方案

上面两种方案理论上解决了问题,但是奇葩的问题年年有,上述两种方案都不能解决,就用如下方案:

针对clone失败

如果https连接失败,使用ssh链连接(前提是电脑端配置了ssh),如果ssh连接也不行,那就下面的针对pull、push失败的方案。

针对pull、push失败

ssh连接不行,那就使用token来连接

git push https://一串token@github.com/wztlink1013/datastructure-algorithm

参考


评论区