哪些 Windows 应用程序使用“DNS 客户端”服务?

Ant*_*249 3 networking windows dns windows-services

我正在考虑 Windows 10/11。

哪些 Windows 10 应用程序使用“DNS 客户端”服务?
我猜浏览器、邮件客户端等 Windows 应用程序都有自己的 DNS 客户端(也称为“存根解析器”),因此绕过 Windows DNS 客户端。它们都使用操作系统设置的 DNS 服务器(在网络适配器的属性中)。

另外:您可以检查的 Windows DNS 缓存ipconfig /displaydns仅存储由 Windows DNS 客户端解析的 DNS 记录,我对吗?这样每个 Windows 应用程序都会使用自己的缓存吗?

非常感谢任何澄清。

use*_*686 12

我猜浏览器、邮件客户端等 Windows 应用程序都有自己的 DNS 客户端(也称为“存根解析器”),因此绕过 Windows DNS 客户端

不,他们很少这样做。大多数情况下,只有特殊用途的应用程序(以及一些但肯定不是全部的网络浏览器)往往拥有自己的存根解析器。大多数只需要将主机名解析为地址的程序将使用操作系统解析器。

(通常需要解析非地址记录类型(例如 TXT)的程序可能有自己的存根解析器,例如 OpenSSH 如何使用 libldns 来查找 SSHFP 记录,同时仍然使用操作系统解析器来解析主机名。)

一般来说,如果程序可以成功使用非 DNS名称(例如 mDNS foo.local),那么它很可能使用操作系统解析程序。


Alb*_*bin 9

哪些 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 名称。

  • @Antonio23249 你对 DNS 的理解有点“偏离”。 Mo 应用程序使用 Windows DNS 缓存来存储“它的”DNS 查询。如果它自己的缓存中没有 DNS 地址(或者没有缓存),它会要求操作系统解析 DNS 名称。因此 Windows DNS 缓存属于操作系统而不是特定的应用程序。我希望这能让事情变得更清楚。 (当然都是通俗易懂的) (3认同)
  • 我相信 Chrome 和 Firefox 使用恰当命名的 [DoH](https://en.wikipedia.org/wiki/DNS_over_HTTPS) 协议,因为现在许多提供商出于商业或法律原因操纵 DNS,这减轻了非专家的困扰用户。 (3认同)
  • @Antonio23249,用外行的话来说:浏览器首先使用自己的DNS缓存,然后是“Windows DNS缓存”,然后尝试通过DNS服务器解析它......请参见这里(注意,我只是非常简单地浏览了它) https://think.unblog.ch/en/how-to-check-and-query-dns-caching/ (2认同)