小尹最近接到公司网站的一些图片文件打不开,但是百度等其他网站能够正常访问的问题。经过排查,小尹发现是电脑本地 DNS 使用的是日本的 DNS 服务器,导致网站的一些图片无法访问到对应的服务器,从而打不开图片了。那么什么是 DNS , 如何合理的配置 DNS ,本文将带你一起全方位了解下。一、早期的互联网通信在最早期,全球只有几台计算机,这些计算机之间相互独立,没有任何交集。科学家们希望这些计算机之间能够去建立连接,实现互相通信,于是发明了 IP 地址, IP 地址目前的版本已经发展为 IPV4 和 IPV6 。例如 112.80.248.76 就是一个 IPV4 地址而类似 240e:95c:3004:4:3::3f9 这种比 IPV4 还长的则表示 IPV6 地址。关于 IPV4 和 IPV6 的详细信息,本文不过多赘述,有兴趣可以自行了解。即使是 IPV4 地址也有 32 位的长度,且 IPV4 的地址就有 43 亿之多。IPV6 的地址则更多,有句话是这么说的, IPV6 的地址可以为世界上每一粒沙子分配一个地址,可想而知这个数量的庞大。事实上,上面提到的 IP 地址 112.80.248.76? 是国内搜索引擎百度的服务器地址,想象一下你在浏览器每次打开百度去输入这么一长串的 IP 地址方便还是直接输入域名? www.baidu.com? 更便捷。?在早期,人们只能记忆这种复杂的地址来使得不同地区的计算机之间去建立通信。后来人们发明了一种方法,通过域名来指向某一个网站,将这个文件放在计算机中,每次去访问网站就去读取这个文件的配置,例如要访问 www.youzan.com,则在这个文件中记录:140.143.255.243 www.youzan.com这个文件我们通常称之为 hosts 文件,那么其他的网站的信息也写在这个文件里面,这样我们就不需要去记忆复杂的 IP 地址了。随着互联网的蓬勃发展,大大小小的网站、应用的出现充实了我们的生活,各种电子设备:大到电脑、手机、电视、摄像头、穿戴设备,这些设备都需要去通信,那么就需要网络的支持,所以这些设备都会分配一个 IP 地址。而这些 IP 都有可能绑定一个域名,这种 hosts 的方式显然就不太合适了,hosts 文件也变得越来越大,并且在每台计算机都要存储一份,文件的存储和更新也变得不方便。试想一下,假设现在 www.youzan.com 的 IP 发生了改变,是不是得把所有的计算机的 hosts 文件内容都要更新一遍才行,这显然是不合理的,这种方式显然就落后了。于是就有了 DNS 技术的出现。二、什么是 DNS?DNS ( Domain Name System) ,又叫“域名系统”,你可以把它想象成一本巨大的电话本。在上述背景下,产生了可以有效管理主机名(域名)和 IP 地址之间对应关系的系统,那就是 DNS 系统。在这个系统中可以对数据进行变更和设定。也就是说,它维护一个用来表示主机名(域名)和 IP 地址之间对应关系的数据库。在该系统中,一个主机名(域名)和 IP 地址之间对应关系就是一条记录,根据记录使用的目的不同,又分为不同的类型。三、DNS 查询过程以下以访问 www.youzan.com 为例,当用户在浏览器输入?www.youzan.com?,是如何解析对应的服务器的。DNS 的查询过程如下:在浏览器中输入 www.youzan.com 域名,操作系统会先检查自己本地的 hosts 文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成解析。如果主机本地的 hosts 文件里没有这个域名的映射,则查找本地 DNS 解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成解析。如果 hosts 与本地 DNS 解析器缓存都没有相应的映射关系,首先查找本地设置的首选 DNS 服务器,此服务器收到查询时,查找配置 DNS 服务是否存在该映射关系,则返回解析结果给客户机,完成域名解析。如果要查找配置 DNS 服务不存在该映射关系,但该服务器已缓存了此网址映射关系,则调用这个映射,完成域名解析。如果本地 DNS 服务器配置 DNS 服务和缓存都不存在该映射关系,则根据本地 DNS 服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地 DNS 就把请求发至 13 台根 DNS 服务器?,根 DNS 服务器收到请求后会判断这个域名( .com )是谁来授权管理, 并会返回一个负责该顶级域名服务器的一个 IP 。本地 DNS 服务器收到 IP 信息后,将会联系负责 .com 域的这台服务器。这台负责 .com 域的服务器收到请求后,如果自己无法解析,它就会找一个管理 .com 域的下一级 DNS 服务器地址 http://youzan.com 给本地 DNS 服务器。当本地 DNS 服务器收到这个地址后,就会找 http://youzan.com 域服务器,重复上面的动作,进行查询,直至找到 www. youzan.com 主机。如果用的是转发模式,此 DNS 服务器就会把请求转发至上一级 DNS 服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根 DNS 或把请求转至上上级,以此循环。不管是转发模式还是没有使用转发模式,最后都是把结果返回给本地 DNS 服务器,由此 DNS 服务器再返回给客户机。四、如何通过 DNS 来定位问题注意事项:如果办公网环境下使用的是私有 DNS ,修改 DNS 可能会导致无法访问公司内部服务例如碰到上传商品图片报网络错误,或用户访问打不开网站,报错 DNS_PROBE_FINISHED_NXDOMAIN 等类似问题,可以通过以下步骤来解决:1、使用以下链接查看是否是国外 DNS :?工具:http://vipshop.koudaitong.com/yzcheck.html2、如果是国外 DNS ,则修改?DNSwindows 修改 DNS (以 windows10 为例):a、首先在 Win10 右下角的网络图标中,右击鼠标,在弹出的菜单中,点击进入“打开网络和共享中心”。b、打开网络和共享中心后,点击右侧已经连接上的网络名称。c、打开的网络状态界面,单击“属性”,然后在网络属性界面,然后点击选中“ Internet 版本协议 4 ”,选中再点击下方的“属性”,之后就可以弹出 Win10 静态 IP 地址设置界面了。d、最后在 Internet 版本协议 4 设置中,点选“使用下面的 DNS 服务器地址”,然后输入需要更改后的首选 DNS 服务器地址和备选服务器 DNS 地址就可以了,完成后,点击底部的“确定”保存即可。Mac 修改 DNS :a、首先进入 Mac 系统桌面,然后点击最左上角的苹果图标,在下拉菜单中选择【系统偏好设置】进入设置,如下图所示。b、然后我们再单击【网络】图标进入网络设置,如下示意图所示。c、接下来,我们从列表中选择相应的网络连接服务,如果你用的以太网就以太网,用的 wifi 就点击 wifi ,然后单击【高级】选项,操作如下示意图。d、最后我们再点击 DNS 的选项卡,然后点击左下角【+】或者【-】图标,然后就可以手动添加自己需要的DNS地址了,完成后点击【好】。e、 Mac 设置完 DNS 后,返回到上一级,再单击【应用】,就可以保存以上设置。然后就可以重新访问网址试试问题是否解决啦~如果你也对技术支持解决问题的方案或者过程感兴趣,欢迎和我们一起沟通讨论~