DNS是什么?
域名系统 (DNS) 将人类可读的域名 (例如,www.amazon.com) 转换为机器可读的 IP 地址 (例如,192.0.2.44)。
DNS解析流程
以dns解析www.example.com 为例。
- 从浏览器dns缓存中,获取dns解析结果,获取成功的话,直接返回。失败进入下一步
- 从本地dns缓存获取解析结果,失败的话进入下一步
- 向设置的dns服务器(一般为ISPInternet 服务提供商的dns服务器)发起dns解析请求(其中路由器缓存和运营商dns缓存需要考虑),失败的话进入下一步
- ISP 的 DNS 解析程序将 www.example.com 的请求转发到 DNS 根名称服务器。
- ISP 的 DNS 解析程序再次转发 www.example.com 的请求,这次转发到 .com 域的一个 TLD 名称服务器。.com 域的名称服务器使用与 example.com 域相关的四个 Amazon Route 53 名称服务器的名称来响应该请求。
- ISP 的 DNS 解析程序选择一个 Amazon Route 53 名称服务器,并将 www.example.com 的请求转发到该名称服务器。
- Amazon Route 53 名称服务器在 example.com 托管区域中查找 www.example.com 记录,获得相关值,例如,Web 服务器的 IP 地址 (192.0.2.44),并将 IP 地址返回至 DNS 解析程序。
- ISP 的 DNS 解析程序最终获得用户需要的 IP 地址。解析程序将此值返回至 Web 浏览器。DNS 解析程序还会将 example.com 的 IP 地址缓存 (存储) 您指定的时长,以便它能够在下次有人浏览 example.com 时更快地作出响应。有关更多信息,请参阅存活期 (TTL)。
- Web 浏览器将 www.example.com 的请求发送到从 DNS 解析程序中获得的 IP 地址。这是您的内容所处位置,例如,在 Amazon EC2 实例中或配置为网站终端节点的 Amazon S3 存储桶中运行的 Web 服务器。
- 192.0.2.44 上的 Web 服务器或其他资源将 www.example.com 的 Web 页面返回到 Web 浏览器,且 Web 浏览器会显示该页面。
修改dns解析
hosts文件保存了本地的dns解析映射关系,通过修改hosts文件,可以改变请求时的域名解析。
windows修改hosts
文件路径:C:/Windows/System32/drivers/etc/hosts
在文件后面添加域名映射关系,一行一条数据,ip在前,域名在后,多个域名可以解析成同一ip。
案例:
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
10.4.112.202 win-op1a7tfrvi1
修改保存之后,本机访问win-op1a7tfrvi1域名的请求,都会解析为10.4.112.202。
Linux修改hosts
文件路径:/etc/hosts
修改方式与windows一致。
案例:
验证:
清理DNS缓存
windows清理缓存
查看缓存列表
命令:ipconfig /displaydns
作用:查看本机当前dns缓存
附图:
清理缓存
命令:ipconfig /flushdns
作用:删除本机dns缓存
附图:
chrome清理dns缓存
浏览器访问chrome://net-internals/#dns,可以看到dns选项中有clear host cache选项,点击即可。
Linux清理缓存
linux中的缓存管理工具有多种,主要包括nscd、dnsmasp、rndc等,只需要有一个管理工具即可,这里记录nscd清理缓存的方法。
命令:nscd -i hosts
作用:清理本机dns缓存
常见问题:
解决方法:
# 安装
yum install nscd -y
# 启动服务
systemctl start nscd
# 配置自启动
systemctl enable nscd