github 入門教程之 github 訪問速度太慢怎麼辦

github-speedup-github-preview.png

github 是全世界最流行的開源項目託管平臺,其代表的開源文化從根本上改變了軟件開發的方式.

基本上所有的需求都能從 github 上或多或少找到現成的實現方案,再也不用重頭開始造輪子而是自定義輪子!

然而,有時候國內訪問 https://github.com/ 速度太慢,如何加速訪問 github.com 網站就成了剛需.

由於 github.com 網站位於美國舊金山,所以初始訪問 github.com 時網絡尋址會比較耗費時間,這也是網站打開速度慢的其中一個原因.

github-speedup-ipaddress-dns.png

國外在線檢測網站: https://www.ipaddress.com/

最初用戶從瀏覽器中輸入 github.com 網址時,瀏覽器並不知道這個域名對應的真實 ip 地址,先問問自己電腦認識不認識這個域名的門牌號,如果本機不認識會接着往上問,當地運行商也不認識這個域名的話,繼續問上級,直到問道 github.com 的門牌號是 192.30.253.113 爲止!

如此繁瑣的問路過程被稱之爲 DNS 尋址,如果問路的時間都佔用很久,那麼訪問網站的速度自然會很慢.

所以,如果我們直接告訴瀏覽器目的地,那麼瀏覽器也就不會一步一步去費勁問路了,這在一定程度上也就優化了訪問網站的速度.

$ ping github.com -c 3
PING github.com (192.30.253.113): 56 data bytes
64 bytes from 192.30.253.113: icmp_seq=0 ttl=41 time=405.924 ms
64 bytes from 192.30.253.113: icmp_seq=1 ttl=41 time=346.654 ms
64 bytes from 192.30.253.113: icmp_seq=2 ttl=41 time=345.485 ms

--- github.com ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 345.485/366.021/405.924/28.220 ms
ping github.com -c 3 查看 github.com 網站的門牌號

正常來說,網站的主域名下會存在多個子域名,由這些域名組合在一起提供完整的服務.

github.com 也不例外,其中 github.com是一級域名,也是主域名,其他的域名基本上都是二級餘敏或者說次域名.

所以我們不僅要告訴本機 github.com 的主域名,還要把相關的子域名也告訴本機,幫人幫到底,送福送到西!

那到哪裏去查詢域名和 ip 的對應關係呢?

想一想現實生活中,每個人都有自己的家,而這個家有具體的地址,也就是平時說的門牌號.

當然,有些人名下不只有一個家,可以有很多房產都可以作爲家.

對應到計算機世界中,域名就是計算機中的個人用戶,而域名的家就是 ip 地址.一個域名可以有多個 ip,但一個 ip 只能有一個域名.

正所謂"一山不容二虎","臥榻之旁豈容他人酣睡",一家之主只能有一個!

如果有人想要拜訪您,肯定要有具體的地址才能到你家裏做客,從你家到你家的地址這個過程可能是你告訴他的,也可能是他自己找別人打聽到的消息.

域名到 ip 地址的過程同樣也需要找人詢問,這個信息一般會存在 dns 服務商那裏,就像我們的地址登記到相關政府機構一樣.

雖然相關機構的信息比較權威及時,但門檻有點高,不如問一下當地的"消息通".

互聯網上的"消息通"更是數不勝數,這裏推薦兩個查詢域名解析的網站.

github-speedup-ipaddress-preview.png

github-speedup-chinaz-preview.png

子域名有哪些

下面以 ipaddress.com 網站爲例,查詢下 github.com 網站的相關信息.

在輸入框中輸入 github.com 域名後開始解析該域名的相關信息,不僅找到了域名對應的 ip 地址還查詢到相關網站的域名信息.

github-speedup-ipaddress-domain.png

親自去體驗一下: 域名查詢

根據查到的相關域名信息,再次查詢出這些域名對應的 ip 地址,於是整理出以下內容.

# github related website
192.30.253.113 github.com
151.101.185.194 github.global.ssl.fastly.net
192.30.253.118 gist.github.com
192.30.253.120 codeload.github.com
185.199.108.153 desktop.github.com  
185.199.108.153 guides.github.com   
185.199.108.153 blog.github.com 
18.204.240.114 status.github.com   
185.199.108.153 developer.github.com    
185.199.108.153 services.github.com 
192.30.253.175 enterprise.github.com   
34.195.49.195 education.github.com    
185.199.108.153 pages.github.com    
34.196.237.103 classroom.github.com

就近 cdn 加速

大型網站服務器都不會是隻有一臺服務器,而是多臺服務器組成的集羣一起對外提供服務.

全世界都在使用 github ,如果每一次訪問網站時走的都是美國服務器,即使瀏覽器知道目的地,但是距離太多遙遠還是會很慢.

因此,如果能夠就近訪問 github 網站就能大幅提高訪問速度了,幸運的是,網絡上同樣有現成的工具來幫助我們查看就近的網站地址.

github-speedup-chinaz-dns.png

親自去體驗一下: DNS查詢

從上圖中我們可以看出,同一個域名有很多不同的 ip 地址,從中選擇 TTL 值最小的作爲優化標準.

於是,將上述清單繼續優化成以下內容:

# github related website
192.30.253.113 github.com
151.101.185.194 github.global.ssl.fastly.net
203.98.7.65 gist.github.com
13.229.189.0 codeload.github.com
185.199.109.153 desktop.github.com 
185.199.108.153 guides.github.com  
185.199.108.153 blog.github.com
18.204.240.114 status.github.com
185.199.108.153 developer.github.com
185.199.108.153 services.github.com
192.30.253.175 enterprise.github.com   
34.195.49.195 education.github.com    
185.199.108.153 pages.github.com  
34.196.237.103 classroom.github.com
最好親自測試一下就近站點以求獲得最佳體驗,不過推測應該差異不是很大,所以直接複製也無妨.

告訴本機新地址

現在我們已經弄清楚域名和 ip 的映射關係,接下來要做的事情就是告訴本機,不同的操作系統具體文件存放的地址可能有些不同,下面我們以 WindowsMac 舉例說明.

# github related website
192.30.253.113 github.com
151.101.185.194 github.global.ssl.fastly.net
203.98.7.65 gist.github.com
13.229.189.0 codeload.github.com
185.199.109.153 desktop.github.com 
185.199.108.153 guides.github.com  
185.199.108.153 blog.github.com
18.204.240.114 status.github.com
185.199.108.153 developer.github.com
185.199.108.153 services.github.com
192.30.253.175 enterprise.github.com   
34.195.49.195 education.github.com    
185.199.108.153 pages.github.com  
34.196.237.103 classroom.github.com

windows

映射文件存放於: C:\Windows\System32\drivers\etc\hosts
  • 打開 hosts 文件,將上述映射關係追加到文件末尾,保存並退出.

github-speedup-windows-hosts.png

如果由於權限不足,無法保存,可以複製到桌面再編輯文件,最後移動並替換到 hosts 文件.
  • 運行 ipconfig /flushdns 刷新 dns 緩存.

github-speedup-windows-ping.png

mac

映射文件存放於: /etc/hosts
  • 編輯 hosts 文件並追加上述映射關係.
$ cat /etc/hosts
# jetbrains
0.0.0.0 account.jetbrains.com
0.0.0.0 www.jetbrains.com

# github related website
192.30.253.113 github.com
151.101.185.194 github.global.ssl.fastly.net
203.98.7.65 gist.github.com
13.229.189.0 codeload.github.com
185.199.109.153 desktop.github.com 
185.199.108.153 guides.github.com  
185.199.108.153 blog.github.com
18.204.240.114 status.github.com
185.199.108.153 developer.github.com
185.199.108.153 services.github.com
192.30.253.175 enterprise.github.com   
34.195.49.195 education.github.com    
185.199.108.153 pages.github.com  
34.196.237.103 classroom.github.com
  • 運行 sudo dscacheutil -flushcache 刷新 dns 緩存.
$ ping github.com -c 3
PING github.com (192.30.253.113): 56 data bytes
64 bytes from 192.30.253.113: icmp_seq=0 ttl=41 time=395.808 ms
64 bytes from 192.30.253.113: icmp_seq=1 ttl=41 time=306.919 ms
64 bytes from 192.30.253.113: icmp_seq=2 ttl=41 time=298.188 ms

--- github.com ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 298.188/333.638/395.808/44.105 ms
$ 

又到總結時間

本文講述瞭如何解決 github.com 網站訪問速度慢的問題,通過修改本機的 hosts 文件來繞過 dns 解析,這種方法僅僅適用於能夠訪問網站只不過是訪問速度慢這一現象.

如果本身無法訪問國外網站,那麼這種方法就不適用,可能需要另闢蹊徑!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章