如何查看计算机解析了哪些DNS?

HCRM技术_小炮 DNS 2026-06-27 117 0

要查看计算机当前缓存(已解析过)的 DNS 记录,可以根据操作系统使用以下方法:

Windows 系统

怎么查看计算机解析了那些dns

使用ipconfig /displaydns 命令查看所有缓存的 DNS 记录(包括域名、解析结果、TTL 等)。

步骤:

- 按Win + R,输入cmd 打开命令提示符。

- 输入命令:

  ipconfig /displaydns

- 你会看到类似下面的输出(列出了每个域名及其对应的 IP 地址):

怎么查看计算机解析了那些dns
  www.example.com
  ----------------------------------------
  Name:    www.example.com
  Addresses:  93.184.216.34
              2606:2800:220:1:248:1893:25c8:1946

小贴士:

- 若需清空缓存(强制重新解析),可使用:

  ipconfig /flushdns

macOS 系统

macOS 查看 DNS 缓存相对复杂,不同版本命令不同(推荐使用通用方法):

方法一:使用sudo dscacheutil -cachedump -entries Host(适用于较旧 macOS)

sudo dscacheutil -cachedump -entries Host

输出会显示所有缓存的 Host 记录(域名和 IP)。

怎么查看计算机解析了那些dns

方法二:使用log stream 实时监控 DNS 查询(适用于较新 macOS 如 Big Sur 以上)

sudo log stream --predicate 'subsystem == "com.apple.mDNSResponder"' --style syslog | grep "TXT\|A\|AAAA"

此命令会实时显示当前发生的 DNS 查询,而不是静态缓存列表。

- 若要查看已有缓存,更推荐使用第三方工具如dns-cache,或从/var/log/system.log 中提取历史记录(需先开启 DNS 日志)。

简单替代方案:

直接使用nslookup 或dig 查询某个域名,可以查看当前系统解析到的结果(但不会显示所有缓存记录)。

Linux 系统

Linux 的 DNS 缓存通常由本地的systemd-resolved、dnsmasq 或nscd 管理,查看方法取决于你使用的服务:

使用 systemd-resolved(常见于 Ubuntu 18.04+)

  sudo resolvectl statistics   # 查看缓存统计
  sudo resolvectl flush-caches # 清空缓存

systemd-resolved 没有直接导出所有缓存记录的命令,但可以通过查看日志或抓包获得查询记录。

使用dig 或nslookup 手动查询

查询单个域名时可以加+trace 看到解析路径,但并不是查看“所有已解析的记录”。

查看系统日志

Linux 系统通常会将 DNS 查询记录到/var/log/syslog 或/var/log/messages(需要预先配置日志级别)。

实时抓包(通用方法,适合所有系统)

如果你想知道计算机最近所有发出和接收的 DNS 查询(包括缓存未命中时),可以使用抓包工具:

Windows/macOS/Linux 通用: 安装Wireshark 或使用命令行工具tcpdump

  sudo tcpdump -i any port 53

运行后,每当计算机进行 DNS 查询时,你都会看到包含域名和响应 IP 的数据包。

系统 查看已解析 DNS 缓存的最佳命令 备注
Windowsipconfig /displaydns 简单直接,推荐新手使用
macOSsudo dscacheutil -cachedump -entries Host 仅部分版本可用,新版本推荐 log 或抓包
Linux 无统一命令,建议使用抓包 (tcpdump port 53) 查看实时 DNS 请求更直观

如果只是想确认某个特定域名是否被解析过,直接使用nslookup 域名 或ping 域名 即可查看当前系统的解析结果(即使不在缓存中,也会触发新的查询)。

文章摘自:https://idc.huochengrm.cn/dns/26965.html

评论