DNS缓存时间怎么查看?

HCRM技术_小炮 DNS 2026-06-03 2 0

要查看 DNS 缓存时间,首先需要区分你指的是本机缓存的剩余有效时间(即这个域名在本地还缓存多久过期),还是域名在权威 DNS 服务器上设置的原始 TTL 值(即解析记录本身的存活时间),下面分场景说明。

一、查看本机缓存的剩余时间

dns缓存时间怎么查看

不同操作系统查看方式不同:

Windows

使用命令查看当前所有 DNS 缓存记录(包括剩余生存时间):

ipconfig /displaydns

输出中会包含生存时间(TTL) 字段,单位是,这个值会随着时间递减,表示该记录在本地还能存活多久。

如果你只想看特定域名(例如example.com):

powershell -Command "(Get-DnsClientCache -Entry example.com).TimeToLive"

(需以管理员身份运行 PowerShell)

macOS / Linux

dns缓存时间怎么查看

macOS:默认没有简单命令查看系统 DNS 缓存(macOS 使用系统级缓存,如mDNSResponder)。

可以尝试使用sudo killall -INFO mDNSResponder 查看日志,但不太直观,更常用的方式是直接通过nslookupdig 查询原始 TTL(见第二部分)。

Linux(使用 systemd-resolved 的发行版)

查看某个域名的缓存剩余时间:

  sudo resolvectl statistics example.com

或在较新版本中使用:

dns缓存时间怎么查看
  sudo busctl get-property org.freedesktop.resolve1 /org/freedesktop/resolve1 org.freedesktop.resolve1.Manager DnsStatistics

但多数 Linux 用户更习惯直接查权威 TTL。

3. 浏览器缓存(Chrome / Edge)

浏览器有独立 DNS 缓存,可通过以下方式查看:

- 在地址栏输入chrome://net-internals/#dnsedge://net-internals/#dns

- 查看域名列表,但不会直接显示剩余时间(只显示缓存状态)。

二、查看域名原始 TTL(权威服务器设置的时间)

无论哪种系统,都可以通过查询权威 DNS 服务器获得该域名的原始 TTL 值,这个值是固定不变的(除非域名所有者修改)。

方法1:使用 `nslookup`

nslookup -type=any example.com

输出中non-authoritative answer 部分的生存时间即为该记录的 TTL(单位秒)。

注意:如果是刚请求过的域名,本地可能会返回缓存中的剩余 TTL,而不是原始值。

方法2:使用 `dig`(推荐)

dig example.com

在应答部分第一行的3600 TTL(秒)。

;; ANSWER SECTION:
example.com.    3600    IN    A    93.184.216.34

这里的3600 表示该 A 记录的原始 TTL 是 3600 秒(1 小时)。

如果你想直接只获取 TTL 数值:

dig example.com +questions | grep -oP '\d+(?=\s+IN\s+A\b)'

或更简单:

dig example.com | awk '/^;; ANSWER SECTION:/ { getline; print $2 }'

方法3:使用 `whois`

某些 TLD 的 WHOIS 信息中也包含域名的 TTL(通常是DNSSEC 相关字段),但不常见,且不够直接。

场景 推荐命令/操作
想知道本机缓存还剩多久(Windows)ipconfig /displaydns
想知道域名原始 TTL(跨系统通用)dig example.com
快速在 Linux 上查看原始 TTLdig +short example.com 后,再查 TTL?不,+short 不显示 TTL,建议用dig example.com 看完整输出。
检查权威服务器的 TTL 是否已更改 清除本地缓存后(Windows:ipconfig /flushdns)再dig

>注意dig 命令在 Windows 上默认没有安装,可先安装 BIND 工具包或使用 Linux / macOS,如果无法使用dignslookup 是最简单的替代方案。

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

评论