我的本地计算机是否用作 DNS 服务器?

Wis*_*kal 2 networking dns cache client-server

我想知道我的本地计算机是否用作 DNS 服务器。

我的意思是,当它尝试解析 Internet 地址时,它会首先查看它吗?例如,Windows 7 或 Internet 浏览器中是否有 DNS 缓存?或者它是否开始询问用作 DNS 缓存的路由器?

拜托,我想要一个完整的描述这是如何工作的,因为我很困惑 DNS 解析过程从哪里开始。

Faz*_*r87 8

您的机器将始终首先检查其本地缓存,以免向 DNS 服务器询问它已经知道答案的问题。您可以通过打开命令提示符并运行以下命令来查看这一点:

ipconfig /displaydns
Run Code Online (Sandbox Code Playgroud)

本地 DNS 缓存


如果你的机器无法从你的 DNS 缓存中得到答案,它会询问它的主 DNS 服务器,它会反过来检查它自己的数据库并给你答复。对于家庭用户,它很可能是您的路由器。您可以通过运行以下命令找到您的 DNS 服务器:

ipconfig /all
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


如果您的主 DNS 没有回复,您的计算机会询问它是辅助 DNS(如果您配置了),然后是第三个,然后是第四个……依此类推。

如果您的主 DNS 在线但没有答案,它会反过来询问它自己的主 DNS(对于大多数家庭用户来说可能是您的 ISP)。然后,您的 ISP 将检查其自己的 DNS 并向您的路由器提供答复,该路由器将为您提供服务。

如果您的 ISP DNS 没有记录,它会开始询问它是否配置了rootforwarders。这些是在 DNS 内部配置的位置列表,当 DNS 服务器本身不知道从哪里获得答案时使用这些位置。这些通常是其他 DNS 服务器或 Internet 根名称服务器。


进一步阅读:

DNS 查询的工作原理

域名系统 - Hill Associates

DNS 命名空间 - Google(特别是查看命名空间部分)


诊断 DNS 问题

一些应用程序存储自己的 DNS 缓存。Web 浏览器就是一个典型的例子。由于世界上有数十亿个应用程序,其中数百万个(可能)存储了 DNS 缓存——我不打算开始列出刷新它的可能方法。如果您怀疑某个地址正在被缓存 - 证明它(例如 - chrome 无法解析站点名称,但 Firefox 可以 - 这可能是 chrome 缓存问题),然后谷歌如何清除该特定应用程序的缓存。

NSLOOKUP www.google.com - 此命令(当输入命令提示符时)将为您提供 www.google.com 的 DNS 查找并返回其 IP: 在此处输入图片说明

IPCONFIG /flushdns - 此命令将刷新您的本地 DNS 缓存并帮助摆脱您在本地存储的任何不良结果在此处输入图片说明

最后,如果您的 ISP 的名称解析不佳或出现大量查找失败,您可以将大量备用 DNS 服务器添加到您的路由器或 PC 中,以更可靠地进行名称解析。虽然我使用公司的 DNS 服务器和 ISP 来处理我的大部分事情,但 google DNS 服务还是相当不错的。查看此链接了解更多信息

(最后,为糟糕的截图道歉 - 我在工作,不能在不清除大部分数据的情况下发布更好的截图 - 我在网上找到了这些)