乐趣区

关于java:访问github太慢我写了一个开源小工具一键变快

前言

GitHub 应该是宽广开发者最常去的站点,这外面有大量的优良我的项目,是宽广开发者寻找资源,交友学习的好中央。尤其是前段时间 GitHub 颁布了一项代码存档打算——Arctic Code Vault,要把代码埋入公开 250 米深的永恒冻土层,能够将代码保留一千年。此外,GitHub 还为开发者在配置文件中设计了留念徽章。

想想本人的代码能够作为人类的技术珍宝被保留一千年,是不是有点骄傲呢。

好了,言归正传。

尽管 GitHub 没有被 Q,然而因为 CDN 服务器都在国外,所以国内拜访 GitHub 的速度切实是慢的一匹,有时候常常页面刷不出,在我获取常识的路线上减少了重重的妨碍。

所以,我肝了 3 小时,写了一个在不必 T 子的状况下,减速 GitHub 访问速度的小工具,最初会分享给大家。

同时,这篇文章也会分享其余减速 GitHub 拜访的办法。算是一个比拟全的整顿吧。

Let’s get it!

主动生成最快拜访 host 的小工具

GitHub 在国内拜访速度慢的起因其实有很多,但最次要的起因就是 GitHub 的散发减速网络域名受到 DNS 的净化。为了解决这个问题,网上有很多文章提供了一个解决方案,就是通过批改 Hosts 文件,绕过国内的 DNS 解析,间接拜访 GitHub 的 CDN 节点,从而达到减速的目标。

然而我看大多数对于此办法的介绍,只提供 3 个 github 的相干域名,而且须要在ipaddress.com 一个个去查,依据查到的 ip,再去本人 ping,肉眼选取最快的 ip,自行编辑成 IP+ 域名格局,贴到 hosts 文件里。

其实 GitHub 用到相干域名有很多,我整顿了下,一共有十几个

github.global.ssl.fastly.net
github.com
assets-cdn.github.com
documentcloud.github.com
gist.github.com
help.github.com
nodeload.github.com
codeload.github.com
raw.github.com
status.github.com
training.github.com
avatars0.githubusercontent.com
avatars1.githubusercontent.com
avatars2.githubusercontent.com
avatars3.githubusercontent.com

这要是一个个去查,一个个去选取,也是挺麻烦的。

为此我写了一个工具,能主动的依据你以后 ip,去寻找这十几个域名所对应最快的 CDN 节点,如果一个 ip 对应多个 CDN 节点,工具会主动帮你去 ping 10 次,取到平均值最小的 CDN 的 IP 地址。

你须要做的,只是把最终生成的后果贴到你的 hosts 文件中即可。

这个小工具,关注「元人部落」输出 github 即可获取到。

用法很简略,只须要执行以下命令即可运行

java -jar githubhost.jar

运行起来后,浏览器输出 127.0.0.1:8880 即可主动进行依据你以后 Ip 进行剖析:

剖析大略须要十几秒,进度条会主动刷新,等进度条满了之后,即可看到生成内容:

每个地区每个运营商可能运行进去的都不一样,所以得出后果后,你就能够把这段内容追加到你 hosts 文件中(如果不晓得 hosts 寄存地位,能够自行 baidu),而后依据提醒让 hosts 文件失效。

指定了 CDN 的拜访地址,能够让你的 github 拜访至多无卡顿了。

码云 GitHub 镜像站

码云提供了一个”码云急速下载“站,每天从 github 上同步一些我的项目。

https://gitee.com/mirrors

个人感觉应该不是所有的 github 我的项目都会同步过去,看仓库数量,有大略 15k 的我的项目

如果你想 clone 一些我的项目去钻研,能够先在这里找找有没有。码云因为是国内开源我的项目站点,git clone 速度天然不必放心,然而很惋惜的是

1. 这个镜像站点不是所有的 github 我的项目,不过大多数热门我的项目都会有

2.issue 和 release 包也没有,只有代码

3. 有一天的提早。即你看到的是一天前的我的项目状态

4. 因为不是 github,所以你也没法通过这个 push 到 github 上的我的项目

GitHub 镜像站

这个镜像站为:

https://github.com.cnpmjs.org/

进入之后,齐全和 github 没有任何区别,拜访也很快。

尤其是 clone 代码,那是飞快啊。。。

比方,你原先要 clone,这样写

git clone https://github.com/kubernetes/kubernetes.git

当初改成:

git clone https://github.com.cnpmjs.org/kubernetes/kubernetes.git

试一下:

这个速度,应该无欲无求了吧。。。

不过这个办法惋惜的是:

1. 这个镜像站很不稳固,你时常会看到:

2. 你每次 clone 还须要本人去批改 url,有点不不便

3. 你仍旧没法 push

GitClone 站点

在寻找解决之道的途中,我又发现一个站点:gitclone

https://gitclone.com/

这是一个 GitHub 的缓存减速节点,也大概缓存了 15k 个我的项目,然而 gitclone 独自做了一个站点,外面能够进行搜寻我的项目,甚至于还能够创立仓库。

gitclone 的 clone 提供了多种形式来 clone

然而搜寻到的我的项目,最终查看还是跳转到 GitHub 相应的页面。

所以其实和 gitee 镜像站都差不多。换汤不换药,问题和之前几个镜像站点差不多,不过你只是要 clone,还是不错的抉择。

总结

其实在不必 T 子的状况下,形式无非就两种:

  1. 批改 hosts,间接拜访最快的 CDN 节点,这种形式劣势在于原汁原味。
  2. 通过镜像去拜访和 clone,这种形式劣势在于 clone 的速度。

集体举荐如果次要浏览为主,还是用上文举荐的工具去生成 hosts 进行配置,毕竟原汁原味,clone 大我的项目的话,能够思考以上镜像站点去减速下载。

关注作者

最初把这个开源工具分享给大家,关注「元人部落」公众号,并回复 github 即可获取到这个工具 jar 包。启动后拜访 127.0.0.1:8880 端口即可主动生成。

一个保持做原创的技术科技分享号,心愿你能关注我,我每周会出一篇实用的原创技术文章,陪着你一起走,不再胆怯。

退出移动版