DNS解析顺序

计算机网络 专栏收录该内容
11 篇文章 0 订阅

学习过计算机基础和网络的人都知道域名解析的大概原理和过程,就是细节可能不太清除。下面我就简单介绍一下域名解析的大概过程:

DNS的作用:

DNS的作用:在互联网中,其实没有类似于www.xxx.com这种域名方式,而替代的是以IP地址,如222.222.222.222,那我们在IE地址栏中应当输入222.222.222.222才能打开网站www.xxx.com,但我们细想一下,互联网上的网站成千上万,如果每个网站登陆都需要记住一大串数字,那是不是特别不方便,对于记忆力不强的人,根本无法记住这么烦琐的数字。这个时候DNS就出现了,它的作用就是将222.222.222.222解析为www.xxx.com,那么我们登陆的时候就直接输入域名就可以了。

为什么一定要设置DNS才能上网?有些朋友可能会发现,为什么我可能登陆QQ、MSN,但却打不开网页呢?其实大部分原因都是因为DNS服务器故障造成的,DNS服务器地址是唯一的,是运营商提供给终端用户用来解析IP地址及域名的关系,而如果不设定DNS服务器地址,那么就无法查询地址的去向,自然也就打不开网页,而QQ、MSN等即时聊天软件,采用的是UDP传输协议,即不可靠传输协议,无需提供DNS服务器地址,也同样可以登陆。

 

DNS缓存简介:

DNS缓存指DNS返回了正确的IP之后,系统就会将这个结果临时储存起来。并且它会为缓存设定一个失效时间 (例如N小时),在这N小时之内,当你再次访问这个网站时,系统就会直接从你电脑本地的DNS缓存中把结果交还给你,而不必再去询问DNS服务器,变相“加速”了网址的解析。

  当然,在超过N小时之后,系统会自动再次去询问DNS服务器获得新的结果。所以,当你修改了 DNS 服务器,并且不希望电脑继续使用之前的DNS缓存时,就需要手动去清除本地的缓存了。

 

DNS缓存分类:

1)浏览器DNS缓存(内存中): 浏览器会按照一定频率缓存DNS记录

2)本地DNS缓存(内存中): 如果浏览器缓存中找不到需要的DNS记录,那就去操作系统找。

3)本地HOSTS文件: Windows系统中位于C:\Windows\System32\drivers\etc

4)路由器DNS(可以登录后台设置DNS服务器地址): 路由器自动获取DNS地址,也可以手动

     修改(路由器DNS被篡改会造成域名劫持,你访问的网址都会被定位到同一个位置,但是

     IP直接可以访问)

5)ISP的DNS服务器:  ISP(互联网服务提供商、联通电信移动),ISP有专门的DNS服务器应

     对DNS查询请求

6)根服务器: ISP的DNS服务器还找不到的话,它就会向根服务器发出请求,进行递归查询

     (以访问www.baidu.com为例, DNS服务器先问根域名服务器.com域名服务器的IP地址

     ,然后再问.com域名服务器,以此类推)

 

调用系统缓存需要跨进程,消耗大,因此为了解析速度的方便,就有了一系列缓存来加快IP查找速度。 

浏览器DNS查找顺序一般是这样的: 

     浏览器DNS缓存->本地系统DNS缓存->本地计算机HOSTS文件->ISP DNS缓存->递归搜索

期间如果查询到了,也就直接访问ip地址了,这个就像三级缓存原理一样。

 

我们有时候在破解或者是网络损坏的情况下会清除一些缓存,修改HOSTS文件来达到目的,

下面我就简单示例一下:

我的是无线网络,系统Win10

查看DNS服务器以及DHCP服务器和自己的IP地址:

cmd->ipconfig/all可以查看,其中有些公网IP是可以定位位置的,这里就不展示了

可以看到我的DHCP服务器ip,以及我的DNS服务器的首选ip为114.114.114.114(位于北京人民英雄纪念碑),还有

一个在我位置附近的DNS服务器IP xxx.xxx.xxx.xxx

全国通用DNS地址(国内用户推荐使用,速度较快!)
首先DNS服务器地址添:114.114.114.114
备用DNS服务器地址添:114.114.115.115
全球通用DNS地址(此DNS地址为谷歌服务器的)
首选DNS服务器地址添:8.8.8.8
备用DNS服务器地址添:8.8.4.4
无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Intel(R) Dual Band Wireless-AC 3165
   物理地址. . . . . . . . . . . . . : xx-xx-xx-xx-xx-xx
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是
   IPv6 地址 . . . . . . . . . . . . : 2001:da8:4002:3301:45fd:6156:b8c3:xxxx(首选)
   临时 IPv6 地址. . . . . . . . . . : 2001:da8:4002:3301:cdc3:eff1:9911:xxxx(首选)
   本地链接 IPv6 地址. . . . . . . . : fe80::45fd:6156:b8c3:42ed%7(首选)
   IPv4 地址 . . . . . . . . . . . . : 10.101.41.181(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.128.0
   获得租约的时间  . . . . . . . . . : 2018年10月9日 12:15:50
   租约过期的时间  . . . . . . . . . : 2018年10月11日 8:49:26
   默认网关. . . . . . . . . . . . . : fe80::1614:4bff:fe80:3c21%7
                                       10.101.127.254
   DHCP 服务器 . . . . . . . . . . . : 10.101.127.254
   DHCPv6 IAID . . . . . . . . . . . : 66597953
   DHCPv6 客户端 DUID  . . . . . . . : xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx
   DNS 服务器  . . . . . . . . . . . : 114.114.114.114
                                       xxx.xxx.xxx.xxx
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

查看自己的本地dns缓存:

.............................................. 
记录名称. . . . . . . : ditu.google.cn
    记录类型. . . . . . . : 1
    生存时间. . . . . . . : 68
    数据长度. . . . . . . : 4
    部分. . . . . . . . . : 答案
    A (主机)记录  . . . . : 203.208.41.79


    记录名称. . . . . . . : ditu.google.cn
    记录类型. . . . . . . : 1
    生存时间. . . . . . . : 68
    数据长度. . . . . . . : 4
    部分. . . . . . . . . : 答案
    A (主机)记录  . . . . : 203.208.41.87
..............................................

清除本地dns缓存:

C:\Users\Xxxxxxx>ipconfig/flushdns

Windows IP 配置

已成功刷新 DNS 解析缓存。

清除浏览器缓存:

我们在开发的时候,有时候会给某个域名绑hosts,用于本地开发测试,但是绑了之后,用谷歌浏览器访问会发现并没有生效,按F12会发现访问的还是线上的ip,说明浏览器是有该域名的dns缓存的,那么如何清除浏览器的dns缓存呢?

谷歌浏览器清除方法如下:打开浏览器,访问如下地址

chrome://net-internals/#dns

如下图:

点击 clear host cache,就清楚了浏览器的dns缓存,再访问绑hosts的域名,就会发现ip变啦

如果是firefox火狐浏览器的话,可以按照以下方式:

在地址栏中 about:config 并回车,可能会出现一个警告信息,直接点击按钮进入,会出现firefox的所有配置信息,通过搜索dns 进行过滤,可以看到一项名为 network.dnsCacheExpirationGracePeriod 项,它对应的值就是DNS缓存的时间,双击此项,会出现修改的提示框,填入 0 (不缓存DNS)即可。 

 

最后给大家推荐一篇讲解浏览器缓存吐槽的英文文章:

https://dyn.com/blog/web-browser-dns-caching-bad-thing/

  • 3
    点赞
  • 2
    评论
  • 14
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值