如何在Ubuntu上清除DNS缓存
时间:2020-02-23 14:44:56 来源:igfitidea点击:
每当我们尝试访问时,都会执行DNS名称解析查询来解析其IP地址。
操作系统会缓存此数据,以避免每次都与名称服务器联系。
为什么要清除DNS缓存?
有时,的IP地址在移至另一台服务器时会更改。
在这种情况下,如果我们点击了缓存的IP地址,则该将无法正常运行。
DNS条目具有与之关联的"生存时间(TTL)"值,该值告诉操作系统名称解析服务何时使DNS缓存无效。
但是,如果您想在TTL过期之前访问新的IP地址,唯一的解决方案是刷新DNS缓存。
Ubuntu服务进行DNS名称解析
systemd-resolved.service用于运行DNS查询和维护DNS缓存。
我们可以使用以下命令来检查其状态。
# sudo systemctl status systemd-resolved
我们可以运行以下命令来检查DNS缓存统计信息。
# sudo systemd-resolve --statistics
服务和命令名称略有不同。
命令名称中没有最后一个字符" d"。
如何在Ubuntu上清除DNS缓存?
我们可以运行以下命令来清除Ubuntu上的DNS缓存。
# sudo systemd-resolve --flush-caches
然后,再次检查统计信息以确认"当前缓存大小"为0。
重新启动systemd解析的服务以清除所有DNS缓存统计信息
DNS刷新命令不会清除缓存的命中和未命中统计信息。
如果要清除所有缓存统计信息,则必须重新启动systemd解析的服务。
# sudo systemctl restart systemd-resolved