前言

无兄弟,不篮球;无github,不代码。github和stackoverflow是程序员们的最爱,哪怕是github总是在抽疯,虐了程序员们千百遍,但他们还是想各种办法艰难地在github分享他们优秀的代码,进行pull push操作,下面分享程序员小Code的故事。

小Code发明了hosts大法

小Code是学习能力很强的同学,他通过网上搜索github抽疯缘由,得到的结论是dns解析的github时,返回了不理想的ip甚至是假ip,所以他决定用靠谱的平台来检索github的ip,然后写入hosts文件。

140.82.114.3	github.com
185.199.109.153 assets-cdn.github.com
185.199.110.153 documentcloud.github.com
140.82.114.4 gist.github.com
185.199.110.133 gist.githubusercontent.com
185.199.108.154 github.githubassets.com
185.199.111.154 help.github.com
140.82.113.9 nodeload.github.com
185.199.109.133 raw.github.com
140.82.114.17 status.github.com
185.199.108.153 training.github.com
140.82.113.10 codeload.github.com

小Code发现这样子之后,感觉改善了一些,还来不及沉浸在喜悦中,他将自己的hosts文件分享给了千千万万个需要的其他程序员同伴,于是他的hosts大法成为了普及率最高的办法。

小Code杀死了hosts大法

小code发现,hosts文件里面的ip要经常更新,有时一天不更新,第二天就不能用了。更可怕的发现是,明明他用的hosts是可以的,可其他同伴用了他的成果之后,反馈说没有效果,每天都有无数个同伴,质问小code,你的大法不行啊!!小code一直觉得不可思议,为什么一样的配置就不行。直到有一天,小code出差了,来到了某省的某个酒店,小code拿出他心爱的笔记本电脑,准备打开每天都要上的github,这时小code傻眼了,浏览器小转圈圈,然后显示“连接已重置”,无论小Code怎么挣扎,还是无法上github。

小Code来不及多想,他觉得他的发明不不但没有解决千千万万个同伴的问题,而且带了深深的互相伤害,于是他决定放弃hosts大法。可难的是,还有是有很多在网上搜索到了他的hosts大法,继续被伤害的路上。

小Code发明了镜像大法

出来回来之后,小Code不吃不喝,寻找新的解决方案。小Code远程到在某省的一个朋友电脑,使用浏览器f12来分析github访问资源的加载情况,最后总结到:github.com这个域名一般能访问,虽然偶尔中断那么几分钟;而github的css、js、用户头像、releases下的附件,都无法加载。于是小Code定使用github镜像网站,来给替代github的资源的下传,为此小Code开发了浏览器插件,当github不抽疯的那些时间缝隙里,让用户可以刷新github,然后他的插件修改github页面,多显示了一个“加速Pull”的按钮,点击这个按钮,就是用镜像网站来拉取。

小Code明白,他的这套发明,只能解决一点点问题,解决了下传,但像小Code这种牛逼程序员,更多的时候,是把自己牛逼的代码分享给别人,还不是在享用别人的代码。但他自己的发明,却不能解决自己遇到的问题,庆幸的是小Code工作地,还能push代码到github,还不然他的这个镜像大法浏览器插件的代码,都不知道怎么提交到github了。

小Code请大Code帮忙

小Code想到了他的师傅大Code,师傅多年一直在网络编程里耕耘,说不定他有好办法。大Code决定为小Code写一个工具,解决小Code和千千万万个同伴的问题,同时把代码分享,让小Code来学习和提高水平。

大Code使用PostMan和Wireshark两个工具结合,开始忙碌的分析了数据,从DNS解析数据包开始,到TCP握手,到TLS握手,他发现了两个主要问题:DNS响应问题和TLS握手问题。问题找到后,他点了一支烟,抽完接着又点了半支,这是他准备要露手的前奏。

大Code祭出了他的工具

大Code不喜欢吹牛,也不喜欢讨论非技术问题。只知道他的工具,100%解决小Code的问题,把他的工具分享了出来,下面是他的工具一些介绍:

加速原理

  • 修改本机的dns服务指向FastGithub自身
  • 解析匹配的域名为FastGithub自身的ip
  • 请求不受污染的dns服务(dnscrypt-proxy)获取域名的ip
  • 使用得到的ip进行无或有SNI的https反向代理

加速站点

github
  • github.com
  • githubstatus.com
  • *.github.com
  • *.github.io
  • *.githubapp.com
  • *.githubassets.com
  • *.githubusercontent.com
  • *github*.s3.amazonaws.com
stackoverflow
  • ajax.googleapis.com -> gapis.geekzu.org/ajax
  • fonts.googleapis.com -> fonts.geekzu.org
  • themes.googleusercontent.com -> gapis.geekzu.org/g-themes
  • fonts.gstatic.com -> gapis.geekzu.org/g-fonts
  • secure.gravatar.com -> sdn.geekzu.org
  • *.gravatar.com -> fdn.geekzu.org
  • i.stack.imgur.com => 404
  • lh*.googleusercontent.com => 404
  • www.google.com => 404

工具下载

  • github的releases
  • qq群文件[307306673]

程序员们,还在挣扎着上不了github吗的更多相关文章

  1. 程序员不能忍996了!全民 fuck ,GitHub来说话

    前两天有个Github超级火的一个项目,在一小时之内星标上千. https://github.com/997icu/996.ICU   截至目前 这个项目start数量超过63K.Issues5000 ...

  2. 10款Mac上程序员装机必备的开发工具推荐和下载

    10款Mac上程序员装机必备的开发工具推荐和下载 使用Mac的用户主要有两大类:设计师和程序员,为各位程序员童鞋推荐10个Mac上非常棒的开发工具和辅助工具,分享软件专题[10款Mac上程序员装机必备 ...

  3. Java架构师线上问题排查,这些命令程序员一定用得到!

    Java架构师线上问题排查,这些命令程序员一定用得到! 线上问题排查,以下场景,你遇到过吗? 一.了解机器连接数情况 问题:1.2.3.4的sshd的监听端口是22,如何统计1.2.3.4的sshd服 ...

  4. asp.net程序员初涉node.js

    之前一直听说node.js在处理网站大规模并发上十分有用,所以有一定规模的公司都在使用node.我在工作中只用过jquery,属于那种边做功能边学习的那一种.甚至连原生的js都不太会写,只是知道语法差 ...

  5. [zz]论程序员

    g9老大多年前的趣文: 论程序员 根据钱钟书先生的<论文人>胡改的.聊搏一笑,文责不负.程序员是可嘉奖的,因为他虚心,知道上进,并不拿身分,并不安本分.真的,程序员对于自己,有时比旁人对于 ...

  6. 二分查找实现(Jon Bentley:90%程序员无法正确实现)

    二分查找实现(Jon Bentley:90%程序员无法正确实现)作者:July出处:结构之法算法之道引言Jon Bentley:90%以上的程序员无法正确无误的写出二分查找代码.也许很多人都早已听说过 ...

  7. 给IT新男的15点建议:苦逼程序员的辛酸反省与总结

    很多人表面上看着老实巴交的,实际上内心比谁都好强.自负.虚荣.甚至阴险.工作中见的多了,也就习惯了. 有一些人,什么事都写在脸上,表面上经常得罪人,甚至让人讨厌.但是他们所表现的又未必不是真性情. 我 ...

  8. 程序员谈学习:我为什么要学习Linux?

    http://kb.cnblogs.com/page/196876/ 好长时间没好好写点东西了,前段时间由于项目的需要出差了一个多月,期间各种加班,每天晚上加班到十点,回到宾馆实现是没什么精力再写博客 ...

  9. JAVA程序员面试宝典

    程序员面试之葵花宝典 面向对象的特征有哪些方面    1. 抽象:抽象就是忽略一个主题中与当前目标2. 无关的那些方面,3. 以便更充分地注意与当前目标4. 有关的方面.抽象并不5. 打算了解全部问题 ...

随机推荐

  1. TVM在ARM GPU上优化移动深度学习

    TVM在ARM GPU上优化移动深度学习 随着深度学习的巨大成功,将深度神经网络部署到移动设备的需求正在迅速增长.与在台式机平台上所做的类似,在移动设备中使用GPU可以提高推理速度和能源效率.但是,大 ...

  2. 3D-LiDAR

    3D-LiDAR 结合光学+激光扫描+数据处理技术,实现对人和物体的无盲点检测. 利用专有光学技术实现高精度,高分辨率三维扫描. 到目前为止,传感器只能准确地检测出物体的存在,而且很难感知目标的大小和 ...

  3. Spring Cloud Alibaba(14)---SpringCloudAlibaba整合Sleuth

    SpringCloudAlibaba整合Sleuth 上一篇有写过Sleuth概述,Spring Cloud Alibaba(13)---Sleuth概述 这篇我们开始通过示例来演示链路追踪. 一.环 ...

  4. python 数据写入json文件时中文显示Unicode编码问题

    一.问题描述 import json dir = { '春晓':'asfffa', '春眠不觉晓' : '处处闻啼鸟', '夜来风雨声' : 56789, 'asdga':'asdasda' } fp ...

  5. 【NX二次开发】Block UI 微定位

    属性说明 属性   类型   描述   常规           BlockID    String    控件ID    Enable    Logical    是否可操作    Group    ...

  6. 聚类算法K-Means算法和Mean Shift算法介绍及实现

    Question:什么是聚类算法 1.聚类算法是一种非监督学习算法 2.聚类是在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法 3.理论上,相同的组的数据之间有相同的属性或者是特征,不 ...

  7. 有效Ajax案例

    <script>$(document).ready(function(){ $("input:submit").click(function(){ $.ajax({ t ...

  8. 解决mac中adb: command not found

    在Mac系统中,很多时候第一次在Android SDK中使用adb的时候.无法使用.会提示-bash: abd: command not found. 造成此类现象的原因是:未配置Android的环境 ...

  9. 服务器硬件和RAID配置

    服务器 硬件和RAID配置 目录 一.RAID 磁盘阵列介绍 1.1.RAID 0(条带化存储) 1.2.RAID 1(镜像存储) 1.3.RAID 5 1.4.RAID 6 1.5.RAID 1+0 ...

  10. mapboxgl绘制3D线

    最近遇到个需求,使用mapboxgl绘制行政区划图层,要求把行政区划拔高做出立体效果,以便突出显示. 拿到这个需求后,感觉很简单呀,只需要用fill-extrusion方式绘制就可以啦,实现出来是这个 ...