Wenn Debian 12 die Meldung „Vorübergehender Fehler bei der Namensauflösung“ anzeigt, überprüfen Sie den Resolver-Dienst, die /etc/resolv.confVerbindung und die aufgelisteten DNS-Server resolvectl– in dieser Reihenfolge. Ein Neustart des Dienstes hilft nur, wenn dieser beendet ist; eine defekte Verbindung oder ein nicht erreichbarer Upstream-Server erfordern eine andere Lösung.
Diese Anweisungen gelten für Debian 12 (Bookworm)-Systeme, die für die Verwendung von DNS-Resolver konfiguriert sind systemd-resolved. Debian hat diesen Resolver in ein separates Paket ausgelagert und ihn nicht als Standard festgelegt, wie in den Debian 12-Versionshinweisen erläutert . Wenn Ihre Installation einen anderen DNS-Manager verwendet, behalten Sie diesen zur Verfügung und erzwingen Sie diese Einstellungen nicht.
1. Ermitteln, wo die Namensauflösung fehlschlägt
Beginnen Sie mit der Netzwerkroute und einer Hostnamensauflösung. Führen Sie die Befehle lokal oder in einem Terminal aus, das bei Netzwerkänderungen geöffnet bleibt:
ip -br address
ip route
ping -c 2 1.1.1.1
resolvectl status
resolvectl query debian.org
getent ahosts debian.org
Eine Standardroute und eine funktionierende numerische IP-Adresse deuten darauf hin, dass der Rechner das Netzwerk ohne DNS erreichen kann. Ein fehlgeschlagener Ping allein beweist keine fehlerhafte Route: Netzwerke können ICMP-Echo-Antworten blockieren. Falls der Schnittstelle eine Adresse oder Route fehlt, korrigieren Sie zunächst die Netzwerkverbindung.
resolvectl statusZeigt die global oder einzelnen Schnittstellen zugewiesenen DNS-Server und Domänen an. resolvectl queryTestet den systemd-Resolver; getent ahoststestet den von Linux-Anwendungen häufig verwendeten Hostnamen-Lookup-Pfad. Diese Unterscheidung hilft, den Fehler einzugrenzen.
Beobachtung
Nächste Prüfung
Keine Adresse oder Standardroute
Korrigieren Sie die Schnittstellen-, Gateway- oder DHCP-Konfiguration vor der DNS-Auflösung.
resolvectlEs kann keine Verbindung zum Dienst hergestellt werden.
Prüfen Sie, ob systemd-resolvedes installiert ist und ausgeführt wird.
resolvectl queryFunktioniert, getentscheitert
Überprüfen Sie /etc/resolv.confdie Konfiguration der NSS-Hosts.
Beide Abfragen schlagen mit einer funktionierenden Route fehl.
Überprüfen Sie die Upstream-DNS-Adressen, das DNS-Routing und den Firewall-Zugriff.
Eine Terminalansicht gruppiert die Standardnetzwerkroute, die DNS-Serverzuweisung und eine Hostnamensauflösung auf Anwendungsebene zur ersten Diagnose.
2. Stellen Sie sicher, dass systemd-resolved installiert und aktiv ist.
Unter Debian 12 garantiert das Vorhandensein von systemd nicht, dass das separate Resolver-Paket installiert ist. Überprüfen Sie das Paket und die Unit, bevor Sie DNS-Dateien ändern.
dpkg-query -W -f='${Status}\n' systemd-resolved
systemctl status systemd-resolved --no-pager
Falls das Paket installiert, der Dienst aber inaktiv ist, starten Sie ihn und aktivieren Sie ihn für zukünftige Systemstarts:
Der letzte Befehl sollte eine Fehlermeldung ausgeben active. Falls das Gerät fehlschlägt, sollten Sie die tatsächlichen Fehlermeldungen überprüfen, anstatt es wiederholt neu zu starten.
Falls das Paket fehlt, installieren Sie es sudo apt install systemd-resolvederst, nachdem Sie Zugriff auf das Paket-Repository haben. Die Installation ändert die Kontrolle über die Umgebung /etc/resolv.conf, daher überprüfen Sie vorher alle Einstellungen für NetworkManager, VPN oder statisches DNS. Debian dokumentiert diese Paketänderung in den Bookworm-Upgrade-Hinweisen .
Die Servicestatusanzeige zeigt an, wo nach der geladenen Einheit, dem aktiven Status und den Startmeldungen zu suchen ist.
3. Reparieren Sie den Resolver-Link nur, wenn er fehlerhaft ist.
Der Standard systemd-resolved-Stub lauscht auf 127.0.0.53. Die empfohlene Kompatibilitätsdatei ist /run/systemd/resolve/stub-resolv.conf, die von verlinkt werden kann /etc/resolv.conf. Überprüfen Sie zunächst Ihren aktuellen Modus:
ls -l /etc/resolv.conf
readlink -f /etc/resolv.conf
cat /etc/resolv.conf
resolvectl status
Ein Link zu /run/systemd/resolve/resolv.confist ebenfalls ein unterstützter Modus, jedoch kontaktieren Programme, die ihn verwenden, den Upstream-DNS-Server direkt anstatt des lokalen Stubs. Bezeichnen Sie diesen Link nicht als defekt, nur weil er sich unterscheidet. Das Handbuch des Debian-Dienstes systemd-resolved erläutert die unterstützten Modi.
Wenn Sie absichtlich den lokalen Stub verwenden, der Dienst ausgeführt wird, der Stub-Listener aktiviert ist und der vorhandene Link /etc/resolv.conffehlt, ungültig ist oder auf einen veralteten Resolver verweist, stellen Sie den empfohlenen Link wieder her. Sichern Sie zuerst eine vorhandene Datei oder einen Link; überspringen Sie das Kopieren, falls keine Datei existiert.
Führen Sie diese Ersetzung nicht auf einem Host aus, auf dem ein anderer Dienst die DNS-Verwaltung übernimmt /etc/resolv.conf. Ein lokaler nameserver 127.0.0.53Eintrag erfordert zudem einen funktionierenden Stub-Listener; das bloße Schreiben dieser Adresse erstellt keinen DNS-Dienst. Behalten Sie auf einem Remote-Rechner eine zweite Zugriffsmethode bei, bevor Sie die Resolver-Einstellungen bearbeiten.
Die Überprüfung der symbolischen Verknüpfung zeigt das erwartete Ziel an, wenn Debian absichtlich so konfiguriert ist, dass es den lokalen systemd-aufgelösten Stub verwendet.
4. Beheben Sie einen fehlenden oder nicht erreichbaren Upstream-DNS-Server.
Wenn resolvectl statuskein geeigneter Upstream-DNS-Server angezeigt wird oder ein konfigurierter Server nicht erreichbar ist, beheben Sie die Ursache dieser Zuweisung. Dynamische DNS-Einstellungen können von DHCP, NetworkManager, systemd-networkd oder einem VPN stammen. Überprüfen Sie, welche Schnittstelle die Standardroute enthält und welcher DNS-Server zu dieser Schnittstelle gehört.
Um einen kurzen Diagnosetest in einem Netzwerk durchzuführen, das öffentliches DNS zulässt, weisen Sie dieser Schnittstelle bekannte öffentliche Resolver zu. Ersetzen Sie <Schnittstellenname> ens33durch die tatsächliche Schnittstelle aus ip -br address:
sudo resolvectl dns ens33 1.1.1.1 1.0.0.1
resolvectl query debian.org
Diese beiden Adressen sind von Cloudflare als öffentliche DNS-Resolver-Adressen dokumentiert . Die resolvectl dnsÄnderung betrifft die Laufzeitkonfiguration; ein Netzwerkadministrator kann sie beim Wiederherstellen der Verbindung wiederherstellen. Wenn die Namensauflösung nun funktioniert, korrigieren Sie die dauerhafte DNS-Quelle, anstatt sich auf diesen temporären Befehl zu verlassen.
Überprüfen Sie mit NetworkManager die aktive Verbindung nmcli connection show --activeund passen Sie deren DNS-Einstellungen oder DHCP-Verhalten an. Mit systemd-networkd tragen Sie die gewünschten DNS=Einstellungen in die entsprechende .networkDatei ein und laden oder konfigurieren das Netzwerk zu einem sicheren Zeitpunkt neu. Weitere Informationen finden Sie im Debian-Handbuch zu systemd.network und im Debian-Konfigurationshandbuch zu NetworkManager . Das erneute Verbinden einer verwalteten Schnittstelle kann eine SSH-Sitzung unterbrechen.
Verwenden Sie für interne Namen vorzugsweise die DNS-Server Ihrer Organisation oder Ihres VPNs. Öffentliche Resolver sind nicht zuverlässig für private Domains; die ausschließliche Verwendung dieser Server kann zu Problemen mit Split-DNS oder zur Offenlegung interner Hostnamen führen. Globale DNS=Einträge in der Datei `resolved.conf` resolved.confkönnen parallel zur DNS-Konfiguration pro Verbindung verwendet werden, anstatt diese automatisch zu ersetzen; siehe dazu das Bookworm-Handbuch zu `resolved.conf` .
5. Leeren Sie den Cache und überprüfen Sie, ob beide Suchpfade funktionieren.
Nachdem der Dienst, die Resolver-Verbindung oder die Upstream-Konfiguration korrigiert wurde, löschen Sie die zwischengespeicherten Antworten und testen Sie erneut:
Die Reparatur ist erfolgreich, wenn resolvectl queryAdressen und getent ahostsAdressdatensätze zurückgegeben werden und die vorgesehenen DNS-Server nach der Wiederherstellung der Netzwerkverbindung weiterhin erreichbar sind. Die beiden Befehle testen unterschiedliche Schnittstellen; ein erfolgreicher Test eines Befehls bedeutet daher nicht, dass alle Anwendungen repariert sind. Das Debian-Handbuch zu resolvectl beschreibt Abfrage, Status und Cache-Leerung.
Die abschließende Terminalansicht zeigt die beiden Prüfungen an, die nach der Reparatur der DNS-Konfiguration beide Adressdatensätze zurückgeben sollten.
Falls die Suche resolvectl queryzwar erfolgreich ist, aber getentweiterhin fehlschlägt, prüfen Sie grep "^hosts:" /etc/nsswitch.conf, ob ein geeignetes dnsoder installiertes resolveNSS-Modul im Suchpfad vorhanden ist. Sollten beide Versuche weiterhin fehlschlagen, überprüfen Sie das Resolver-Journal und etwaige Firewall-Beschränkungen für den DNS-Verkehr. Testen Sie anschließend mit der tatsächlichen DNS-Adresse Ihres Unternehmens, Routers oder Providers. Eine einzelne erfolgreiche Suche reicht nicht aus: Wiederholen Sie die Prüfungen nach einer erneuten Verbindung und nach einem Neustart, um die dauerhafte Behebung des Problems zu überprüfen.