本文提供的是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也是可以看到图片了,大功告成!
评论区