解决 GitHub 访问慢的问题

15,338

经常在github上找一些好玩的学习项目,但是经常出现github页面打开速度很慢甚至无法打开的情况,往往导致计划被打乱,瞬间不想学习了。今天就来总结一下解决github访问慢的方法。

GitHub访问慢或者无法访问一般是由以下问题引起的:

  1. 本地网络访问慢,科学上网速度很快
  2. 本地网络无法访问(响应时间过长导致无法访问)
  3. 由于github的加速分发CDN域名assets-cdn.github.com遭到DNS污染,无法访问

1. 修改本地hosts映射

域名解析直接指向GitHub的IP地址,以此来绕过DNS解析

1.1 查看最新GitHub 的最新ip地址

ip地址查询 网站中查询GitHub相关的网站对应的最新IP地址

  • github.com
  • github.global.ssl.fastly.net
  • assets-cdn.github.com
  • codeload.github.com

在当前网站中查询指定网站ip地址还可以使用另外方法:

①直接将网站作为参数进行请求,省略点击查询的步骤:

②将ip查询网站拼接在之后进行查询

1.2 本地hosts文件映射ip地址

找到对应的IP地址后,将IP地址与网站地址进行对应,并将对应关系写入本地hosts文件中。

在windows系统中的c:/Windows/System32/drivers/etc 下找到hosts文件,编辑打开,将四个网站的IP地址和网站地址对应写入进入,作为DNS的映射。

hosts文件直接编辑修改时可能没有权限,可以通过以下方法完成修改:

  1. 修改当前文件权限,右键hosts文件 -> 属性 -> 安全 -> 编辑 -> Users -> Users的权限后加入写权限
  2. 将当前文件复制到别的盘中,修改文件后复制回来覆盖原来文件
#github dns映射 格式如:  [ip]: [domainName]
199.232.69.194 github.global.ssl.Fastly.net
140.82.114.4 GitHub.com
185.199.108.153 assets-cdn.Github.com
140.82.114.9 codeload.Github.com

1.3 刷新DNS缓存来访问新的映射

hosts文件内容更新成功后,还需要刷新windows系统的DNS才可以生效。

使用 win+R ,打开cmd命令行,输入 ipconfig/flushdns 刷新DNS缓存即可。

image-20211016150711634

刷新完成后,再次打开github网站时速度会明显提升,需要注意的是以上github网站的ip经常发生变化,如果访问再次变慢可以重新更新映射信息。

2. 一键更新

手动更新本地hosts文件的方式比较繁琐,我们可以编写程序来代替手动操作,实现需要时hosts文件内容的一键更新。

2.1 利用开源项目

推荐一个 github 开源项目:更新hosts ,作者会每日提供最新的相关 ip 地址映射信息,我们可以直接复制使用或者使用其中的程序进行一键更新操作。

作为一个coder,我们也可以自己去实现一个脚本程序。

3. Chrome插件

chrome 插件如 github 加速 等,可以实现在访问和下载项目时使用镜像加速,提升访问速度。

image-20211016153443393

如果无法访问chrome下载插件,推荐一个好用的chrome插件下载网站:CrxDL.COM ,下载后使用开发者模式安装插件即可使用。

更多 chrome 插件安装使用方法参考文档:chrome 插件食用指南!

4. 镜像网站

github访问速度慢,我们还可以使用镜像网站来代替github

以上网站作为镜像网站,基本包含了github上已有的项目信息,并且可以查看和下载相关项目,速度还不错,可以作为备用网站使用。

5. 离线下载(Gitee)

5.1 搜索下载

Gitee 是一个类似 Github 的国内代码托管平台,提供了大量国内开发者开源的项目,国内访问正常且速度很快,基本上比较有名的 GitHub 项目都可以在 Gitee 平台搜索到。

5.2 离线下载

对于使用 Gitee 平台无法直接搜索到的项目,可以借助 Gitee 平台项目管理实现 Github 项目的离线下载。

使用流程如下:

  1. 在 Gitee 中登录自己账户
  2. 在仓库页面,点击右上角 + 新增一个仓库,选择最后一个从 Github 导入

image.png

  1. 在导入页面设置需要导入的仓库地址,点击确定,等待导入完成。

image.png

  1. 等待一会后,Gitee 就会下载好对应的项目到我们自己的项目仓库中,之后便可以使用自己项目地址下载到本地使用。

image.png