程序員們,還在掙扎着上不了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]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章