互联网
DNS
域名解析
IP 地址
DNS 解析

域名访问是如何找到正确的DNS并访问主机IP的?

比如我把我的域名http://xx.com 选择了某厂商的A服务器(DNS)或者另一个厂商的B服务器(DNS),那么我的域名解析会有怎样的不同? 下面…
关注者
1
被浏览
11,965

2 个回答

## 首先域名是分层的:

互联网中的域名是有结构和规划的:

* 根域(`.`表示根域,根域名的服务器只用13台)

* 顶级域(com, edu, gov, org, cn, uk等等,一般为组织域和国家地区域,由域名分配组织ISO决定)

* 二级域(Microsoft, zhihu, douban,google等等,是自己申请的(需要购买))

* 三级域(www, NEWS等,三级域名是申请完二级域名后自己规定的)

`三级域名.二级域名.顶级域名`组成完整域名空间,此域名全球唯一。

## 下面是查询过程,以" zhihu.com"为例:

1. 当你在浏览器输入域名" zhihu.com"之后,浏览器会向本地DNS发送域名查询请求,本地DNS如果有对应的缓存则会找到对应IP并将IP返回,如果没有则会向根DNS服务器发送查询。

2. 根DNS服务器知道所有的顶级域(其中包括`com`)的DNS服务器的IP,会把域名对应的顶级域的DNS服务器IP返回,本地DNS服务器继续向顶级域的DNS服务器(本例中是`com`)发送查询。

3. 顶级域DNS服务器知道所有的二级域(其中包括`zhihu`)的DNS服务器的IP,会返回二级域DNS服务器IP,本地DNS服务器继续向二级域DNS服务器发送查询。

4. 二级域DNS服务器知道所有的三级域(其中包括`www`)的主机对应的IP,它会返回正确的Web服务器IP给本地DNS服务器。

5. 本地DNS服务器告知你Web服务器IP,之后你的电脑会通过IP与路由器找到Web服务器。

购买网络主机时,网络主机的服务公司会告诉你他们的DNS服务器地址,而你注册域名后,需要告诉你的注册商你的DNS服务器是什么(即互联网上DNS服务器的IP或主机名)。

之后你注册的域名就可以使用了,你的本地DNS服务器可能不知到这个域名,但请求会传到根DNS服务器,根DNS服务器知道谁知道所有.com映射的主机名和IP,这是注册商帮你做的,这样信息就会在互联网上散播并缓存。

编辑于 2016-06-11 10:28

讲下自己的理解

1.0.1 先解释下是如何找到正确的DNS的,比如我本机想访问 wangsu.com,流程是先找本机的DNS映射,没有找到再找根域DNS服务器,顶级域,二级域,三级域找出 wangsu.com的IP。

图片引用自: zhuanlan.zhihu.com/p/38

1.0.2 再拆细点讲下什么DNS?是怎么找本机DNS上映射的?

DNS即Domain领域 name名称 system系统,即为域名 系统。其实本质上就是服务器IP和域名的一个映射,可以简单理解为如下的对应关系。

当我们访问 baidu.com的时候,其实是要输入百度IP才能访问的,可谁记得住这么一串东西,所以就得有个DNS服务器帮我们记着,当我们输入 baidu.com的时候,每次电脑都去它那里拿,找到原来是182.61.200.7这个。

boxer.baidu.com/scheme? (二维码自动识别)

本地DNS映射其实就是上面的HOST文件,当我们请求 baidu.com的时候,它就先去找本地的HOST看有没有百度的映射,我先ping了百度,把182.61.200.7写进了HOST,这个时候电脑就不会请求其他DNS服务器了,直接就拿到IP请求服务器了,这个过程就是做了DNS的工作。

所以也可以将映射改成127.0.01.1本机回环地址,怎么都是请求不到的。

1.0.3 而另一个同学回答最后一段不是很理解, 为什么网络主机的服务公司会告诉你他们的DNS服务器地址的,说下把我VPS的IP解析到自己的域名是怎么样的。也只是拿到网络主机提供商提供的VPS IP, 把域名和IP地址的对应关系写到DNS服务器上,域名解析这步是域名的提供商帮我做的,Save之后就开始解析,我把三个三级域名都写到了一个IP。

1.0.4 即当我访问三个中任意一个域名的时候,都能从域名DNS服务器中找到该域名的IP,从而打开页面。

编辑于 2020-04-17 00:03