本文介绍在Linux操作系统上刷新DNS缓存的方法:Systemd Resolved、DNS Masq、NSCD刷新DNS介绍。可参考在Ubuntu 18.04下刷新/删除DNS缓存,附删除浏览器DNS缓存的方法。
前言 计算机将你访问的每个网站的记录保存在“DNS缓存”中,此缓存的目的是节省用户尝试访问域时的时间,系统无需每次手动查找,总体而言,DNS缓存使你的Internet使用速度更快,这就是为什么从macOS到Windows到Linux的几乎所有操作系统都可以实现这一点。 尽管如此,由于DNS缓存很有用,有时会出现问题,例如查看旧网站而不是新更新的网站,无法连接到远程服务器等,在Linux上解决这些类型错误的好方法计算机是刷新Linux上的DNS缓存,当你刷新DNS缓存时,它将刷新DNS数据库并清除用户遇到的很多问题。
刷新DNS-Systemd Resolved 大多数Linux用户正在运行一个内置Systemd init系统的操作系统,每个人都知道有一件事:Systemd使得操作系统级别的深度调整和维护比以往更加容易,清除DNS缓存时尤其如此。 Systemd以称为“systemd resolved”的方式处理DNS缓存,它是一个标准实用程序,它发现它是大多数Linux操作系统的一种方式,要确定你的操作系统是否使用Systemd Resolved来处理系统上的DNS和DNS缓存,请通过按键盘上的Ctrl+Alt+T或Ctrl+Shift+T启动终端窗口,之后,在systemd-resolved.service文件上运行systemctl status命令: systemctl status systemd-resolved.service
在终端窗口中查看Systemd Resolved的打印输出,找到“Active”后看“Active”部分,并确保它旁边有“active(running)”,如果是这样,你的Linux系统正在使用它来管理它的DNS。 要清除Systemd Resolved的DNS缓存,你需要使用Systemd Resolved的一个内置功能,具体来说,flush caches命令,它会立即清除DNS并让你重新启动并运行: sudo systemd-resolved --flush-caches 或者,如果你不能使用sudo,请执行以下操作: su - systemd-resolved --flushcaches 一旦使用了flushcaches命令,系统上的DNS缓存就应该被充分刷新,但是,如果在运行此命令后仍然遇到一些问题,请使用systemctl restart命令: sudo systemctl restart systemd-resolved.service 不能用sudo?在尝试使用systemd重新启动服务之前,使用su以root身份登录。 su - systemctl restart systemd-resolved.service 当Systemd-Resolved完成重启时,应该修复所有DNS问题。
刷新DNS-DNS Masq DNSMasq是许多操作系统使用的Linux平台的另一种流行的DNS解决方案,与Systemd-Resolved工具非常相似,用户可以使用systemctl命令与其进行交互,要确定你的操作系统是否使用DNSMasq工具来管理DNS,请运行status命令: systemctl status dnsmasq.service
阅读systemd在屏幕上提供的状态打印输出,前往读数的“Active”,扫描并查找“active (running)”以确认服务处于活动状态,如果是这种情况,则可以使用systemctl restart命令立即清除DNSMasq的DNS缓存,在终端中,输入以下命令: sudo systemctl restart dnsmasq.service 或者,对于那些无法使用带有sudo的systemd命令的用户,请尝试以root身份登录,然后再尝试重新启动: su - systemctl restart dnsmasq.service
刷新DNS-NSCD NSCD是大多数基于RedHat的Linux操作系统的首选DNS缓存系统,比如OpenSUSE Linux、CentOS就用此方式来刷新DNS,参考Linux下开启缓存服务NSCD一文。 注意:虽然Fedora Linux基于RedHat,但默认情况下它不存储DNS缓存。 要确定你的Linux操作系统是否使用NSCD,你需要使用status命令,因为它是一个systemd服务: systemctl status nscd.service
在NSCD服务上运行status命令将为你提供有关它的大量详细信息,浏览并找到“Active”,如果你的系统正在使用它,你会看到一些绿色文本显示“active (running)”。 使用NSCD刷新DNS缓存与使用systemd的每个其他缓存系统非常相似,用户需要做的就是运行systemctl restart命令,它将重新加载服务并自动清除DNS缓存,这将解决你可能遇到的任何DNS问题: sudo systemctl restart nscd.service 或者,如果你的Linux操作系统禁用使用sudo运行systemctl命令,则可以首先使用su登录Root帐户来重新启动服务: su - systemctl restart nscd.service
相关主题 |