在 Ubuntu 上查看和刷新 DNS 缓存的方法取决于系统使用的 DNS 解析服务。以下是不同场景下的操作指南:
systemd-resolved(Ubuntu 默认服务)bash
sudo systemd-resolve --statistics
或查看完整缓存记录:
bash
sudo journalctl -u systemd-resolved --no-pager | grep "Cache entry"
dnsmasq(常见于桌面版或手动安装)bash
sudo cat /var/cache/dnsmasq/dnsmasq_dnssec.log
nscd)bash
sudo strings /var/cache/nscd/hosts
systemd-resolved 缓存bash
sudo systemd-resolve --flush-caches
验证是否生效:
bash
sudo systemd-resolve --statistics | grep "Current Cache Size"
dnsmasq 缓存bash
sudo systemctl restart dnsmasq
nscd 缓存bash
sudo systemctl restart nscd
bash
sudo /etc/init.d/networking restart
或仅针对 NetworkManager:
bash
sudo nmcli networking off && sudo nmcli networking on
使用 dig 或 nslookup 测试域名解析,观察查询时间:
dig example.com | grep "Query time"
首次查询后再次执行,若 Query time 显著降低,则可能仍有缓存。
sudo 权限。bash
sudo systemctl status systemd-resolved dnsmasq nscdbash
echo "precedence ::ffff:0:0/96 100" | sudo tee -a /etc/gai.conf根据你的系统配置选择对应方法即可。