# 如果正确访问 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
1
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

修改方法,把第一步的内容复制到文本末尾:

  1. Windows 使用记事本。
  2. Linux、Mac 使用 Root 权限:sudo vi /etc/hosts
  3. iPhone、iPad 须越狱、Android 必须要 root。
# 2.1.2 激活生效

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

  1. Windows:在 CMD 窗口输入:ipconfig /flushdns
  2. Linux 命令:sudo nscd restart,如报错则须安装:sudo apt install nscdsudo /etc/init.d/nscd restart
  3. 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

如图:

img

这样每次 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 小时更新一次。

  1. 下载 FasterHosts (opens new window) 然后解压,找到 extension 子目录
  2. 打开 Chrome,输入: chrome://extensions/
  3. 打开「开发者模式」
  4. 选择「加载已解压的扩展程序」,然后定位到刚才解压的文件夹里面的 extension 目录,确定
  5. 这就安装好了,关闭「开发者模式」

# 清除 DNS 缓存

第一步按照上面的教程安装完 SwitchHosts,并且正确配置之后,如果还没生效,则清除一下 DNS 缓存

# 如何 DNS 缓存

  1. 清除本机的 DNS 缓存

    # 打开cmd
    # 输入命令
    ipconfig /flushdns
    
    1
    2
    3
  2. 清除浏览器的 DNS 缓存

    • Google Chrome

      在地址栏输入chrome://net-internals/#dns回车,点击 Clear host cache 即可:

      建议再将 Proxy 和 Sockets 一起清除一下

      image-20211107223143109

  • Microsoft Edge

    Edge 源于 Chrome,类似,地址为:edge://net-internals/#dns

  • Mozilla Firefox

    Firefox 之前有几个扩展非常方便,可惜都已经下线了:

    dns-flusher (opens new window)

    clear-dns-cache (opens new window)

    现在实现方法如下 (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

image-20211108000153286

# 参考

如何清除浏览器的 DNS 缓存:Chrome、Edge、Firefox、Safari (opens new window)

Github 访问速度很慢的原因,以及解决方法 (opens new window)

Github520 (opens new window)

最近更新: 4 小时前