程序员们,还在挣扎着上不了github吗
前言
无兄弟,不篮球;无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吗的更多相关文章
- 程序员不能忍996了!全民 fuck ,GitHub来说话
前两天有个Github超级火的一个项目,在一小时之内星标上千. https://github.com/997icu/996.ICU 截至目前 这个项目start数量超过63K.Issues5000 ...
- 10款Mac上程序员装机必备的开发工具推荐和下载
10款Mac上程序员装机必备的开发工具推荐和下载 使用Mac的用户主要有两大类:设计师和程序员,为各位程序员童鞋推荐10个Mac上非常棒的开发工具和辅助工具,分享软件专题[10款Mac上程序员装机必备 ...
- Java架构师线上问题排查,这些命令程序员一定用得到!
Java架构师线上问题排查,这些命令程序员一定用得到! 线上问题排查,以下场景,你遇到过吗? 一.了解机器连接数情况 问题:1.2.3.4的sshd的监听端口是22,如何统计1.2.3.4的sshd服 ...
- asp.net程序员初涉node.js
之前一直听说node.js在处理网站大规模并发上十分有用,所以有一定规模的公司都在使用node.我在工作中只用过jquery,属于那种边做功能边学习的那一种.甚至连原生的js都不太会写,只是知道语法差 ...
- [zz]论程序员
g9老大多年前的趣文: 论程序员 根据钱钟书先生的<论文人>胡改的.聊搏一笑,文责不负.程序员是可嘉奖的,因为他虚心,知道上进,并不拿身分,并不安本分.真的,程序员对于自己,有时比旁人对于 ...
- 二分查找实现(Jon Bentley:90%程序员无法正确实现)
二分查找实现(Jon Bentley:90%程序员无法正确实现)作者:July出处:结构之法算法之道引言Jon Bentley:90%以上的程序员无法正确无误的写出二分查找代码.也许很多人都早已听说过 ...
- 给IT新男的15点建议:苦逼程序员的辛酸反省与总结
很多人表面上看着老实巴交的,实际上内心比谁都好强.自负.虚荣.甚至阴险.工作中见的多了,也就习惯了. 有一些人,什么事都写在脸上,表面上经常得罪人,甚至让人讨厌.但是他们所表现的又未必不是真性情. 我 ...
- 程序员谈学习:我为什么要学习Linux?
http://kb.cnblogs.com/page/196876/ 好长时间没好好写点东西了,前段时间由于项目的需要出差了一个多月,期间各种加班,每天晚上加班到十点,回到宾馆实现是没什么精力再写博客 ...
- JAVA程序员面试宝典
程序员面试之葵花宝典 面向对象的特征有哪些方面 1. 抽象:抽象就是忽略一个主题中与当前目标2. 无关的那些方面,3. 以便更充分地注意与当前目标4. 有关的方面.抽象并不5. 打算了解全部问题 ...
随机推荐
- 将代码生成器带入TVM
将代码生成器带入TVM 为了使数据科学家不必担心开发新模型时的性能,硬件后端提供程序(例如Intel,NVIDIA,ARM等)可以提供诸如cuBLAS或cuDNN之类的内核库以及许多常用的深度学习内核 ...
- deeplearning模型库
deeplearning模型库 1. 图像分类 数据集:ImageNet1000类 1.1 量化 分类模型Lite时延(ms) 设备 模型类型 压缩策略 armv7 Thread 1 armv7 T ...
- MinkowskiEngine Miscellaneous Classes杂类
Miscellaneous Classes杂类 内核生成器 class MinkowskiEngine.KernelGenerator(kernel_size = -1,stride = 1,dila ...
- Django(58)viewsets视图集详解
前言 ViewSet 只是一种基于类的视图,它不提供任何方法处理程序(如 .get()或.post()),而是提供诸如.list()和 .create() 之类的操作. ViewSet 的方法处理程序 ...
- 单点突破:Spring(上)
Spring概述 我们常说的 Spring 实际上是指 Spring Framework,而 Spring Framework 只是 Spring 家族中的一个分支而已.Spring 是为了解决企 ...
- fiddler抓取手机APP包相关的设置
一.设置手机的代理服务器 1.前提:手机与电脑用的是同一个网络 2.fiddler设置允许远程连接,并设置好端口 3.查询电脑所在网络的ip地址(windows下,命令行窗口使用:ipconfig进行 ...
- 【NX二次开发】Block UI 半径尺寸(沿曲线的位置)
属性说明 常规 类型 描述 BlockID String 控件ID Enable Logical 是否可操作 Group Logical ...
- 关于spooling的一些理解
spooling做了什么 1.将独占设备(打印机)虚拟化,变成一个逻辑上的共享设备. 怎么理解?虚拟化,通俗来讲,就是让单个资源仿似变成了多个资源. 以打印机为例,没有虚拟化之前,只能有一个进程申请到 ...
- 你知道这高效的12个Java精品库嘛?
01. JUnit 第一个要说的当然是JUnit了,JUnit毕竟是Java圈目前最知名及常用的测试框架.JUnit之所以能够成为Java圈中最热门的测试库,是因为对于很多项目而言,单元测试是非常重要 ...
- js-动态表单校验-吐血总结最近遇到的变态表单校验2---element+原生
上一部分总结了基础常用的js表单校验,包括原生以及框架,下面来总结这一个月涉及到的动态校验: 动态表单校验大致分为三种情况: 1. 首先是固定校验规则,但是表单组件是动态生成的,例如:在表单或者表格里 ...