前言
Github作為全球最大的開源平臺(tái),有很多優(yōu)秀的開源項(xiàng)目,可以在上面找到很多參考代碼,是程序員學(xué)習(xí)交流平臺(tái)。
原文鏈接:解決 github 訪問失敗 | Hackt0's Blog
為什么會(huì)時(shí)常訪問失敗呢?
主要是因?yàn)槲覀冊(cè)谡?qǐng)求GitHub的網(wǎng)址時(shí),會(huì)先向DNS服務(wù)器發(fā)送一個(gè)請(qǐng)求,DNS服務(wù)器解析獲取到對(duì)應(yīng)的IP地址,然后發(fā)起連接。
被攔截主要原因也是Github屬于國(guó)外站點(diǎn),偶爾會(huì)被國(guó)內(nèi)神秘怪圈吞噬;而為了減少解析次數(shù),DNS會(huì)做緩存,將已有的IP直接返回,此時(shí)該IP可能已經(jīng)被攔截,繼續(xù)使用DNS緩存訪問會(huì)一直異常,可以直接ping一下看看:
ping.png
解決辦法
繞過DNS解析
最簡(jiǎn)單的辦法當(dāng)然是既然DNS解析會(huì)出錯(cuò),那我們自己解析好然后訪問就好了,那怎么自己添加解析呢?
那就是修改hosts文件,hosts文件是記錄常用域名與對(duì)應(yīng)的IP,也是用來做域名解析,且優(yōu)先級(jí)高于DNS解析。常見的用法也包括修改hosts文件達(dá)到測(cè)試環(huán)境和線上環(huán)境切換的效果,就是測(cè)試的時(shí)候添加規(guī)則將域名指向內(nèi)網(wǎng);還有就是惡意軟件常修改hosts來劫持域名,比如將正常導(dǎo)航網(wǎng)頁的IP填成到某數(shù)字導(dǎo)航IP。
常用的hosts文件位置:
Windows 系統(tǒng):
C:\Windows\System32\drivers\etc\hostslinux 系統(tǒng):
/etc/hostsmac/ios 系統(tǒng):
/etc/hosts
手動(dòng)獲取IP地址:
- 手動(dòng)獲取IP地址也只是通過多臺(tái)服務(wù)器獲取到的DNS解析情況來選擇最優(yōu)解,可以使用Dns查詢 - 站長(zhǎng)工具 (chinaz.com)查找TTL值最小的響應(yīng)IP

- 添加到對(duì)應(yīng)的hosts文件即可:

- 如果出現(xiàn)權(quán)限問題無法保存,可以將
hosts文件復(fù)制到個(gè)人文檔,修改后覆蓋回去即可
那么問題來了,如果每次都這么修改就有點(diǎn)麻煩了,有沒有工具自動(dòng)完成呢,同志們?cè)缫呀o了辦法
自動(dòng)修改hosts
按照上面方法修改后可以訪問Github了,就可以體驗(yàn)下Github的強(qiáng)大之處了
感謝GitHub加速器,讓你“愛”上 GitHub項(xiàng)目作者,實(shí)時(shí)獲取有效IP并發(fā)布到https://raw.hellogithub.com/hosts
項(xiàng)目中還提到可以使用Switch hosts quickly!自動(dòng)切換hosts,添加如下規(guī)則開啟即可

緩存刷新
如果使用方法一之后未能正常訪問GitHub,還可以刷新一下系統(tǒng)DNS緩存和瀏覽器DNS緩存
刷新系統(tǒng)DNS緩存
$ ipconfig /flushdns
清除瀏覽器DNS緩存
chrome內(nèi)核瀏覽器為例,打開
chrome://net-internals/#dns頁面,點(diǎn)擊Clear host cache即可
穩(wěn)定方案
根據(jù)上述方案可以訪問github后,可查看頂部原文鏈接
