Linux系统怎么查看DNS缓存?

HCRM技术_小炮 DNS 2025-06-01 1040 3

DNS缓存能加速域名解析,提升网络访问效率,但遇到网站无法访问或解析异常时,查看DNS缓存是排查问题的关键一步,本文将详解Linux系统下查看DNS缓存的多种方法,涵盖不同发行版和工具,助你快速定位问题。

linux系统怎么查看dns缓存

一、通过 systemd-resolved 查看(适用于Ubuntu/CentOS 8+)

适用场景:主流现代Linux发行版(如Ubuntu 20.04+、Fedora、CentOS 8+)。

1、确保服务已启用:

   sudo systemctl is-active systemd-resolved  # 检查服务状态

2、查看完整DNS缓存记录:

   sudo resolvectl statistics  # 显示缓存统计与记录

3、提取缓存中的具体域名(如example.com):

linux系统怎么查看dns缓存
   sudo resolvectl query example.com  # 查询缓存解析结果

输出示例

   example.com: 192.0.2.1               -- 缓存命中(Cache Hit)

二、使用 dnsmasq 工具(常见于路由器或轻量级配置)

适用场景:OpenWrt、部分Debian/Ubuntu桌面环境。

1、确认dnsmasq运行状态:

   sudo systemctl status dnsmasq

2、发送SIGUSR1信号触发缓存日志输出:

linux系统怎么查看dns缓存
   sudo kill -SIGUSR1 $(pgrep dnsmasq)  # 发送信号
   sudo journalctl -u dnsmasq -n 50      # 查看最近50条日志(含缓存)

日志关键字段

   cached example.com is 192.0.2.1

三、通用方法:通过dignslookup 间接验证

原理:若域名解析速度极快(毫秒级),则可能命中缓存。

1、使用dig测试响应时间:

   dig example.com | grep "Query time"  # 关注查询耗时

结果分析

Query time: 0 msec → 可能来自缓存

Query time: 30 msec → 未走缓存

2、通过nslookup多次查询对比:

   nslookup example.com  # 首次查询
   nslookup example.com  # 二次查询(若瞬间返回则可能缓存生效)

四、其他工具与技巧

1、nscd(Name Service Cache Daemon)

   sudo nscd -g | grep "dns cache"  # 查看缓存统计(需提前安装nscd)

2、清除缓存(故障排查必用)

   sudo systemd-resolve --flush-caches  # systemd-resolved清理
   sudo pkill dnsmasq                   # dnsmasq重启清空

注意事项

权限要求:大部分命令需sudo权限。

服务差异:不同发行版默认DNS服务不同,优先确认系统使用的服务(systemd-resolved/dnsmasq)。

缓存时效:DNS记录有TTL限制,超时后自动失效。

个人观点

作为站长,我强烈建议掌握DNS缓存查看技能——它不仅是网络故障排查的“黄金钥匙”,更是优化网站访问体验的底层保障,对于高频访问的站点,合理配置DNS缓存能显著降低解析延迟,若遇到解析异常,先清缓存再测试,往往能事半功倍,保持对系统工具的熟悉度,关键时刻能避免不必要的停机时间!

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

评论

精彩评论
  • 2025-06-01 05:45:17

    在Linux中,可以通过`cat /var/cache/bind/db.`查看DNS缓存。

  • 2025-06-02 01:10:43

    在Linux系统中,可以通过命令`cat /etc/resolv.conf`查看DNS缓存。

  • 2025-06-08 03:24:01

    在Linux系统中,可以使用`systemd-resolved DNS缓存查询命令 `nscd -c 或使用`/etc/resolv.db 文件查看DNS解析记录来检查系统的域名系统(Domain Name System)的本地主机名映射信息。