记录Git无法连接Github(443报错)的一种可能——代理问题

参考文章:

Git安装配置与使用(超级详细)_git配置-CSDN博客

github代理报错_valueerror: unable to determine socks version from-CSDN博客   

速通

如果在使用 git 时遇到了这样的报错:

OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

那就证明你网络有问题,问题可以通过设置代理等方式进行解决。如果已经有代理了,请在 Git Bash 中运行如下代码查看自己的配置:

git config --global -l

观察自己的 git 代理设置中使用的是什么协议,如下方情况使用的是 Socks5。

user.name=lotuscl
user.email=16******82@qq.com
credential.https://gitee.com.provider=generic
http.https://github.com.proxy=socks5://127.0.0.1:7890

 可以尝试更换代理协议为 http 协议,运行如下代码:

git config --global http.https://github.com.proxy http://127.0.0.1:7890
git config --global https.https://github.com.proxy https://127.0.0.1:7890

同理,如果本来就是使用 http 协议进行代理的,可以更换 Socks5。 

git config --global http.https://github.com.proxy socks5://127.0.0.1:7890

 

问题分析过程

隔了一段时间,我发现使用 git 克隆全部失败了,不论是通过 ssh 还是 https,报错全部为:

OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

我想了半天,怀疑是之前 github 更新的时候“强制”要求设置两步验证,导致了我无法连接 git,下面给出我当时收到的邮件:

于是我更新了 GitHub 上面的 ssh 公钥,这下 ssh 可以使用了,公钥更新可以参考下面这篇文章:

Git安装配置与使用(超级详细)_git配置-CSDN博客

但是通过 https 进行克隆还是失败,报错还是一样的报错。

我先查看了一下我以前的设置:

git config --global --list

个人当时的配置如下:

user.name=lotuscl
user.email=16******82@qq.com
credential.https://gitee.com.provider=generic
http.https://github.com.proxy=socks5://127.0.0.1:7890

可以看到我之前是设置了对 github 使用 http 协议访问的时候进行代理,并且还是用的 Socks5 协议。我就奇了怪了,之前不是一直都可以吗?怎么这回给我弹报错?

然后我翻了翻其他的文章,看到有人设置代理走的是 HTTP 协议,于是就怀疑到网络代理协议上了。我重新修改了一下规则,使用 HTTP 替换 Socks5,运行了这样的命令,并顺带加上了 https:

git config --global http.https://github.com.proxy http://127.0.0.1:7890
git config --global https.https://github.com.proxy https://127.0.0.1:7890

最终的配置如下:

user.name=lotuscl
user.email=16******82@qq.com
credential.https://gitee.com.provider=generic
http.https://github.com.proxy=http://127.0.0.1:7890
https.https://github.com.proxy=https://127.0.0.1:7890

结果再次使用 https 进行克隆的时候这回就 ok 了,并且修改回原来的 Socks5(不删除 https 代理)确实是无法克隆的。但是为什么呢?我问了一嘴 gpt,它说:

  1. Git 版本支持问题: 有些 Git 版本对 SOCKS5 代理的支持可能不如 HTTP/HTTPS 代理稳定。确保你使用的是最新版本的 Git,因为新版本通常修复了旧版本中的问题。

  2. 网络环境问题: 一些网络环境可能对 SOCKS5 代理有限制,导致无法成功连接。在某些情况下,网络防火墙或代理服务器可能不支持或不允许通过 SOCKS5 进行传输。

  3. 代理服务器配置问题: 确保代理服务器已正确配置为支持 SOCKS5 协议,且端口号和地址是正确的。

Git 版本贼新,我默认它应该是没问题的。然后我怀疑是网络环境问题,是不是哪次更新把我 clash 的 Socks5 给 ban 了,但是查了相关的资料好像又没看出个所以然,这下真暴露我的计网知识的匮乏了(悲)

然后我只能去调查一下是不是代理服务器的问题。这下惨了,春节期间客服没上班问不了,我就改用 v2rayN 使用了另一组代理服务器。v2rayN 的监听端口是 10808,于是运行下面的命令:

git config --global http.https://github.com.proxy socks5://127.0.0.1:10808

嘿您猜怎么着,居然克隆成功了!难不成还真是代理服务器的问题?出问题的范围缩小至 clash 和我使用的代理服务器上了。

还好我之前买过另外一组的服务器(人傻钱  少),我就换了另一组,并且还是使用 clash 进行代理。结果居然还真是代理服务器的问题,更换服务器组后成功克隆。

 

结论:

可恶的无良商家!!!!另外,本人的计网学得挺差的,文章很多用词不规范不准确,理解也可能有问题,欢迎大佬指出错误 orz

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/369178.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

思科交换机调试流程介绍(主要适用于OEM的思科的浪潮FS6700)

文章目录 1、光纤交换机配置流程2、交换机初始化 2-1、 默认管理地址 2-2、 更改默认管理地址 2-3、 远程登录模式 2-4、 更改用户名 3、VSAN 3-1、什么是VSAN 3-2、关于 VSAN 的一些主意事项 3-3、配置VSAN 3-4、配置验证…

龙龙送外卖pta[代码+讲解]

题目 题解 代码 题目 龙龙是“饱了呀”外卖软件的注册骑手,负责送帕特小区的外卖。帕特小区的构造非常特别,都是双向道路且没有构成环 —— 你可以简单地认为小区的路构成了一棵树,根结点是外卖站,树上的结点就是要送餐的地址…

网工每日一练(2月4日)

试题1 通过HFC网络实现宽带接入,用户端需要的设备是(A),局端用于控制和管理用户的设备是(D)。 (1)A.Cable Modem B.ADSL Modem C.OLT D.CMTS (2)A. Cable Mo…

Node.js的安装

目录 1 下载安装包 2 安装 3 以管理员身份打开命令提示符窗口 4 验证Node.js的环境变量 5 配置npm的全局安装路径 6 更换源 1 下载安装包 在浏览器中打开链接,即可看到如下页面,点击即可下载安装包 2 安装 除了下面这一步,其它无脑Nex…

docker安装nacos

nacos v2.3.0 docker run --name nacos -e MODEstandalone -p 8848:8848 -p 9848:9848 -d nacos/nacos-server:2.3.0访问:http://192.168.2.209:8848/nacos

24.云原生ArgoCD高级之钩子

云原生专栏大纲 文章目录 Argo CD钩子如何定义钩子钩子删除策略 Argo CD钩子 Argo CD 是一个用于部署和管理 Kubernetes 应用程序的工具,它提供了一种声明式的方式来定义和自动化应用程序的部署过程。Argo CD 钩子(Hooks)是一种机制&#x…

TQ15EG开发板教程:开发板Vivado硬件设置

1,串口的配置 PS端有2个串口,在BANK500, 1.8V IO电平 管脚名称 电平 说明 UART0 RX MIO18 1.8V MPSOC方向看 TX MIO19 1.8V UART1 RX MIO21 1.8V TX MIO20 1.8V 2,QSPI的配置 采用2片MT25QU256 拼接成8bit的QSPI存储系统。采用1.8V…

OceanBase 4.2.2 GA 发布,全新特性快速预览!

在 2023 年度发布会上,OceanBase 沿着“一体化”产品战略思路,发布了一体化数据库的首个长期支持版本 4.2.1 LTS。作为 4.0 系列的首个 LTS 版本,该版本的定位是支撑客户关键业务稳定长久运行,我们非常认真的打磨了这个版本&#…

代码随想录刷题第24天

今天正式进入回溯。看了看文章介绍,回溯并不是很高效的算法,本质上是穷举操作。代码形式较为固定。 第一题为组合问题,用树形结构模拟,利用回溯算法三部曲,确定终止条件与单层逻辑,写出如下代码。 不难发现…

【Linux网络编程一】网络基础1(网络框架)

【Linux网络编程一】网络基础1(网络框架) 一.什么是协议1.通信问题2.协议本质3.网络协议标准 二.协议分层1.为什么协议要分层2.如何具体的分层 三.操作系统OS与网络协议栈的关系1.核心点:网络通信贯穿协议栈 四.局域网中通信的基本原理1.封装…

查看 npm的一些命令,以及npm config set registry x x x 不生效 解决方案

在 Mac 上查看自己的 npm 源,可以使用以下命令: 打开终端应用程序(Terminal)。 运行以下命令来查看当前的 npm 配置: npm config list这会显示 npm 的配置信息,包括当前使用的源(registry&am…

rabbitmq常见问题

1、RabbitMQ如何保证消息不丢失 2、RabbitMQ消息的重复消费问题如何解决 3、RabbitMQ的死信交换机和延迟队列 4、RabbitMQ消息堆积如何解决 5、RabbitMQ的高可用机制

JavaScript鼠标拖放(Drag and Drop)

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 拖放是现代界面不可或缺的交互方式之一。本文将介绍如何用JavaScript…

探索前端开发框架:React、Angular 和 Vue 的对决(一)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

linux找回root密码(CentOS7.6)

首先,启动系统,进入开机界面,在界面中按“e”进入编辑界面。如图 进入编辑界面,使用键盘上的上下键把光标往下移动,找到以““Linux16”开头内容所在的行数”,在行的最后面输入:init/bin/sh。如…

位图布隆过滤器

位图&&布隆过滤器 位图位图的实现位图优缺点关于位图的题目位图的应用 布隆过滤器提出原因布隆过滤器概念操作插入查找删除 bloom优缺点关于bloom的题目实现 哈希切割问题 位图 位图:使用比特位来表示某种状态。比特位为0表示不存在,为1表示存在…

C语言内存函数:memcpy、memcat、memmove介绍和模拟实现(实用性高,建议三连收藏)

目录 1.memcpy函数 1.1函数介绍 1.2函数示范使用 1.3函数的模拟实现 1.4补充 2.memmove函数 2.1函数介绍 2.2函数的使用示范 2.3函数的模拟实现 3.memcmp(内存比较函数) 3.1函数介绍 3.2函数的示范使用,有趣的例子 4.函数补充memset(内存…

Visual Studio 最新版安装教程

Visual Studio简介 Visual Studio是一个集成开发环境(IDE),广泛应用于.NET和C工作负载以及许多其他语言和框架的开发。它提供了一套完整的工具集,包括UML工具、代码管控工具、集成开发环境(IDE)等&#xff…

c++重载、隐藏和覆盖

重载 函数名字相同&#xff0c;但参数列表或者返回值不同一组函数要重载必须处在同一作用域中 class Base { public:Base(int data0):m_a(data){}void show(){cout<<"Base::show()"<<endl;}void show(int){cout<<"Base:show(int)"<&l…

Opencv(C++)学习 TBB与OPENMP的加速效果实验与ARM上的实践(二)

在上一篇文章中&#xff0c;我们成功验证了Intel Threading Building Blocks (TBB) 与 OpenMP 在多线程并行处理方面的加速潜力。为了更深入地理解这些技术在实际应用场景中的效能提升&#xff0c;接下来我们将目光转向目标开发板环境&#xff0c;进一步探究这两种框架在嵌入式…