我正在考虑 Windows 10/11。
哪些 Windows 10 应用使用“DNS 客户端”服务?
我猜想浏览器、邮件客户端等 Windows 应用都有自己的 DNS 客户端(也称为“存根解析器”),因此会绕过 Windows DNS 客户端。它们都使用操作系统设置的 DNS 服务器(在网络适配器的属性中)。
另外:我说得对吗?您可以检查的 Windows DNS 缓存ipconfig /displaydns
仅存储由 Windows DNS 客户端解析的 DNS 记录?这样每个 Windows 应用程序都会使用自己的缓存吗?
任何澄清均不胜感激。
答案1
我猜想浏览器、邮件客户端等 Windows 应用程序都有自己的 DNS 客户端(也称为“存根解析器”),因此可以绕过 Windows DNS 客户端
不,他们很少这样做。大多数情况下,只有特殊用途的应用程序(以及一些但肯定不是全部的 Web 浏览器)往往有自己的存根解析器。大多数只需要将主机名解析为地址的程序将改用操作系统解析器。
(通常,需要解析非地址记录类型(例如 TXT)的程序可能有自己的存根解析器,就像 OpenSSH 如何使用 libldns 来查找 SSHFP 记录,同时仍然使用 OS 解析器来查找主机名。)
一般来说,如果一个程序可以成功使用非DNS名称(例如 mDNS foo.local),那么它很可能使用了操作系统解析器。
答案2
哪些 Windows 10 应用程序使用“DNS 客户端”服务?
通俗地说:全有和无,DNS 客户端集成到 TCP/IP 堆栈中(在应用层内)。
原则上,所有尝试通过 DNS 访问 URL 的应用程序都将“涉及”DNS 客户端(尽管是通过 TCP/IP 堆栈发送请求来解析操作系统而间接涉及),因为它的主要目的是缓存 DNS 名称。但是,如果您停用它,DNS 解析仍将起作用,但 DNS 名称将通过 DNS 服务器解析,这比查找缓存需要更多时间。
是的,你说的对,浏览器、电子邮件客户端等将使用“DNS客户端”服务
我猜测 Windows 应用程序(例如浏览器、邮件客户端等)都有自己的 DNS 客户端(也称为“存根解析器”),因此可以绕过 Windows DNS 客户端。
不,您混淆了 DNS 缓存和 DNS 解析器。大多数应用程序使用操作系统(TCP/IP 堆栈)来解析 DNS 名称,因此它们(间接)使用 DNS 客户端。但如果他们有自己的缓存,并且 DNS 名称恰好存储在其缓存中,则不需要通过操作系统进行解析,因此 Windows DNS 客户端会被绕过。
另外:我说得对,您可以使用 ipconfig /displaydns 检查的 Windows DNS 缓存仅存储由 Windows DNS 客户端解析的 DNS 记录?
“是”ipconfig /displaydns
仅显示来自 DNS 客户端的缓存。
那么每个 Windows 应用程序都会使用自己的缓存吗?
不,并非所有应用程序都有自己的 DNS 缓存,因此并非所有应用程序都可以使用自己的缓存,但对于曾经这样做的应用程序来说,是的。
注意:还有第二个目的是向域服务器注册您计算机的 DNS 名称。