程序員們,還在掙扎着上不了github嗎

前言

無兄弟,不籃球;無github,不代碼。github和stackoverflow是程序員們的最愛,哪怕是github老是在抽瘋,虐了程序員們千百遍,但他們仍是想各類辦法艱難地在github分享他們優秀的代碼,進行pull push操做,下面分享程序員小Code的故事。css

小Code發明了hosts大法

小Code是學習能力很強的同窗,他經過網上搜索github抽瘋原因,獲得的結論是dns解析的github時,返回了不理想的ip甚至是假ip,因此他決定用靠譜的平臺來檢索github的ip,而後寫入hosts文件。node

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大法成爲了普及率最高的辦法。git

小Code殺死了hosts大法

小code發現,hosts文件裏面的ip要常常更新,有時一天不更新,次日就不能用了。更可怕的發現是,明明他用的hosts是能夠的,可其餘同伴用了他的成果以後,反饋說沒有效果,天天都有無數個同伴,質問小code,你的大法不行啊!!小code一直以爲難以想象,爲何同樣的配置就不行。直到有一天,小code出差了,來到了某省的某個酒店,小code拿出他心愛的筆記本電腦,準備打開天天都要上的github,這時小code傻眼了,瀏覽器小轉圈圈,而後顯示「鏈接已重置」,不管小Code怎麼掙扎,仍是沒法上github。程序員

小Code來不及多想,他以爲他的發明不不但沒有解決千千萬萬個同伴的問題,並且帶了深深的互相傷害,因而他決定放棄hosts大法。可難的是,還有是有不少在網上搜索到了他的hosts大法,繼續被傷害的路上。github

小Code發明了鏡像大法

出來回來以後,小Code不吃不喝,尋找新的解決方案。小Code遠程到在某省的一個朋友電腦,使用瀏覽器f12來分析github訪問資源的加載狀況,最後總結到:github.com這個域名通常能訪問,雖然偶爾中斷那麼幾分鐘;而github的css、js、用戶頭像、releases下的附件,都沒法加載。因而小Code定使用github鏡像網站,來給替代github的資源的下傳,爲此小Code開發了瀏覽器插件,當github不抽瘋的那些時間縫隙裏,讓用戶能夠刷新github,而後他的插件修改github頁面,多顯示了一個「加速Pull」的按鈕,點擊這個按鈕,就是用鏡像網站來拉取。ajax

小Code明白,他的這套發明,只能解決一點點問題,解決了下傳,但像小Code這種牛逼程序員,更多的時候,是把本身牛逼的代碼分享給別人,還不是在享用別人的代碼。但他本身的發明,卻不能解決本身遇到的問題,慶幸的是小Code工做地,還能push代碼到github,還否則他的這個鏡像大法瀏覽器插件的代碼,都不知道怎麼提交到github了。編程

小Code請大Code幫忙

小Code想到了他的師傅大Code,師傅多年一直在網絡編程裏耕耘,說不定他有好辦法。大Code決定爲小Code寫一個工具,解決小Code和千千萬萬個同伴的問題,同時把代碼分享,讓小Code來學習和提升水平。api

大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]
相關文章
相關標籤/搜索