一、DNS域名解析过程
我们都清楚互联网通过URL(统一资源标识符)来标识和定位资源,而我们在浏览器中输入URL访问资源时URL中的域名需要首先解析成IP地址才能与远程服务器建立连接,这个过程就是我们要讲的DNS域名解析过程。
下图是DNS域名解析的主要过程
当一个用户在浏览器中输入一个URL地址,DNS域名解析会经历以下基本过程:
1)首先浏览器会检查缓存中是否存在这个域名对应的IP解析结果,如果缓存中有那么域名解析结束,直接返回缓存中域名对应的IP地址。浏览器中缓存的域名缓存数量和缓存的时间均有限制,域名被缓存的时间限制可以通过TTL进行设置,chrome浏览器中查看域名解析结果缓存可以在浏览器地址栏输入chrome://net-internals/#dns;
2)第2步,若用户浏览器缓存中不存在域名对应的DNS解析结果,那么浏览器会查找操作系统缓存中是否存在这个域名对应的DNS解析结果,如果有直接返回域名对应的IP地址。window操作系统中域名和IP地址映射数据保存在C://Windows/System32/drivers/etc/hosts文件中,Linux对应的配置文件时/etc/hosts;如果你在这个文件中配置了一个域名对应的IP地址,那么操作系统会把文件中的配置信息作为域名解析结果缓存起来,在进行域名解析时浏览器会优先使用这个IP地址;
3)如果上述两步在本机的浏览器和操作系统缓存中都不存在对应域名的DNS解析结果,这时候会进入第3步,浏览器会正式向Local DNS Server(本地域名服务器,也就是在本机中配置的DNS服务器)发起域名解析请求,如果本地域名服务器中缓存了该域名的DNS解析结果那么直接返回域名对应的IP地址。本地对应的Local DNS Server在Windows操作系统可以通过ipconfig查询,Linux可以通过cat /etc/resolv.conf查询。
4)第4步,如果Local DNS Server没有缓存该域名的DNS解析结果,就直接向Root DNS Server(根域名服务器)发起域名解析请求;
5)第5步,Root DNS Server根据解析的域名返回所查询域的gTLD Server(主域名服务器)地址给Local DNS Server,主域名服务器也就是国际顶级的域名服务器,如.com、.cn等;
6)第6步,Local DNS Server(本地域名服务器)向返回的gTLD Server(主域名服务器)发起域名解析请求;
7)第7步,gTLD(主域名服务器)接受请求查找并返回域名对应的Name Server(域名服务器)的地址。Name Server通常就是你注册的域名服务器,例如你在某个域名提供商申请域名,该域名的域名解析就由就是这个域名提供商的服务器完成;
8)第8步,Name Server(域名服务器)查询存储的域名IP地址映射关系表;
9)第9步,将查询结果(包含该域名对应的IP地址和TTL值)返回给Local DNS Server,Local DNS Server会缓存该域名和IP的映射关系,缓存失效时间由TTL控制;
10)第10步,把解析结果返回给本地主机,本地主机根据TTL缓存到本地操作系统和浏览器缓存中,DNS域名解析过程到此结束。
二、清除本机缓存的域名解析结果
1 - 浏览器DNS缓存清除
chrome浏览器
在URL地址栏输入chrome://net-internals/#dns,在页面上找Host Resolver Cache旁边的"Clear host cache"按钮删除浏览器的DNS缓存
2 - 清除本机操作系统缓存的域名
方法如下:
1)Window下在cmd执行命令ipconfig /flushdns刷新缓存
2)Linux下执行命令sudo /etc/init.d/nscd restart
3)主机重启