解决Github打不开或速度慢的问题

一、原因

我们先分析一下Github在国内访问慢或有时候登陆不上去的问题原因:其实这都是因为我们访问github官网时是直接访问域名即github.com,那么中间有个域名通过DNS解析的过程,将域名解析为对应的ip地址,其实主要时间都是花在了DNS解析上,导致了github有时候能打开,有时候打不开,有时候访问很慢。

那么DNS解析又是什么呢?

我们首先要了解域名和IP地址的区别。IP地址是互联网上计算机唯一的逻辑地址,通过IP地址实现不同计算机之间的相互通信,每台联网计算机都需要通过IP地址来互相联系和分别。

但由于IP地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的IP地址,这样对于我们日常工作生活访问不同网站是很困难的。基于这种背景,人们在IP地址的基础上又发展出了一种更易识别的符号化标识,这种标识由人们自行选择的字母和数字构成,相比IP地址更易被识别和记忆,逐渐代替IP地址成为互联网用户进行访问互联的主要入口。这种符号化标识就是域名。

域名虽然更易被用户所接受和使用,但计算机只能识别纯数字构成的IP地址,不能直接读取域名。因此要想达到访问效果,就需要将域名翻译成IP地址。而DNS域名解析承担的就是这种翻译效果。

当我们在浏览器地址栏中输入www.baidu.com时,DNS解析将会有将近10个步骤,这个过程大体大体由一张图可以表示:

二、解决办法

2.1、修改本地hosts

Github 在全球各地都有服务器,而在国内,DNS解析服务基本上都是把域名解析到了美国的服务器,所以访问起来会比较慢,但我们可以通过修改本地 hosts 文件来绕过公共DNS解析,直接访问 Github 在韩国、日本等的服务器,从而达到加速访问的目的。

Hosts文件是一个没有扩展名的系统文件,主要作用是定义IP地址和主机名的映射关系1。用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,浏览器会立即打开对应网页,如果没有找到,则浏览器会将网址提交DNS服务器进行IP地址解析1。Hosts文件在Windows上的位置是C:\Windows\System32\drivers\etc,而在Linux和Mac上的位置都是/etc/hosts2。

2.2、UsbEAm Hosts Editor

由羽翼城大佬开发的知名项目UsbEAm Hosts Editor本来是用于改善 Steam、暴雪、育碧、Microsoft Store 等游戏平台的访问与下载速度,但顺便也有支持 Github。

软件可以直接到大佬博客上进行下载:https://www.dogfight360.com/blog/47

打开软件,点击软件左下角,选择准备修改 hosts 的网站。

检测延迟 >> 选择延迟最低的IP地址 >> 应用选中

然后再去访问 Github.com 就会快很多啦!

2.3、steamcommunity 302 (WIN)

羽翼城大佬后来又开发的 steamcommunity 302 就是通过反代来加速访问 Github 等网站

软件可以到这里下载:https://www.dogfight360.com/blog/686/

在不遇到问题的情况下可谓想当无脑,一键化使用。

比较棘手的是可能会出现80/443端口被占用的情况,这个需要关闭对应监听端口的进程/服务来解决。

  • 80端口:用于HTTP协议,可以通过HTTP地址(以http://开头)加:80来访问网站,因为浏览网页服务默认的端口号都是80,因此只需输入网址即可,而其他端口则必须加上
  • 443端口:用于HTTPS协议,是提供加密和通过安全端口传输的另一种HTTP,以https://开头

我们先来检查一下端口占用情况:

powshell输入命令:

netstat -aon|findstr :443|findstr LISTEN # 查询443端口占用情况

netstat -aon|findstr :80|findstr LISTEN # 查询80端口占用情况

解决80端口占用:上图是我已经解决完的结果,之前我的端口系统进程PID=4占用,因此不能杀死该进程。

首先打开注册表编辑器regedit,进入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services目录,在下一级别目录下按P键快速定位到所有以"p"开头的目录,找到HTTP。

找到Start字段,将3改为4,然后确定,关闭注册表编辑器。

Start字段的含义:

Start = {0,1,2,3,4}

0 == 由核心装载器装载

1 == 由I/O子系统装载

2 == 自动启动

3 == 手工启动

4 == 禁止启动

然后检查系统是否安装IIS服务。在开始菜单搜索IIS,如果有结果则是安装了。如果没有安装,则步骤到此结束。

有的话,那就打开IIS咯,然后依次展开到这里:

在窗口的最右边菜单里,有个编辑网站->绑定;打开绑定设置,有个端口是80的http记录,看到没,选中它,点右边的编辑;

把端口改成8888或者其它数字,确定,关闭IIS。

注意:如果你不会用到用VS和IIS的话,你可以不改回注册表的值,但是,你以后需要用到IIS或者Visual Studio的话,出现问题,不要忘了,回来把这个注册表的值改回来,我个人建议,为了不会忘记,还是在完事之后先把它改回来。

2.4、FastGithub (WIN/Mac/Linux)

steamcommunity 302 很不错但缺点是只有Windows端

FastGithub 则是另一款同样基于反代来加速 Gtihub 访问的工具,支持WIN/Mac/Linux三端,还能在docker上一键部署:https://github.com/dotnetcore/FastGithub

Windows端的话,下载后双击即可运行,软件没有程序界面,直接就是跑的命令行,所以开启之后不要关闭命令行窗口!

而 FastGithub 除了可以加速访问 Gtihub ,最大的优势是它顺便还能助你直连V2EX。

2.5、dev-sidecar (WIN/Mac/Ubuntu/Linux)

最后再介绍一款反代工具吧,dev-sidecar 这个项目命名取自service-mesh的service-sidecar,意为为开发者打辅助的边车工具,主要就是用于解决 Github 访问的问题:https://gitee.com/docmirror/dev-sidecar

下载后首次运行前会需要让你安装过一个证书,跟着教程安装即可。然后一键开启即可使用,开启后你就能随意访问 Github 了。

相关推荐
会讲英语的码农2 小时前
Git项目管理
gitee·github
油泼辣子多加3 小时前
2024年11月21日Github流行趋势
github
A洛3 小时前
Vercel 设置自动部署 GitHub 项目
github·webhooks·自动部署·vercel
油泼辣子多加4 小时前
2024年11月22日Github流行趋势
github
Stara05111 天前
Git推送+拉去+uwsgi+Nginx服务器部署项目
git·python·mysql·nginx·gitee·github·uwsgi
不能只会打代码1 天前
大学课程项目中的记忆深刻 Bug —— 一次意外的数组越界
java·github·intellij-idea·话题博客
Web极客码2 天前
如何修复WordPress卡在维护模式
服务器·网络·github
油泼辣子多加2 天前
2024年11月17日Github流行趋势
github
海里有太阳2 天前
gitHub常用操作
github
量子孤岛2 天前
建立独一无二的GitHub Profile
github