本文提供的是windows系統解決方法,linux系統和mac系統可以參考原理,修改DNS的ip地址為阿里雲或者是修改hosts文件
問題
可能有些朋友和我遇到同樣的問題,逛Github的時候會發現,某些開源庫的readme文件的圖片無法顯示,或者是自己頭像和別的用戶頭像也不顯示,如下圖所示
這種情況,一般是因為DNS無法解析到圖片外鏈地址的ip地址
我以TornadoFx的logo圖片為例,它的地址為https://github.com/edvin/tornadofx/raw/master/graphics/tornado-fx-logo.png?raw=true
,實際上github上面的圖片地址都是githubusercontent.com
這個域名,如https://camo.githubusercontent.com/8acab398c6e900d3cb442aeca154c84341558c02c3a8f3027d09b29d3d74e9dd/68747470733a2f2f7472617669732d63692e6f72672f656476696e2f746f726e61646f66782e737667
camo.githubusercontent.com
這個就是實際訪問的域名
我們ping一下上面的這個域名,會發現ping不通
修改DNS解決(推薦)
測試的時候發現,有些圖片可以顯示,有些圖片無法顯示,強迫症忍不了,可以使用改hosts文件方法,改hosts方法在下面
PS:阿里雲DNS服務器地址為223.5.5.5
和 223.6.6.6
下面以win10系統為例,具體步驟如下
1.進入網絡設置
2.打開適配器設置
3.選擇某個網絡
這里選擇你當前正在使用的網絡,wifi或者是寬帶,我這里用的是wifi,雙擊打開
4.設置DNS
修改hosts文件解決
上面測試的ping命令之所以不通,還是因為國內有限制,我們國內的DNS運營商沒上面的那個域名加到DNS映射列表中,所以導致我們訪問該域名是找到具體的ip地址
解決方法也很簡單,我們可以通過外國的ip地址測試找到該域名具體對應的ip地址,之后手動地加到我們本機的host文件中(相當於DNS映射)
科普一下:本機訪問一個域名,先是通過本機的host文件中去找對應的ip地址,如果找不到才會請求DNS服務器去尋找該域名對應的ip地址
找到域名對應的ip地址
訪問https://www.ipaddress.com/,之后在頁面輸入camo.githubusercontent.com
,可以看到其對應的ip地址
查看下方,可以發現很多類似的
我們得把上面的地址全部加到hosts文件中且映射為之前的ip地址才行
修改hosts文件
之后,我們把這個ip地址加到host文件中去
host文件路徑:C:\Windows\System32\drivers\etc\hosts
199.232.96.133 camo.githubusercontent.com
199.232.96.133 cloud.githubusercontent.com
199.232.96.133 raw.githubusercontent.com
199.232.96.133 gist.githubusercontent.com
199.232.96.133 desktop.githubusercontent.com
199.232.96.133 user-images.githubusercontent.com
199.232.96.133 avatars0.githubusercontent.com
199.232.96.133 avatars1.githubusercontent.com
199.232.96.133 avatars2.githubusercontent.com
199.232.96.133 avatars3.githubusercontent.com
199.232.96.133 avatars4.githubusercontent.com
199.232.96.133 avatars5.githubusercontent.com
199.232.96.133 avatars6.githubusercontent.com
199.232.96.133 avatars7.githubusercontent.com
199.232.96.133 avatars8.githubusercontent.com
PS:上述手動添加,可能會有遺漏,如果你發現訪問github上面仍存在無法查看的圖片,可以復制該圖片的地址,參照上方的內容在hosts文件加上即可
如果之后某天發現圖片無法訪問了,可以重復此步驟,去ipaddres網站查詢新的ip地址,之后再修改hosts文件就可以了
刷新DNS
修改完hosts文件后,我們需要通過cmd命令來刷新DNS,不懂cmd命令可以使用重啟大法...
ipconfig /flushdns
結果
現在,我們可以再試着ping一下,發現是成功ping通了
訪問github也是可以看到圖片了,大功告成!