怎样在 Linux 上审查和刷新 DNS 缓存
通过刷新外地 dns 缓存,您可以解决 http 过失并掩护自己免受 dns 诱骗的影响。以下是在 linux 上执行此操作的要领。
当您使用域名会见网站时,您的系统会向 DNS 效劳器发送请求以获取该域的 IP 地点。此域 IP 地点对生涯在 DNS 缓存中供以后使用,因此您不必每次都向 DNS 效劳器发送请求以建设毗连。
但有时,外地 DNS 缓存会损坏并导致 HTTP 过失。值得庆幸的是,在 Linux 操作系统中刷新和重修 DNS 缓存很是容易。这是怎样做到的。
为什么要在 Linux 上刷新 DNS 缓存?
您可能想要重修存储在系统上的 DNS 缓存的缘故原由有多种。若是您的DNS纪录过时了,您可能想要从DNS效劳重视新获取它。另外,若是您担心系统受到威胁了,您可能需要确保DNS缓存未被改动,也被称为DNS诱骗。
当您刷新 DNS 缓存时,系统必需再次 ping DNS 效劳器并从中获取新的域 IP 地点纪录,从而在此历程中删除任何过时或受损的数据。
怎样在 Linux 上审查外地 DNS 缓存
在systemd之前,大大都Linux刊行版都没有系统规模的DNS缓存,除非像dnsmasq或nscd这样的程序是手动设置的。systemd 附带 systemd-solved,这是一项将域名剖析为 IP 地点并缓存 DNS 条目的效劳。
以下各节将指导您怎样审查由 systemd 剖析、nscd 和 dnsmasq 天生的 DNS 缓存内容,以便您在决议刷新缓存数据之前相识缓存的数据。
审查系统剖析的 DNS 缓存
要审查 systemd 剖析的缓存纪录,您需要先暂时终止效劳,然后将其日志导出到文件中。
首先发送 SIGUSR1 信号以终止 systemd 剖析的效劳:
linuxmi@linuxmi ~/www.linuxmi.com % sudo killall -USR1 systemd-resolved[sudo] linuxmi 的密码:
登录后复制
使用 journalctl 下令和标准输出运算符将输出生涯到文本文件:
linuxmi@linuxmi ~/www.linuxmi.com % sudo journalctl -u systemd-resolved > ~/cache.txtlinuxmi@linuxmi ~/www.linuxmi.com
登录后复制
然后,您可以使用 Vim 等文本编辑器审查文件的内容:
在文件中,搜索“CACHE:”,要领是按 Escape,键入“/CACHE:”,然后按 Enter 键。在“CACHE:”下方列出的所有 DNS 纪录都包括在外地 DNS 缓存中。若您在使用 Vim,请按下 n 键以跳转至下一组 DNS 条目。
审查 nscd 的外地 DNS 缓存
要审查 nscd 天生的外地缓存,您需要使用 string 下令读取 nscd 主机数据库的内容。
在基于 Debian 和 Ubuntu 的刊行版上,此文件位于 /var/cache/nscd/hosts。运行以下下令以审查文件:
linuxmi@linuxmi ~/www.linuxmi.com % sudo strings /var/cache/nscd/hosts | uniq
登录后复制
要审查有关 nscd DNS 高速缓存的一样平常统计信息,请使用 -g 标记:
linuxmi@linuxmi ~/www.linuxmi.com % sudo nscd -g
登录后复制
显示由 dnsmasq 天生的 DNS 缓存
获取确切的纪录并禁止易,由于 dnsmasq 在内存中存储 DNS 缓存。您可以发送终止信号给 dnsmasq 并纪录其输出,以获取处理的 DNS 盘问数目。
为此,首先,使用 systemctl 下令确保 dnsmasq 已启动并正在运行:
linuxmi@linuxmi ~/www.linuxmi.com % sudo systemctl status dnsmasq
登录后复制
若是状态显示“运动 Active”,请运行以下下令以终止该效劳:
linuxmi@linuxmi ~/www.linuxmi.com % sudo pkill -USR1 dnsmasq
登录后复制
使用 journalctl 下令,提取 dnsmasq 日志并将它们生涯到文本文件中:
linuxmi@linuxmi ~/www.linuxmi.com % sudo journalctl -u dnsmasq > ~/cache.txt
登录后复制
最后,使用文件审查适用程序(如 cat 或更少)审查文件的内容:
linuxmi@linuxmi ~/www.linuxmi.com % cat ~/cache.txt
登录后复制
怎样在 Linux 上刷新 DNS 缓存
刷新 DNS 缓存意味着从盘算机中删除缓存的 DNS 纪录。这将迫使它向DNS效劳器发送请求,以获取新的DNS条目。
以下是在 Linux 上刷新 DNS 缓存的要领:
使用 systemd 剖析
您可以使用 resolvectl 下令刷新 systemd 剖析存储的 DNS 缓存:
linuxmi@linuxmi ~/www.linuxmi.com % sudo resolvectl flush-caches
登录后复制
若是您运行的是 Ubuntu 17.04 或 18.04,请使用 systemd 剖析的下令刷新缓存:
sudo systemd-resolved --flush-caches
登录后复制
在 Linux 上刷新 nscd DNS 缓存
删除 nscd 的 DNS 缓存的最便捷要领是重新启动效劳。您可以通过运行以下下令来执行此操作:
linuxmi@linuxmi ~/www.linuxmi.com % sudo /etc/init.d/nscd restart
登录后复制
若是这不起作用,首先,检查存储在PC上的外地缓存是否长期。您可以使用 -g 标记举行验证:
sudo nscd -g
登录后复制
若是是这种情形,请使用带有 nscd 下令的 –i 标记来扫除纪录(i 代表 invalidate):
linuxmi@linuxmi ~/www.linuxmi.com % sudo nscd -i hosts
登录后复制
删除 dnsmasq DNS 缓存
刷新 dnsmasq 天生的 DNS 缓存很简朴。由于缓存存储在内存中,因此重新启动效劳会删除所有存储的条目。
要重新启动 dnsmasq,请运行以下 systemctl 下令:
sudo systemctl restart dnsmasq
登录后复制
或者,发出以下下令:
service dnsmasq restart
登录后复制
若是泛起提醒,请输入治理员密码。现在要重新启动 dnsmasq,所有缓存中保存的 DNS 条目将被扫除。
建议刷新 DNS 缓存后,检查外地缓存条目以确认数据已经乐成删除。您可以使用 Linux 下令之一的 dig 来举行网络故障扫除,并审查输出中的“盘问时间”值。若是凌驾 0 毫秒,则说明缓存已经乐成扫除(若为 0 毫秒,则体现域纪录仍保存于缓存中)。
dig google.com
登录后复制
扫除谷歌浏览器的DNS缓存
您经常使用的 Web 浏览器也会缓存 DNS 纪录。输入 URL 时,系统会在外地浏览器缓存中搜索缓存条目。若是未找到,它将检查外地系统缓存中的纪录。扫除 Web 浏览器的 DNS 缓存很是主要,由于它优先于系统规模的缓存。
为了演示,让我们刷新谷歌浏览器中的DNS缓存。在其他浏览器上也有一些要领可以做到这一点,以是最好 Google 一下怎样使用你使用的浏览器做到这一点。
首先,在URL栏中键入“chrome://net-internals/#dns”并按Enter键:
点击“扫除主机缓存”按钮来扫除谷歌浏览器中存储的DNS条目。
Linux是学习网络的最佳操作系统
Linux 乍一看可能看起来很重大,但若是你花一些时间来学习它是怎样事情的,你很快就会意识到它很棒,甚至可能比 Windows 或 macOS 更好。
大大都在线效劳器都运行 Linux,若是您想学习网络或想知道盘算机通常怎样事情,这也是 Linux 理想选择的缘故原由之一。
以上就是怎样在 Linux 上审查和刷新 DNS 缓存的详细内容,更多请关注本网内其它相关文章!