云网牛站
所在位置:首页 > Linux教程 > 刷新Linux上DNS缓存的三种方法:Systemd Resolved、DNS Masq、NSCD

刷新Linux上DNS缓存的三种方法:Systemd Resolved、DNS Masq、NSCD

2019-05-24 22:32:50作者:林顾鑫稿源:云网牛站

本文介绍在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

刷新Linux上DNS缓存的三种方法:Systemd Resolved、DNS Masq、NSCD

在终端窗口中查看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

参考:配置Fedora系统以使用sudo的方法

一旦使用了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

刷新Linux上DNS缓存的三种方法:Systemd Resolved、DNS Masq、NSCD

阅读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

刷新Linux上DNS缓存的三种方法:Systemd Resolved、DNS Masq、NSCD

在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

 

相关主题

在Ubuntu 18.04 LTS系统上安装和配置Dnsmasq的步骤

精选文章
热门文章