查看 DNS 缓存的方法取决于操作系统和使用的 DNS 解析服务,以下是常见系统上的查看方法:
ipconfig /displaydns
这会显示所有缓存的 DNS 记录,包括域名、TTL(生存时间)和对应的 IP 地址。
ipconfig /flushdns
Linux 的 DNS 缓存取决于使用的 DNS 解析服务(如systemd-resolved、dnsmasq 或nscd)。
如果使用systemd-resolved(Ubuntu/Debian 常见)
1、查看缓存状态:
systemd-resolve --statistics
2、查看缓存记录(需要 root 权限):
sudo journalctl -u systemd-resolved --grep=cache
1、查看 dnsmasq 缓存:
sudo kill -SIGUSR1 $(pidof dnsmasq) # 触发日志输出 sudo tail -f /var/log/syslog | grep dnsmasq
如果使用nscd(名称服务缓存守护进程)
1、查看 nscd 缓存:
sudo nscd -g # 显示统计信息(包括缓存)
通用方法(检查本地 DNS 缓存工具)
- 使用dig 或nslookup 查询域名,但不会直接显示系统缓存。
若要验证是否命中缓存,可在dig 中查看查询时间(首次查询较慢,后续命中缓存会更快)。
1、macOS 使用mDNSResponder 管理 DNS 缓存,但无直接命令查看完整缓存。
2、可通过以下命令查看部分信息:
sudo killall -INFO mDNSResponder # 在控制台日志中查看缓存统计
然后打开控制台(Console) 应用,搜索mDNSResponder 查看日志。
sudo killall -HUP mDNSResponder # macOS 10.11+
(不同版本命令可能不同,如旧版用sudo dscacheutil -flushcache)
浏览器(如 Chrome、Firefox)也有独立的 DNS 缓存:
Chrome:访问chrome://net-internals/#dns 查看和清除。
Firefox:在about:config 中搜索network.dnsCacheExpiration 可设置缓存时间,但无直接查看界面。
家用路由器可能缓存 DNS 记录,通常需要登录路由器管理界面(如192.168.1.1)查找相关设置,或通过重启路由器清除。
- DNS 缓存有 TTL(生存时间),到期后自动清除。
- 部分系统(如 Linux)默认不启用全局 DNS 缓存,仅应用或服务(如浏览器)自行缓存。
- 如果遇到域名解析问题,清除缓存后重试可能解决。
根据你的系统选择对应方法即可,如果需要进一步排查 DNS 问题,可以使用dig(Linux/macOS)或nslookup(Windows)工具分析解析过程。
文章摘自:https://idc.huochengrm.cn/dns/21994.html
评论
止震轩
回复DNS缓存是提高网络访问速度的关键因素,但过度缓存可能导致解析错误,合理配置是关键。