解决新Windows系统下Git克隆连接超时问题

ops/2024/10/10 15:24:26/

最近,我在Windows系统的电脑上,尝试使用Git克隆项目时,不断遇到连接超时的错误。无论如何尝试调整环境变量或配置代理,都未能解决问题。因此,开始了一系列的问题排查。

排查步骤

首先,我在Git Bash终端使用了ssh -T git@github.com命令来测试与GitHub的SSH连接。结果显示,22端口的连接超时:

ssh: connect to host github.com port 22: Connection timed out

我开始思考,是否是端口问题。在搜索解决方案的过程中,我在Stack Overflow上找到了一些线索。有建议说可以尝试修改~/.ssh/config文件,以使用不同的端口连接GitHub。于是,我按照下面的配置进行了修改:

Host github.comHostname ssh.github.comPort 443

这个配置的目的是让GitHub通过443端口进行通信。有评论提到22端口可能被其他服务占用,这让我觉得有些道理。我使用vim ~/.ssh/config编辑了配置文件,但结果依然是:

ssh: connect to host github.com port 443: Connection timed out

当我在苦苦思索为什么ping github.com也会超时时,我突然想起了一个经典的面试题:“在浏览器中输入URL会发生什么?”这让我意识到问题可能出在DNS解析上。

我学到了一个在终端中查看DNS服务器域名解析的命令:

// nslookup是域名解析工具
nslookup baidu.com

首先我对baidu.com执行了解析,结果如下:

Server:		119.6.6.6
Address:	119.6.6.6#53Non-authoritative answer:
Name:	baidu.com
Address: 110.242.68.66
Name:	baidu.com
Address: 39.156.66.10

然后我对github.com进行了同样的操作,结果显然不正常:

Name:	github.com
Address: 127.0.0.1

返回了127.0.0.1,这显然是错误的,因为这是本地回环地址。问题似乎就出在这里。

解决问题

许多人可能都修改过本地的DNS域名映射文件,这也是上述面试题中的一个知识点。于是,我打开了资源管理器,输入以下路径进行修改:

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

MacOS用户可以使用sudo vi /etc/hosts命令在终端中进行修改。

在文件末尾添加以下行,其中140.82.113.4是GitHub的服务器地址。添加后,就可以通过本地的域名映射来访问GitHub了:

140.82.113.4 github.com

保存修改后,我终于可以不用代理,愉快地访问GitHub,并顺利完成了克隆项目的操作。


http://www.ppmy.cn/ops/86962.html

相关文章

C语言系统调用linux文件系统

在C语言中,open、write和read函数是系统调用(system calls),它们直接由操作系统提供,用于底层的文件操作。这些函数是UNIX和类UNIX系统(如Linux)中的标准接口,不同于C标准库中的文件…

reduceByKey 函数详解

reduceByKey 函数详解 实现原理 reduceByKey 函数主要用于处理分布式数据集。它接收两个操作符作为参数: keySelector:这是一个映射函数,用于从输入元素中提取键。 valueReducer:这是另一个函数,用于将具有相同键的…

mac环境Qt Creator报错:Warning: You are changing a read-only file.

mac环境Qt Creator报错: Warning: You are changing a read-only file. 权限许可 文件权限问题 修改文件夹权限的基本语法: 打开终端:打开 macOS 中的终端应用程序。 sudo chmod -R permissions folder_pathchmod 是改变文件或文件夹权限…

鸿蒙(HarmonyOS)自定义Dialog实现时间选择控件

一、操作环境 操作系统: Windows 11 专业版、IDE:DevEco Studio 3.1.1 Release、SDK:HarmonyOS 3.1.0(API 9) 二、效果图 三、代码 SelectedDateDialog.ets文件/*** 时间选择*/ CustomDialog export struct SelectedDateDialog {State selectedDate:…

QT--线程

一、线程QThread QThread 类提供不依赖平台的管理线程的方法,如果要设计多线程程序,一般是从 QThread继承定义一个线程类,在自定义线程类里进行任务处理。qt拥有一个GUI线程,该线程阻塞式监控窗体,来自任何用户的操作都会被gui捕获到,并处理…

Nginx的跨域问题解决

Nginx的跨域问题解决 假设有两台服务器:分别是192.168.101.23(nginx1), 192.168.101.18(nginx2) 在nginx2上有一个get_user资源。 #nginx2 powershelllocation /get_user {default_type application/json;return 200 …

uni-app 微信小程序 用高德sdk获取地理位置,以及天气信息

1、下载高德小程序sdk,并放在uni-app项目中 相关下载-微信小程序插件 | 高德地图API 2、使用高德小程序sdk 获取地理位置接口,天气信息接口 import amap from "/libs/gaode/amap-wx.130.js"; let _this this;let myAmapFun new amapFile.A…

【前端面试】七、算法-递归

遍历方法总结 链式调用 数组的很多操作可以构成链式操作,类似这样的格式:…map().filter(…).sort(…).map(….)链式操作就是对象方法返回类型是自身的。比如map是属于数组的方法,它返回数组,所以构成了链式操作优势:…