當我們在瀏覽器中輸入github的網址:https://github.com/,瀏覽器并不能根據該地址直接訪問github服務器。在請求發給github服務器之前,需要先根據輸入地址中的域名github.com,從遠程dns查找該域名對應的ip地址,然后根據ip地址才能將請求發送到github服務器。流程如下:
從dns根據域名查找ip,或者根據ip請求github服務器時間太長,導致請求超時,就很容易出現github無法打開的情況:
從瀏覽器的網絡請求查看,顯示耗費了21秒就失敗了
那么,我們該如何解決呢?可以從兩個方面入手:
1、避免從遠程dns根據域名查找ip的過程;
2、查找一個github服務器ip,而且訪問這個ip要比較快。
為了避免根據域名到遠程dns查找ip的過程,我們可以直接在我們的電腦上配置域名和ip的映射,這樣當通過域名訪問github服務器時,就能直接從本地獲取到ip地址,而無需通過遠程dns查找。那么,我們又怎么知道一個域名對應的ip是什么呢?有兩種方式:一種是在網上找在線工具;另一種是在cmd通過ping域名的方式獲取到ip。
比如通過cmd方式獲取github.com域名的ip地址:
可以看到,github.com域名對應的ip地址是20.205.243.166
如果是通過在線工具,同樣可以找到域名對應的ip:
當我們知道域名對應的ip后,就可以在我們本機配置域名和ip的映射關系。
windows系統下,以管理員的身份打開:C:\Windows\System32\drivers\etc\hosts文件,在最后加入一行(ip與域名之間用空格隔開):
配置好后保存,然后在cmd輸入ipconfig /flushdns,這樣瀏覽器就能發現本地的域名與ip映射關系:
此時再通過瀏覽器訪問github,發現會快了很多(如果沒有效果,可以重啟下瀏覽器):
但是很奇怪,現在雖然訪問到了github,但是頁面布局錯亂,完全沒法看。從上圖的瀏覽器網絡請求上看,發現很多css樣式文件都加載失敗,所以網頁布局錯亂,應該就是css資源加載失敗導致的。查看下請求css資源的地址,發現它的域名與github的域名不一樣,猜測也是根據域名轉ip影響的:
我們按照配置github.com域名與ip映射的思路,也對該域名進行配置。首先找這個域名的ip:
從cmd發現該域名對應的地址是環回地址(相當于本地地址),我們本地是沒有css樣式文件的,難怪加載不到css樣式文件。那么我們通過在線工具來找ip:
找出來這么多個,在hosts文件都配上,配上后記得在cmd執行ipconfig /flushdns:
這個時候再訪問github網站,發現網站正常顯示,而且訪問速度很快:
至此,如無意外,就能正常訪問github了。
通過上面的步驟,我們通過域名找到了ip,避免了通過遠程dns轉ip的過程 。那么訪問這個ip快不快我們又怎么驗證呢?我們可以測試一下。比如我們測試一下githu.com域名對應的ip:20.205.243.166。在cmd ping一下這個ip:
發現訪問這個ip,一個往返時間大概是48ms。我們從在線工具拿個其它的ip地址試試:
發現其它地址都不是很快。那么我們就選用20.205.243.166就可以了。
其它域名如何選合適的ip也同理,可以多試幾個,找到訪問比較快的ip,配置好就可以了。
下一篇:最新網站接入支付寶支付的詳細步驟
掃一掃 加微信咨詢