github访问及clone过慢问题
前言
Github是开源世界的一扇大门,伟大的墙对GitHub网开一面,没有像对Google那样直接斩尽杀绝,但是对它做了严格的限速。
git clone(有些地区较快,有些地区较慢);但总体来说,基本都在10KiB/s-40KiB/s之间。
在拉取Flutter源码时出现5-9KiB/s的情况,所以有了这篇文章
修改端口
首先需要打开ShadowSocks,我不会配置全局模式,一是每月流量问题,二是访问一些国内网站反而会慢,所以对于PAC自动模式来说可以如下配置
|
其中端口号,可以在ShadowSocks上查找socks5端口,然后就享受40M/s的畅快吧。
指定IP
如果修改端口的方法也无济于事,还可以通过指定host的方式,指定最近dns服务商以达到快速的效果。
DNS工作方式
当我们访问github.com时,浏览器并不知道这个域名对应的真实ip地址,最先回去询问本地dns缓存,是否认识这个域名的门牌号,如果不认识接着往上问,当地运行商也不认识这个域名的话,继续问上级,知道问出来github.com的门牌号为止!
这个问路过程称为DNS寻址,如果问路的时间过长,那么返回速度自然很慢。
那么如果我们直接告诉浏览器目的地,那么浏览器也就不会一步步去问路了,所以也就能达到加快访问速度的要求。
正常来说,网站的主域名下会存在多个子域名,由这些域名组合在一起提供完整的服务。所以我们不仅要告诉本机github.com的主域名,还要把相关的子域名也告诉本机。就像现实中,每个人都有自己的家,而这个家有具体的地址,一些有钱人可能有几个家。
对应到计算机世界中,如果域名是用户,那么ip地址就是用户的家,同一个域名可以对应多个ip地址,同一个ip地址也可以有多多个域名。
域名到ip地址的过程同样需要找人询问,这个信息一般会存在dns服务商那里,就像我们的地址登记到相关机构一样.
子域名信息
ipaddress.com 网站为例,查询下 github.com 网站的相关信息。得到如下域名信息。
就近cdn加速
大型网站服务器都不会只有一台服务器,而是多台服务器组成集群一起对外提供服务。全世界都在使用 ** github,如果每次都访问美国服务器,即使浏览器知道目的地,但是距离太远还是会很慢,所以能够就近访问github.com**就能大幅提高访问速度了。
tool.chinaz.com 网站为例,查询下 github.com 各子域名的就近地址。
所以只需要选择TTL值最小的作为优化标准,并写入/etc/hosts(macOS)文件中
|
最后进行dns刷新 sudo dscacheutil -flushcache
github访问及clone过慢问题