尼采般地抒情

公告栏

此网站主题为本人手写主题, 主题待开源···

站点信息

文章总数目: 305
已运行时间: 1063
目录
  1. 一、报错信息与原因分析
    1. 报错信息
    2. 原因分析
  2. 二、常规解决方案
    1. 常规解决方案 1:改代理
    2. 常规解决方案 2:改变本地 hosts 文件
  3. 三、针对性解决方案
    1. 针对 clone 失败
    2. 针对 pull、push 失败
  4. 参考

尼采般地抒情

尼采般地抒情

公告栏

此网站主题为本人手写主题, 主题待开源···

站点信息

文章总数目: 305
已运行时间: 1063

前言:今年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

参考


评论区

Twikoo giscus