# 如果正确访问 GitHub?
# 了解 CDN
CDN(Content Distribute Network),可以直译成内容分发网络,CDN 解决的是如何将数据快速可靠从源站传递到用户的问题。用户获取数据时,不需要直接从源站获取,通过 CDN 对于数据的分发,用户可以从一个较优的服务器获取数据,从而达到快速访问,并减少源站负载压力的目的。
# 为什么访问速度慢、下载慢?
github 的 CDN 被某墙屏了,由于网络代理商的原因,所以访问下载很慢。
ping github.com 时,经常会 ping 不通。
# 解决思路?
绕过 dns 解析,在本地直接绑定 host,该方法也可加速其他因为 CDN 被屏蔽导致访问慢的网站。
# 解决工具
SwitchHosts,一个主机管理和切换的应用程序。这是一个免费的开源软件。
下载地址:https://swh.app/download/
使用说明(GitHub 地址):https://github.com/521xueweihan/GitHub520
考虑到 GitHub 访问慢的原因,我直接复制粘贴教程了
# 一、介绍
对 GitHub 说"爱"太难了:访问慢、图片加载不出来。
注: 本项目还处于测试阶段,仅在本机测试通过,如有问题欢迎提 issues (opens new window)
本项目无需安装任何程序,通过修改本地 hosts 文件,试图解决:
- GitHub 访问速度慢的问题
- GitHub 项目中的图片显示不出的问题
花 5 分钟时间,让你"爱"上 GitHub。
# 二、使用方法
# 2.1 复制下面的内容
# GitHub520 Host Start
140.82.113.25 alive.github.com
140.82.113.26 live.github.com
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.114.3 gist.github.com
185.199.108.153 github.io
140.82.112.4 github.com
192.0.66.2 github.blog
140.82.113.5 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.114.10 codeload.github.com
52.217.14.76 github-cloud.s3.amazonaws.com
52.217.170.161 github-com.s3.amazonaws.com
52.217.171.97 github-production-release-asset-2e65be.s3.amazonaws.com
52.217.164.81 github-production-user-asset-6210df.s3.amazonaws.com
52.217.129.145 github-production-repository-file-5c1aeb.s3.amazonaws.com
185.199.108.153 githubstatus.com
64.71.144.202 github.community
23.100.27.125 github.dev
185.199.108.133 media.githubusercontent.com
# Update time: 2021-11-07T22:05:15+08:00
# Update url: https://raw.hellogithub.com/hosts
# Star me: https://github.com/521xueweihan/GitHub520
# GitHub520 Host End
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
上面内容会自动定时更新,保证最新有效。数据更新时间:2021-11-07T22:05:15+08:00(内容无变动不会更新)
- 文件:
https://raw.hellogithub.com/hosts
- JSON:
https://raw.hellogithub.com/hosts.json
# 2.1 手动方式
# 2.1.1 修改 hosts 文件
hosts 文件在每个系统的位置不一,详情如下:
- Windows 系统:
C:\Windows\System32\drivers\etc\hosts
- Linux 系统:
/etc/hosts
- Mac(苹果电脑)系统:
/etc/hosts
- Android(安卓)系统:
/system/etc/hosts
- iPhone(iOS)系统:
/etc/hosts
修改方法,把第一步的内容复制到文本末尾:
- Windows 使用记事本。
- Linux、Mac 使用 Root 权限:
sudo vi /etc/hosts
。 - iPhone、iPad 须越狱、Android 必须要 root。
# 2.1.2 激活生效
大部分情况下是直接生效,如未生效可尝试下面的办法,刷新 DNS:
- Windows:在 CMD 窗口输入:
ipconfig /flushdns
- Linux 命令:
sudo nscd restart
,如报错则须安装:sudo apt install nscd
或sudo /etc/init.d/nscd restart
- Mac 命令:
sudo killall -HUP mDNSResponder
Tips: 上述方法无效可以尝试重启机器。
# 2.2 自动方式
Tip:推荐 SwitchHosts (opens new window) 工具管理 hosts
以 SwitchHosts 为例,看一下怎么使用的,配置参考下面:
- Title: 随意
- Type:
Remote
- URL:
https://raw.hellogithub.com/hosts
- Auto Refresh: 最好选
1 hour
如图:
这样每次 hosts 有更新都能及时进行更新,免去手动更新。
# 2.3 AdGuard Home 用户(自动方式)
在 过滤器>DNS 封锁清单>添加阻止列表>添加一个自定义列表,配置如下:
- 名称: 随意
- URL:
https://raw.hellogithub.com/hosts
(和上面 SwitchHosts 使用的一样)
如图:
更新间隔在 设置>常规设置>过滤器更新间隔(设置一小时一次即可),记得勾选上 使用过滤器和 Hosts 文件以拦截指定域名
Tip:不要添加在 DNS 允许清单 内,只能添加在 DNS 封锁清单 才管用。另外,AdGuard for Mac、AdGuard for Windows、AdGuard for Android、AdGuard for IOS 等等 AdGuard 家族软件 添加方法均类似。
# 2.4 Chrome 插件方式
FasterHosts (opens new window) 是个 Chrome 插件,主要原理是拦截浏览器的某些请求,将 domain
替换成访问速度较快的那个。hosts 资源来自 GitHub520 (opens new window),每 1 小时更新一次。
- 下载 FasterHosts (opens new window) 然后解压,找到
extension
子目录- 打开 Chrome,输入:
chrome://extensions/
- 打开「开发者模式」
- 选择「加载已解压的扩展程序」,然后定位到刚才解压的文件夹里面的
extension
目录,确定- 这就安装好了,关闭「开发者模式」
# 清除 DNS 缓存
第一步按照上面的教程安装完 SwitchHosts,并且正确配置之后,如果还没生效,则清除一下 DNS 缓存
# 如何 DNS 缓存
清除本机的 DNS 缓存
# 打开cmd # 输入命令 ipconfig /flushdns
1
2
3清除浏览器的 DNS 缓存
Google Chrome
在地址栏输入
chrome://net-internals/#dns
回车,点击Clear host cache
即可:建议再将 Proxy 和 Sockets 一起清除一下
Microsoft Edge
Edge 源于 Chrome,类似,地址为:
edge://net-internals/#dns
Mozilla Firefox
Firefox 之前有几个扩展非常方便,可惜都已经下线了:
dns-flusher (opens new window)
clear-dns-cache (opens new window)
在地址栏输入:
about:config
,回车,“接受风险并继续”,然后搜索network.dnsCache
,出现如下 3 项:network.dnsCacheEntries 400 network.dnsCacheExpiration 60 network.dnsCacheExpirationGracePeriod 60
1
2
3将数值都修改为 0 即可。
注意:
- 修改后为禁用 DNS 缓存。
- 该操作对网络浏览体验可能有一定影响,仅用于调试。
- 如果有新的扩展出现,使用扩展更佳。
Apple Safari
菜单栏 “Safari 浏览器” --> “偏好设置...” --> "高级",“在菜单栏中显示 “开发” 菜单。
此时,点击菜单栏 ”开发“ --> ”清空缓存“ 即可。
# git push 出现 timeout 或者 reset error?
一般我们是通过 https 的方式去跟远程仓库进行交互,但是涉及到 HTTPS 协议就会涉及到网络问题,如果有时候网络不好就会出现 timeout 或者 reset error 问题是网络问题,通常来说如果有好的 VPN 就会很顺利,但是如果是免费 VPN,偶尔还是会出现错误,通常博客会建议你多试几次就能成功,虽然确实如此,但你总不想每次都这样解决吧,这样随机性太大了
既然如此我们就换另外一种方式 ssh
# 参考
如何清除浏览器的 DNS 缓存:Chrome、Edge、Firefox、Safari (opens new window)