前言

无兄弟,不篮球;无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. H.264 Video Codec速度和质量

    H.264 Video Codec速度和质量 从Kepler开始的所有 NVIDIA GPUs 都支持完全加速的硬件视频编码: GPUs 从费米开始支持完全加速的硬件视频解码.最近发布的图灵硬件提供了 ...

  2. 【NX二次开发】Block UI 选择单元

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

  3. React Hooks使用避坑指南

    函数组件比类组件更加方便实现业务逻辑代码的分离和组件的复用,函数组件也比类组件轻量,没有react hooks之前,函数组件是无法实现LocalState的,这导致有localstate状态的组件无法 ...

  4. csp-s模拟测试「9.14」A·B·C(三分,贪心)

    博客大概咕了很久了......... T1 A 大概推下式子就好了,考试时数据点分治DFS前30点T了,然后后70分因为两数相乘爆long long然后本来可以A掉,就WA零了....... 式子推出 ...

  5. 安装redHat6.5详细图文教程

    ​ ​ 进入VM虚拟机,双击进入已经创建好的红帽6虚拟机 双击进入CD/DVD,准备添加红帽6.5的iso镜像文件 [红帽6.5的iso镜像文件需要先下载,redhat_6.5下载地址:https:/ ...

  6. Typescript学习总结

    typescript(以下简称TS)出来也有好长时间了,下面记录一下学习心得. 首先学这门语言前,请确保有以下基础知识: 扎实的javascript基础知识 es6的基础知识 面向对象编程的概念(没有 ...

  7. SpringAnimator弹簧联动效果的实现

    使用SpringAnimation实现弹簧联动 简介 弹簧效果动画SpringAnimation与甩动效果动画FlingAnimation使用上很类似,主要区别在于FlingAnimation是根据甩 ...

  8. jquery动画(控制动画隐藏、显示时间轴)

    <!DOCTYPE html><html> <head>    <meta http-equiv="Content-type" conte ...

  9. excel判断数据是否存在另一列中

    1.if(EXACT(A2,B2)=TRUE,"相同","不同"),A2,B2相同(字母区分大小写)则函数值true正确,反馈相同,反之返回不同.注:单元格值受 ...

  10. Mongo开启用户认证

      1. 介绍 由于mongodb默认没有设置密码访问,而且mongodb的访问权限设计,必须使用有权限的用户给每个库设置一个用户,才能使用,且2.X版本与3.X版本区别有点大,所以要注意以下几点. ...