github访问困难/缓慢的问题解决


GitHub 是全球最大的代码开源平台,重要性不言而喻。

但由于某些特殊原因,可能导致了DNS解析缓慢,容易出现tcp的连接超时情况很多人发现自己访问 GitHub 时断时续。

到底是什么原因导致了这个问题,网上众说纷纭,我还是小白,也不必去深究,只要解决这个问题来满足自己的访问需求就可以了。

下面就说两种方法吧:

1. 改 hosts

我们在浏览器输入 GitHub 的网址时,会向 DNS 服务器发送一个请求,获取到 GitHub 网站所在的服务器 IP 地址,从而进行访问。

就像你是一名快递员,在送快递前要先找中间人询问收件人的地址。而 DNS 就是这个告诉你目标地址的中间人,如果 DNS 告诉了你错误的地址、或者请求被拦截、再或者 DNS 挂了,都会导致你无法访问网站。

那有什么办法不经过 DNS,就获取到网址对应的 IP 么?

答案就是修改 hosts 文件。当用户在浏览器中输入网址时,系统会首先自动从 hosts 文件中寻找对应的 IP 地址,一旦找到,系统会立即打开对应网页,如果没有找到,系统才会再将网址提交 DNS 域名解析服务器进行 IP 地址的解析。

(关于DNS地址解析协议的详解,前面的随笔中写的非常清楚了,不太懂的朋友可以去看看。快速链接:https://www.cnblogs.com/eudaimonia/p/15983188.html)

因此,想要访问 GitHub,我们可以先通过 IP 查询工具 来获取当前 GitHub 网站的真实地址,再修改本地 hosts 文件,将该地址和 GitHub 网址关联。

 

先找到 hosts 文件的位置,不同操作系统,hosts 文件的存储位置也不同:

  • Windows 系统:C:\Windows\System32\drivers\etc\hosts
  • Linux 系统:/etc/hosts
  • Mac(苹果电脑)系统:/etc/hosts
  • Android(安卓)系统:/system/etc/hosts
  • iPhone(iOS)系统:/etc/hosts

打开 hosts 文件,添加一行,将 xx 替换为你查询到的解析地址即可:

xx.xx.xx.xx www.github.com

但这种方式比较麻烦,而且查询出来的 IP 也未必支持国内的访问,所以下面再推荐另外一种更简单的方式!

 

如果出现hosts写权限失败,或者修改后也无法访问的情况,请跳转文末有结局方案

 

2.github520

GitHub520 就是一个帮助大家访问 GitHub 的项目,本质也是通过修改 hosts 来实现的。

该项目的作者为大家提供了一份完整的 hosts 列表,无需大家自己查询可用 IP,非常地贴心,而且每天都会更新!

通过修改本地hosts文件中的内容,让访问github达到加速的目的。操作很简单,复制下面的内容到设备的hosts文件中去。

# GitHub520 Host Start
185.199.108.154               github.githubassets.com
140.82.113.22                 central.github.com
185.199.108.133               desktop.githubusercontent.com
185.199.108.153               assets-cdn.github.com
185.199.108.133               camo.githubusercontent.com
185.199.108.133               github.map.fastly.net
199.232.69.194                github.global.ssl.fastly.net
140.82.113.3                  gist.github.com
185.199.108.153               github.io
140.82.114.4                  github.com
140.82.112.6                  api.github.com
185.199.108.133               raw.githubusercontent.com
185.199.108.133               user-images.githubusercontent.com
185.199.108.133               favicons.githubusercontent.com
185.199.108.133               avatars5.githubusercontent.com
185.199.108.133               avatars4.githubusercontent.com
185.199.108.133               avatars3.githubusercontent.com
185.199.108.133               avatars2.githubusercontent.com
185.199.108.133               avatars1.githubusercontent.com
185.199.108.133               avatars0.githubusercontent.com
185.199.108.133               avatars.githubusercontent.com
140.82.113.9                  codeload.github.com
52.217.88.28                  github-cloud.s3.amazonaws.com
52.216.238.99                 github-com.s3.amazonaws.com
52.216.26.252                 github-production-release-asset-2e65be.s3.amazonaws.com
52.217.101.68                 github-production-user-asset-6210df.s3.amazonaws.com
52.217.48.84                  github-production-repository-file-5c1aeb.s3.amazonaws.com
185.199.108.153               githubstatus.com
64.71.168.201                 github.community
185.199.108.133               media.githubusercontent.com


# Update time: 2022-03-13 T12:24:16+08:00
# Star me GitHub url: https://github.com/521xueweihan/GitHub520
# GitHub520 Host End

 

上面内容会自动定时更新,保证最新有效。

 

下面再说两种方法都可能会出现的问题:

1.hosts文件无法修改

 

找到hosts文件后右键安全属性,高级设置,配置权限为允许修改和写入即可。

**注:修改完毕hosts文件后,出于安全考虑,还是请大家将权限再次关闭,以免出现恶意定位的ip伪装攻击。

 

2.激活hosts文件重新生效

大部分情况下是直接生效,如未生效可尝试下面的办法,刷新 DNS:

Windows:在 CMD 窗口输入:ipconfig /flushdns (win+r调出搜索台,键入cmd后回车即可进入控制台)

Linux 命令:sudo rcnscd restart

Mac 命令:sudo killall -HUP mDNSResponder

Tips: 上述方法无效可以尝试重启机器。

 

 

**3.13日晚更新:使用上述方法依然会有时候无法访问,原因应该是github的ip自动更新了,然而dns的解析仍然停留在老的ip地址,所以会出现访问困难。

最好用的解决办法:

每次访问困难时,调cmd做一次dnsflush:ipconfig /flushdns,然后再利用这个url:http://www.github.com.ipaddress.com/  查出github新的ip地址,然后使用ip访问。

这个方法一次大概可以维持一小时,基本可以满足需求,一小时后再使用的话,再flush一次dns,访问新的ip就可以了


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM