快速解决GitHub中(快速解决GitHub中)(1)

网管小贾 / sysadm.cc

前几日突然想起给 GitHub 项目撰写 README.md 文档。

Markdown 格式写起来轻车熟路,不一会儿完成,保存上传。

刷新页面查看效果,怪事儿来了,图片无法显示。

快速解决GitHub中(快速解决GitHub中)(2)

网上大神们有的说是图片路径问题,也有的说是被墙了,原因五花八门,解决方法也是麻烦不已。

到底是什么原因导致了 github 上无法显示图片呢?

经过数个小时的查证测试,我终于 Get 到了真正的原因 -- DNS 污染!

DNS 叫做域名服务,这个小伙伴们都知道,那么什么是 DNS 污染呢?

简单一句话,就是这个域名服务被恶意篡改了缓存数据,导致解析出来的IP地址是不正确的。

你若是拿着错误的门牌号地址去送快递,那肯定找不到啊!

此外,真正存放用户上传文件的服务器域名是 raw.githubusercontent.com ,而并非是我们想像中的都在 github.com ,为降低主服务器压力,两者是分开的。

结合前面说到的 DNS 没有正确解析的情况,那么问题就简化成了如何让我们正确拿到 raw.githubusercontent.com 的IP地址。

对于个人电脑,我们可以先查找正确的IP地址,然后将其添加到本机 hosts 文件中。

通过访问IP地址解析网站,输入域名查找对应正确的IP地址。

https://www.ipaddress.com/

快速解决GitHub中(快速解决GitHub中)(3)

快速解决GitHub中(快速解决GitHub中)(4)

或者还一个更简便的方法,使用以下命令即可查看对应域名的IP地址。

其中 114.114.114.114 是互联网上的 DNS 服务器,你可以随意指定其它的。

nslookup raw.githubusercontent.com 114.114.114.114

快速解决GitHub中(快速解决GitHub中)(5)

以上两种方法都得到了四组IP地址。

然后以管理员权限运行文本编辑器(比如 Windows 的记事本),打开并编辑 hosts 文件。

# Windows C:\Windows\System32\drivers\etc\hosts # Linux 或 macOS /etc/hosts

在 hosts 文件末尾追加如下两行,其中IP地址随便选择前面所查的任意一条。

当然你可以先 ping 一下这些IP地址,然后选择通畅且速度最快的。

185.199.108.133 raw.githubusercontent.com 185.199.108.133 githubusercontent.com

编辑完成后保存退出。

重新刷新 GitHub 页面,真的耶,图片终于回来了!

快速解决GitHub中(快速解决GitHub中)(6)

最后需要啰嗦一句,无法显示图片的原因既然是由于 DNS 污染造成的,而域名解析地址往往会每隔一段时间发生变更,所以小伙伴们最好时不时地查证一下域名指向的IP地址是否有所更新。

至于专属 DNS 服务器的小伙伴们,也可以添加正确的解析来解决问题,同样也需要注意时刻更新记录。

好了,如果本文对你有所帮助,还请抬抬小手帮忙点赞分享,还有别忘记关注我哦!

网管小贾 / sysadm.cc

,