在 Ubuntu 上刷新 DNS 缓存在 Ubuntu 上刷新 DNS 缓存在 Ubuntu 上刷新 DNS 缓存在 Ubuntu 上刷新 DNS 缓存
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 Ubuntu 上刷新 DNS 缓存

发表 admin at 2025年2月28日
类别
  • 未分类
标签

DNS 的完整形式是域名系统。它用于将域名转换为IP地址。这看起来很简单,但没有它,互联网就不会是今天的样子。您能想象记住数千个 IP 地址吗?您能想象一个没有 google.com 或 yourwebsite.com 的世界吗? DNS 使我们对互联网的一切都变得非常容易。

本文是关于在 Ubuntu 上刷新 DNS 的。但要理解为什么有必要,首先您必须了解 DNS 的工作原理以及一些有关 DNS 缓存的知识。

DNS 的工作原理:

简单地说,DNS 可以被认为是一个域名和 IP 地址表,如下所示:

linux教程

1.2.3.4

support.linux教程

3.4.5.7

google.com

8.9.5.4

www.google.com

8.9.5.4

请注意,此表中的数据均不真实。这只是为了演示的目的。那么让我们回到最初的话题。

当您访问 linux教程 时,浏览器会向 DNS 服务器(在您的计算机上设置)询问一些问题。

你的电脑:嘿,你知道linux教程吗?

DNS 服务器: 不,我不知道。但 DNS 服务器 4.4.4.4 可能知道这一点。

您的计算机: 联系 DNS 服务器 4.4.4.4 并询问:“嘿,你知道 linux教程 吗? ”

DNS 服务器 2: 是的,我愿意。我能为你做什么?

您的计算机:我需要linux教程的IP地址。我可以拥有吗?

DNS 服务器 2:不用担心,这就是我在这里的原因。这是 linux教程 1.2.3.4 的 IP 地址。

你的电脑:你是一个救星。谢谢。

现在您的计算机连接到 1.2.3.4 并且您最喜欢的网站 linux教程 显示出来。那真的很难,不是吗?

下次您访问 linux教程 时,同样的事情会再次发生。

DNS 缓存:

在前面的部分中,您了解了如何将域名解析为 IP 地址。通过 DNS 服务器的这一过程需要一段时间,在完成并且域名可以解析为 IP 地址之前,您将无法连接到互联网上的任何网站或服务器。

为了解决这个问题,使用了DNS缓存。在这里,当您第一次尝试将域名解析为 IP 地址时,需要的时间会稍长一些。但是一旦域名解析完毕,IP地址就会存储在您自己的计算机中。这样,下次您需要解析相同的域名时,就不会像第一次那样花费时间了。

DNS 缓存问题:

DNS 缓存很好。为什么 DNS 缓存有问题?互联网世界瞬息万变,DNS 信息也在不断变化。即使在我写这篇文章的时候,它也可能已经改变了几次。

那么,当 DNS 信息发生变化并且我们使用的是自己计算机上缓存的 DNS 信息时,会发生什么情况呢?嗯,这就是问题所在。在这种情况下,我们将使用旧的 DNS 信息。我们可能会遇到连接问题、错误重定向问题和许多其他问题。

为了解决这个问题,我们必须删除缓存(也称为DNS刷新)并重建它。这就是本文的主题。

检查 DNS 缓存是否启用:

您可以在 Ubuntu 上轻松检查 DNS 缓存是否启用。您需要在计算机上安装 nslookup 或 dig 实用程序才能正常工作。

默认情况下,nslookup 或 dig 命令在您的 Ubuntu 计算机上可能不可用。但您可以轻松地从 Ubuntu 的官方软件包存储库安装它。

首先,使用以下命令更新 APT 软件包存储库缓存:

$ sudo apt update

应更新 APT 包存储库缓存。

现在使用以下命令安装 nslookup 和 dig:

$ sudo apt install dnsutils

现在按y,然后按继续。

nslookup 和 dig 命令现在应该可用。

现在要测试是否启用缓存,请运行以下命令:

$ nslookup google.com

可以看到,用于解析域名的DNS服务器是127.0.0.53,这是一个环回IP地址。这样就启用了 DNS 缓存。如果禁用它,则 DNS 服务器应该是 127.0.0.X 以外的任何服务器。

您可以使用 dig 命令检查相同的内容,如下所示:

$ dig google.com

正如您所看到的,环回 IP 地址也用作此处的 DNS 服务器地址。因此,DNS 缓存已启用。

在 Ubuntu 18.04 LTS 上刷新 DNS:

Ubuntu 18.04 LTS 默认使用本地 DNS 服务器并缓存 DNS 查询。 Ubuntu 18.04 LTS 使用 systemd 来实现此目的。

您可以运行以下命令来检查 Ubuntu 18.04 LTS 上缓存了多少 DNS 条目以及许多其他信息:

$ sudo systemd-resolve --statistics

正如您所看到的,有关 DNS 缓存的信息列在下面屏幕截图的标记部分中。

要刷新 Ubuntu 18.04 LTS 上的 DNS 缓存,请运行以下命令:

$ sudo systemd-resolve --flush-caches

您还可以重新启动 systemd-resolved 服务来刷新 Ubuntu 18.04 LTS 上的 DNS 缓存。

要重新启动 systemd-resolved 服务,请运行以下命令:

$ sudo systemctl restart systemd-resolved

如您所见,缓存已被清除。

$ sudo systemd-resolve --statistics

在 Ubuntu 16.04 上刷新 DNS 缓存:

在 Ubuntu 16.04 LTS 上,默认情况下不启用 DNS 缓存。但一些应用程序,如 bind、dnsmasq、nscd 等可能会缓存它。

如果您使用 nscd 缓存 DNS 查询,则只需重新启动 nscd 服务即可刷新 DNS 缓存。

您可以使用以下命令在 Ubuntu 16.04 LTS 上重新启动 nscd 服务来刷新 DNS 缓存:

$ sudo systemctl restart nscd

如果您使用 dnsmasq 缓存 DNS,则使用以下命令重新启动 dnsmasq 服务应该会刷新 DNS 缓存。

$ sudo systemctl restart dnsmasq

这就是在 Ubuntu 18.04 LTS 和 16.04 LTS 上刷新 DNS 缓存的方法。感谢您阅读本文。

©2015-2025 Norria support@alaica.com