Heim > Betrieb und Instandhaltung > Nginx > So zeigen Sie den DNS-Cache unter Linux an und aktualisieren ihn

So zeigen Sie den DNS-Cache unter Linux an und aktualisieren ihn

王林
Freigeben: 2023-06-29 14:40:27
nach vorne
4832 Leute haben es durchsucht

Indem Sie Ihren lokalen DNS-Cache leeren, können Sie HTTP-Fehler beheben und sich vor DNS-Spoofing schützen. Hier erfahren Sie, wie es unter Linux geht.

Wenn Sie eine Website mit einem Domainnamen besuchen, sendet Ihr System eine Anfrage an den DNS-Server, um die IP-Adresse der Domain zu erhalten. Dieses Domänen-IP-Adresspaar wird zur späteren Verwendung im DNS-Cache gespeichert, sodass Sie nicht jedes Mal eine Anfrage an den DNS-Server senden müssen, um eine Verbindung herzustellen.

Aber manchmal wird der lokale DNS-Cache beschädigt und verursacht HTTP-Fehler. Glücklicherweise ist das Leeren und Neuerstellen des DNS-Cache in Linux-Betriebssystemen sehr einfach. So wird es gemacht.

如何在 Linux 上查看和刷新 DNS 缓存

Warum sollten Sie den DNS-Cache unter Linux leeren?

Es gibt mehrere Gründe, warum Sie den auf Ihrem System gespeicherten DNS-Cache neu erstellen möchten. Wenn Ihr DNS-Eintrag veraltet ist, möchten Sie ihn möglicherweise erneut vom DNS-Server abrufen. Wenn Sie außerdem befürchten, dass Ihr System kompromittiert wurde, möchten Sie möglicherweise sicherstellen, dass der DNS-Cache nicht manipuliert wurde, was auch als DNS-Spoofing bezeichnet wird.

Wenn Sie den DNS-Cache leeren, muss das System den DNS-Server erneut anpingen und neue Domänen-IP-Adressdatensätze von ihm abrufen und dabei alle veralteten oder beschädigten Daten entfernen.

So zeigen Sie den lokalen DNS-Cache unter Linux an

Vor systemd hatten die meisten Linux-Distributionen keinen systemweiten DNS-Cache, es sei denn, er wurde manuell von einem Programm wie dnsmasq oder nscd eingerichtet. systemd wird mit systemd-solved geliefert, einem Dienst, der Domänennamen in IP-Adressen auflöst und DNS-Einträge zwischenspeichert.

In den folgenden Abschnitten erfahren Sie, wie Sie den Inhalt des durch systemd-Parsing, nscd und dnsmasq generierten DNS-Cache anzeigen, damit Sie die zwischengespeicherten Daten verstehen können, bevor Sie sich für die Aktualisierung der zwischengespeicherten Daten entscheiden.

Vom System aufgelösten DNS-Cache anzeigen

Um vom System aufgelöste Cache-Einträge anzuzeigen, müssen Sie den Dienst vorübergehend stoppen und dann seine Protokolle in eine Datei exportieren.

Senden Sie zunächst das SIGUSR1-Signal, um den systemd-Analysedienst zu beenden:

linuxmi@linuxmi ~/www.linuxmi.com % sudo killall -USR1 systemd-resolved[sudo] linuxmi 的密码: 
Nach dem Login kopieren

Verwenden Sie den Befehl „journalctl“ und den Standardausgabeoperator, um die Ausgabe in einer Textdatei zu speichern:

linuxmi@linuxmi ~/www.linuxmi.com % sudo journalctl -u systemd-resolved > ~/cache.txtlinuxmi@linuxmi ~/www.linuxmi.com
Nach dem Login kopieren

如何在 Linux 上查看和刷新 DNS 缓存

Sie können die Datei dann mithilfe eines Textes anzeigen Editor wie Vim Inhalt:

如何在 Linux 上查看和刷新 DNS 缓存

Suchen Sie in der Datei nach „CACHE:“, indem Sie Escape drücken, „/CACHE:“ eingeben und dann die Eingabetaste drücken. Alle unter „CACHE:“ aufgeführten DNS-Einträge sind im lokalen DNS-Cache enthalten. Wenn Sie Vim verwenden, drücken Sie die Taste n, um zum nächsten Satz von DNS-Einträgen zu springen.

如何在 Linux 上查看和刷新 DNS 缓存

Lokalen DNS-Cache von nscd anzeigen

Um den von nscd generierten lokalen Cache anzuzeigen, müssen Sie den String-Befehl verwenden, um den Inhalt der nscd-Hostdatenbank zu lesen.

Auf Debian- und Ubuntu-basierten Distributionen befindet sich diese Datei in /var/cache/nscd/hosts. Führen Sie den folgenden Befehl aus, um die Datei anzuzeigen:

linuxmi@linuxmi ~/www.linuxmi.com % sudo strings /var/cache/nscd/hosts | uniq
Nach dem Login kopieren

如何在 Linux 上查看和刷新 DNS 缓存

Um allgemeine Statistiken zum NSCD-DNS-Cache anzuzeigen, verwenden Sie das Flag -g:

linuxmi@linuxmi ~/www.linuxmi.com % sudo nscd -g
Nach dem Login kopieren

如何在 Linux 上查看和刷新 DNS 缓存

DNS-Cache anzeigen, der von dnsmasq generiert wurde

Die genauen Datensätze abrufen Nicht einfach weil dnsmasq den DNS-Cache im Speicher speichert. Sie können ein Kill-Signal an dnsmasq senden und dessen Ausgabe protokollieren, um die Anzahl der verarbeiteten DNS-Abfragen zu ermitteln.

Stellen Sie dazu zunächst sicher, dass dnsmasq aktiv ist und läuft, indem Sie den Befehl systemctl verwenden:

linuxmi@linuxmi ~/www.linuxmi.com % sudo systemctl status dnsmasq
Nach dem Login kopieren

如何在 Linux 上查看和刷新 DNS 缓存

Wenn der Status „Aktiv“ lautet, führen Sie den folgenden Befehl aus, um den Dienst zu beenden:

linuxmi@linuxmi ~/www.linuxmi.com % sudo pkill -USR1 dnsmasq
Nach dem Login kopieren

如何在 Linux 上查看和刷新 DNS 缓存

使用 journalctl 命令,提取 dnsmasq 日志并将它们保存到文本文件中:

linuxmi@linuxmi ~/www.linuxmi.com % sudo journalctl -u dnsmasq > ~/cache.txt
Nach dem Login kopieren

最后,使用文件查看实用程序(如 cat 或更少)查看文件的内容:

linuxmi@linuxmi ~/www.linuxmi.com % cat ~/cache.txt
Nach dem Login kopieren

如何在 Linux 上查看和刷新 DNS 缓存

如何在 Linux 上刷新 DNS 缓存

刷新 DNS 缓存意味着从计算机中删除缓存的 DNS 记录。这将迫使它向DNS服务器发送请求,以获取新的DNS条目。

以下是在 Linux 上刷新 DNS 缓存的方法:

使用 systemd 解析

您可以使用 resolvectl 命令刷新 systemd 解析存储的 DNS 缓存:

linuxmi@linuxmi ~/www.linuxmi.com % sudo resolvectl flush-caches
Nach dem Login kopieren

如何在 Linux 上查看和刷新 DNS 缓存

如果您运行的是 Ubuntu 17.04 或 18.04,请使用 systemd 解析的命令刷新缓存:

sudo systemd-resolved --flush-caches
Nach dem Login kopieren

在 Linux 上刷新 nscd DNS 缓存

删除 nscd 的 DNS 缓存的最便捷方法是重新启动服务。您可以通过运行以下命令来执行此操作:

linuxmi@linuxmi ~/www.linuxmi.com % sudo /etc/init.d/nscd restart
Nach dem Login kopieren

如何在 Linux 上查看和刷新 DNS 缓存

如果这不起作用,首先,检查存储在PC上的本地缓存是否持久。您可以使用 -g 标志进行验证:

sudo nscd -g
Nach dem Login kopieren

如果是这种情况,请使用带有 nscd 命令的 –i 标志来清除记录(i 代表 invalidate):

linuxmi@linuxmi ~/www.linuxmi.com % sudo nscd -i hosts
Nach dem Login kopieren

删除 dnsmasq DNS 缓存

刷新 dnsmasq 生成的 DNS 缓存很简单。由于缓存存储在内存中,因此重新启动服务会删除所有存储的条目。

要重新启动 dnsmasq,请运行以下 systemctl 命令:

sudo systemctl restart dnsmasq
Nach dem Login kopieren

或者,发出以下命令:

service dnsmasq restart
Nach dem Login kopieren

如果出现提示,请输入管理员密码。现在要重新启动 dnsmasq,所有缓存中存在的 DNS 条目将被清除。

建议刷新 DNS 缓存后,检查本地缓存条目以确认数据已经成功删除。您可以使用 Linux 命令之一的 dig 来进行网络故障排除,并查看输出中的“查询时间”值。假如超过 0 毫秒,则说明缓存已经成功清除(若为 0 毫秒,则表示域记录仍存在于缓存中)。

dig google.com
Nach dem Login kopieren

清除谷歌浏览器的DNS缓存

您经常使用的 Web 浏览器也会缓存 DNS 记录。输入 URL 时,系统会在本地浏览器缓存中搜索缓存条目。如果未找到,它将检查本地系统缓存中的记录。清除 Web 浏览器的 DNS 缓存非常重要,因为它优先于系统范围的缓存。

为了演示,让我们刷新谷歌浏览器中的DNS缓存。在其他浏览器上也有一些方法可以做到这一点,所以最好 Google 一下如何使用你使用的浏览器做到这一点。

首先,在URL栏中键入“chrome://net-internals/#dns”并按Enter键:

如何在 Linux 上查看和刷新 DNS 缓存

点击“清除主机缓存”按钮来清除谷歌浏览器中存储的DNS条目。

Linux是学习网络的最佳操作系统

Linux 乍一看可能看起来很复杂,但如果你花一些时间来学习它是如何工作的,你很快就会意识到它很棒,甚至可能比 Windows 或 macOS 更好。

大多数在线服务器都运行 Linux,如果您想学习网络或想知道计算机通常如何工作,这也是 Linux 理想选择的原因之一。

Das obige ist der detaillierte Inhalt vonSo zeigen Sie den DNS-Cache unter Linux an und aktualisieren ihn. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage