Wie man prüft, ob ein DNS-Server in Linux konfiguriert ist

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie prüfen können, ob ein DNS-Server auf Ihrem Linux-System konfiguriert ist. Wir werden die primäre Konfigurationsdatei /etc/resolv.conf untersuchen, um die konfigurierten DNS-Server zu identifizieren.

Anschließend verwenden Sie den Befehl nslookup, um die DNS-Auflösung zu testen und zu überprüfen, ob Ihr System Domainnamen erfolgreich in IP-Adressen umsetzen kann. Abschließend werden wir die systemd-resolved-Konfigurationsdatei /etc/systemd/resolved.conf untersuchen, um zu verstehen, wie der lokale DNS-Resolver-Service konfiguriert ist.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") linux/RemoteAccessandNetworkingGroup -.-> linux/ping("Network Testing") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") subgraph Lab Skills linux/cat -.-> lab-558709{{"Wie man prüft, ob ein DNS-Server in Linux konfiguriert ist"}} linux/netstat -.-> lab-558709{{"Wie man prüft, ob ein DNS-Server in Linux konfiguriert ist"}} linux/ping -.-> lab-558709{{"Wie man prüft, ob ein DNS-Server in Linux konfiguriert ist"}} linux/ip -.-> lab-558709{{"Wie man prüft, ob ein DNS-Server in Linux konfiguriert ist"}} end

DNS mit cat /etc/resolv.conf prüfen

In diesem Schritt werden wir uns zunächst ansehen, wie Ihr Linux-System Websites und Dienste im Internet findet. Dieser Prozess wird DNS-Auflösung genannt und wird von einem Dienst übernommen, der menschenlesbare Domainnamen (wie google.com) in maschinenlesbare IP-Adressen (wie 172.217.160.142) übersetzt.

Die primäre Konfigurationsdatei für die DNS-Auflösung auf vielen Linux-Systemen ist /etc/resolv.conf. Diese Datei teilt Ihrem System mit, welche DNS-Server verwendet werden sollen.

Lassen Sie uns den Inhalt dieser Datei mit dem Befehl cat anzeigen. Der cat-Befehl ist ein einfaches, aber leistungsstarkes Werkzeug, das zum Anzeigen des Inhalts von Dateien verwendet wird.

Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist. Sie können das Xfce Terminal-Symbol auf der linken Seite Ihres Desktops finden.

Geben Sie jetzt den folgenden Befehl ein und drücken Sie die Eingabetaste:

cat /etc/resolv.conf

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

## This is /run/systemd/resolve/stub-resolv.conf.
## Handled by systemd-resolved(8).
## DNS servers configured in /etc/systemd/resolved.conf.
nameserver 127.0.0.53
options edns0 trust-ad

Lassen Sie uns die Ausgabe analysieren:

  • Zeilen, die mit # beginnen, sind Kommentare und werden vom System ignoriert.
  • nameserver 127.0.0.53: Diese Zeile ist hier die wichtigste. Sie gibt die IP-Adresse des DNS-Servers an, den Ihr System verwenden wird. In diesem Fall ist 127.0.0.53 eine spezielle IP-Adresse, die auf einen lokalen DNS-Resolver-Service verweist, oft systemd-resolved, auf den wir später noch eingehen werden. Dieser lokale Resolver leitet dann Ihre DNS-Anfragen an externe DNS-Server weiter.
  • options edns0 trust-ad: Dies sind Optionen im Zusammenhang mit DNS-Abfragen. edns0 ist ein Erweiterungsmechanismus für DNS, und trust-ad bezieht sich auf DNSSEC (DNS Security Extensions). Sie müssen sich für jetzt keine Gedanken über diese Optionen machen.

Das Verständnis von /etc/resolv.conf ist der erste Schritt bei der Fehlersuche bei Netzwerkverbindungsstörungen im Zusammenhang mit DNS. Wenn diese Datei fehlt oder falsche Informationen enthält, kann Ihr System möglicherweise keine Domainnamen auflösen.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

DNS-Auflösung mit nslookup testen

Im vorherigen Schritt haben wir uns die Datei /etc/resolv.conf angesehen, die Ihrem System mitteilt, wo es DNS-Server finden kann. Jetzt wollen wir aktiv testen, ob Ihr System einen Domainnamen auflösen kann, indem wir den Befehl nslookup verwenden.

nslookup ist ein Befehlszeilenprogramm zum Abfragen des Domain Name Systems (DNS), um die Zuordnung von Domainnamen zu IP-Adressen oder andere spezifische DNS-Einträge zu erhalten. Es ist ein grundlegendes Werkzeug für die Netzwerkfehlersuche.

Lassen Sie uns nslookup verwenden, um die IP-Adresse für example.com zu ermitteln. Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:

nslookup example.com

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

Server:		127.0.0.53
Address:	127.0.0.53#53

Non-authoritative answer:
Name:	example.com
Address: 93.184.216.34

Lassen Sie uns diese Ausgabe analysieren:

  • Server: 127.0.0.53: Dies zeigt die IP-Adresse des DNS-Servers an, den nslookup für die Abfrage verwendet hat. Wie wir im vorherigen Schritt gesehen haben, ist dies der lokale Resolver, der in /etc/resolv.conf angegeben ist.
  • Address: 127.0.0.53#53: Dies ist die IP-Adresse und die Portnummer des DNS-Servers. DNS verwendet typischerweise Port 53.
  • Non-authoritative answer:: Dies zeigt an, dass die Antwort von einem zwischenspeichernden DNS-Server stammt, nicht vom autoritativen Server für example.com.
  • Name: example.com: Dies ist der Domainname, nach dem Sie gefragt haben.
  • Address: 93.184.216.34: Dies ist die IP-Adresse, die der DNS-Server für example.com zurückgegeben hat. Dies ist die Adresse, mit der Ihr Computer verbunden würde, wenn Sie versuchen, example.com zu besuchen.

Wenn nslookup eine IP-Adresse zurückgibt, bedeutet dies, dass Ihr System den Domainnamen erfolgreich aufgelöst hat. Wenn es fehlschlägt, sehen Sie möglicherweise eine Fehlermeldung, die auf ein Problem mit der DNS-Auflösung hinweist.

Sie können auch versuchen, andere Domainnamen aufzulösen, wie google.com oder labex.io.

nslookup google.com

Die Ausgabe zeigt die IP-Adressen an, die mit google.com verknüpft sind. Beachten Sie, dass ein einzelner Domainname mehrere IP-Adressen haben kann.

Dieser Befehl ist unschätzbar, um zu überprüfen, ob Ihre DNS-Konfiguration korrekt funktioniert, und um die IP-Adressen bestimmter Domainnamen zu finden.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Überprüfen der resolved-Konfiguration mit cat /etc/systemd/resolved.conf

In den vorherigen Schritten haben wir gesehen, dass /etc/resolv.conf oft auf eine lokale Adresse (127.0.0.53) verweist, die von systemd-resolved verwaltet wird. Dieser Dienst ist Teil des systemd-Systems und -Dienst-Managers und bietet Netzwerknamensauflösung für lokale Anwendungen.

Die Konfiguration für systemd-resolved befindet sich typischerweise in der Datei /etc/systemd/resolved.conf. Lassen Sie uns diese Datei untersuchen, um zu sehen, wie der lokale Resolver konfiguriert ist.

Verwenden Sie erneut den cat-Befehl, um den Inhalt von /etc/systemd/resolved.conf anzuzeigen. Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:

cat /etc/systemd/resolved.conf

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

##  This file is part of systemd.
#
##  systemd is free software; you can redistribute it and/or modify it
##  under the terms of the GNU Lesser General Public License as published by
##  the Free Software Foundation; either version 2.1 of the License, or
##  (at your option) any later version.
#
## Entries in this file show the compile time defaults. Local configuration
## should be placed in a file located in /etc/systemd/resolved.conf.d/.
## See resolved.conf(5) for details.

[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#DNSSEC=no
#DNSOverTLS=no
#MulticastDNS=yes
#LLMNR=yes
#Cache=yes
#DNSStubListener=yes
#ReadEtcHosts=yes

Lassen Sie uns die wichtigsten Teile dieser Datei betrachten:

  • Die Datei beginnt mit Kommentaren, die ihren Zweck und die Lizenzierung erklären.
  • [Resolve]: Dies markiert den Beginn des Hauptkonfigurationsabschnitts für die Namensauflösung.
  • DNS=: Diese auskommentierte Zeile ist der Ort, an dem Sie normalerweise die IP-Adressen der upstream-DNS-Server auflisten würden, die systemd-resolved verwenden soll. Da sie auskommentiert ist, bezieht systemd-resolved seine DNS-Serverinformationen wahrscheinlich aus einer anderen Quelle, wie z. B. Ihrer Netzwerkkonfiguration (z. B. DHCP).
  • FallbackDNS=: Diese auskommentierte Zeile ermöglicht es Ihnen, Fallback-DNS-Server anzugeben, die verwendet werden, wenn die primären in DNS= aufgeführten Server nicht erreichbar sind.
  • Andere auskommentierte Optionen steuern verschiedene Aspekte des Verhaltens von systemd-resolved, wie z. B. die DNSSEC-Validierung, DNS über TLS, die Zwischenspeicherung und die Unterstützung für Multicast DNS (mDNS) und Link-Local Multicast Name Resolution (LLMNR).

In dieser Umgebung werden die tatsächlich verwendeten DNS-Server wahrscheinlich von der zugrunde liegenden Netzwerkinfrastruktur (der Docker-Container-Umgebung) bereitgestellt. systemd-resolved fungiert als lokaler Cache und Weiterleiter.

Das Verständnis von /etc/systemd/resolved.conf ist wichtig für die erweiterte DNS-Konfiguration und -Fehlersuche auf Systemen, die systemd-resolved verwenden.

Sie haben nun erfolgreich die Hauptkonfigurationsdateien im Zusammenhang mit der DNS-Auflösung auf diesem Linux-System überprüft.

Klicken Sie auf Weiter, um dieses Lab abzuschließen.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man die DNS-Server-Konfiguration auf einem Linux-System überprüft. Wir haben begonnen, indem wir die Datei /etc/resolv.conf mit dem cat-Befehl untersucht haben. Diese Datei ist die primäre Konfigurationsdatei, die die vom System verwendeten DNS-Server angibt. Wir haben verstanden, dass Zeilen, die mit # beginnen, Kommentare sind, und die nameserver-Zeile gibt die IP-Adresse des DNS-Servers an, oft ein lokaler Resolver wie 127.0.0.53, der von systemd-resolved verwaltet wird.

Anschließend haben wir die DNS-Auflösung mit dem nslookup-Befehl getestet, um zu überprüfen, ob der konfigurierte DNS-Server Domainnamen erfolgreich in IP-Adressen übersetzen kann. Schließlich haben wir die Konfiguration des systemd-resolved-Dienstes untersucht, indem wir die Datei /etc/systemd/resolved.conf mit cat angesehen haben. Diese Datei liefert weitere Details darüber, wie der lokale DNS-Resolver konfiguriert ist und Anfragen an externe DNS-Server weiterleitet. Diese Schritte vermitteln ein grundlegendes Verständnis davon, wie DNS auf Linux konfiguriert und getestet wird.