1. 程式人生 > 其它 >github訪問困難/緩慢的問題解決

github訪問困難/緩慢的問題解決

GitHub 是全球最大的程式碼開源平臺,重要性不言而喻。

但由於某些特殊原因,可能導致了DNS解析緩慢,容易出現tcp的連線超時情況很多人發現自己訪問 GitHub 時斷時續。

到底是什麼原因導致了這個問題,網上眾說紛紜,我還是小白,也不必去深究,只要解決這個問題來滿足自己的訪問需求就可以了。

下面就說兩種方法吧:

1. 改 hosts

我們在瀏覽器輸入 GitHub 的網址時,會向 DNS 伺服器傳送一個請求,獲取到 GitHub 網站所在的伺服器 IP 地址,從而進行訪問。

就像你是一名快遞員,在送快遞前要先找中間人詢問收件人的地址。而 DNS 就是這個告訴你目標地址的中間人,如果 DNS 告訴了你錯誤的地址、或者請求被攔截、再或者 DNS 掛了,都會導致你無法訪問網站。

那有什麼辦法不經過 DNS,就獲取到網址對應的 IP 麼?

答案就是修改 hosts 檔案。當用戶在瀏覽器中輸入網址時,系統會首先自動從 hosts 檔案中尋找對應的 IP 地址,一旦找到,系統會立即開啟對應網頁,如果沒有找到,系統才會再將網址提交 DNS 域名解析伺服器進行 IP 地址的解析。

(關於DNS地址解析協議的詳解,前面的隨筆中寫的非常清楚了,不太懂的朋友可以去看看。快速連結:https://www.cnblogs.com/eudaimonia/p/15983188.html)

因此,想要訪問 GitHub,我們可以先通過 IP 查詢工具 來獲取當前 GitHub 網站的真實地址,再修改本地 hosts 檔案,將該地址和 GitHub 網址關聯。

 

先找到 hosts 檔案的位置,不同作業系統,hosts 檔案的儲存位置也不同:

  • Windows 系統:C:\Windows\System32\drivers\etc\hosts
  • Linux 系統:/etc/hosts
  • Mac(蘋果電腦)系統:/etc/hosts
  • Android(安卓)系統:/system/etc/hosts
  • iPhone(iOS)系統:/etc/hosts

開啟 hosts 檔案,新增一行,將 xx 替換為你查詢到的解析地址即可:

xx.xx.xx.xx www.github.com

但這種方式比較麻煩,而且查詢出來的 IP 也未必支援國內的訪問,所以下面再推薦另外一種更簡單的方式!

 

如果出現hosts寫許可權失敗,或者修改後也無法訪問的情況,請跳轉文末有結局方案

 

2.github520

GitHub520 就是一個幫助大家訪問 GitHub 的專案,本質也是通過修改 hosts 來實現的。

該專案的作者為大家提供了一份完整的 hosts 列表,無需大家自己查詢可用 IP,非常地貼心,而且每天都會更新!

通過修改本地hosts檔案中的內容,讓訪問github達到加速的目的。操作很簡單,複製下面的內容到裝置的hosts檔案中去。

# GitHub520 Host Start
185.199.108.154               github.githubassets.com
140.82.113.22                 central.github.com
185.199.108.133               desktop.githubusercontent.com
185.199.108.153               assets-cdn.github.com
185.199.108.133               camo.githubusercontent.com
185.199.108.133               github.map.fastly.net
199.232.69.194                github.global.ssl.fastly.net
140.82.113.3                  gist.github.com
185.199.108.153               github.io
140.82.114.4                  github.com
140.82.112.6                  api.github.com
185.199.108.133               raw.githubusercontent.com
185.199.108.133               user-images.githubusercontent.com
185.199.108.133               favicons.githubusercontent.com
185.199.108.133               avatars5.githubusercontent.com
185.199.108.133               avatars4.githubusercontent.com
185.199.108.133               avatars3.githubusercontent.com
185.199.108.133               avatars2.githubusercontent.com
185.199.108.133               avatars1.githubusercontent.com
185.199.108.133               avatars0.githubusercontent.com
185.199.108.133               avatars.githubusercontent.com
140.82.113.9                  codeload.github.com
52.217.88.28                  github-cloud.s3.amazonaws.com
52.216.238.99                 github-com.s3.amazonaws.com
52.216.26.252                 github-production-release-asset-2e65be.s3.amazonaws.com
52.217.101.68                 github-production-user-asset-6210df.s3.amazonaws.com
52.217.48.84                  github-production-repository-file-5c1aeb.s3.amazonaws.com
185.199.108.153               githubstatus.com
64.71.168.201                 github.community
185.199.108.133               media.githubusercontent.com


# Update time: 2022-03-13 T12:24:16+08:00
# Star me GitHub url: https://github.com/521xueweihan/GitHub520
# GitHub520 Host End

 

上面內容會自動定時更新,保證最新有效。

 

下面再說兩種方法都可能會出現的問題:

1.hosts檔案無法修改

 

找到hosts檔案後右鍵安全屬性,高階設定,配置許可權為允許修改和寫入即可。

**注:修改完畢hosts檔案後,出於安全考慮,還是請大家將許可權再次關閉,以免出現惡意定位的ip偽裝攻擊。

 

2.啟用hosts檔案重新生效

大部分情況下是直接生效,如未生效可嘗試下面的辦法,重新整理 DNS:

Windows:在 CMD 視窗輸入:ipconfig /flushdns (win+r調出搜尋臺,鍵入cmd後回車即可進入控制檯)

Linux 命令:sudo rcnscd restart

Mac 命令:sudo killall -HUP mDNSResponder

Tips: 上述方法無效可以嘗試重啟機器。