在 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 nscd
bash
echo "precedence ::ffff:0:0/96 100" | sudo tee -a /etc/gai.conf
根据你的系统配置选择对应方法即可。