解决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 了。

相关推荐
mortimer2 小时前
零依赖、高效率的语音转文字c++版 whisper.cpp (附批量处理脚本)
开源·github
sulikey6 小时前
从零配置一个规范的 Python Git 仓库(适用于 Gitee / GitHub)
git·python·pycharm·gitee·github
whysqwhw6 小时前
KuiklyUI声明式组件体系的实现分析
github
whysqwhw6 小时前
ComposeView 的上下游继承关系及相关类/接口分析
github
逛逛GitHub8 小时前
登上 GitHub 热榜!一口气调用多个 AI 大模型开源神器。
github
21号 18 小时前
4.客户端(Redis)
开发语言·数据库·github
梦想CAD控件9 小时前
网页CAD中组(Group)功能的二次开发
前端·javascript·github
米诺zuo10 小时前
不同的项目仓库配置不同的github账号
github
修炼室10 小时前
如何在GitHub上查看自己提过的Issues
github
CoderJia程序员甲13 小时前
GitHub 热榜项目 - 日榜(2025-10-21)
ai·开源·github·ai编程·github热榜