程式設計師們,還在掙扎著上不了github嗎

jiulang發表於2021-07-23

前言

無兄弟,不籃球;無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]

相關文章