Wenn Sie ein Ubuntu-Benutzer sind, haben Sie sicherlich schon einmal die Situation erlebt, in der "der Domainname nicht funktioniert, aber die Verbindung über die IP-Adresse hergestellt werden kann". In solchen Fällen liegt das Problem häufig an den DNS-Einstellungen. Besonders in der neuesten Version von Ubuntu wird systemd-resolved
als DNS-Resolver-Daemon standardmäßig verwendet, weshalb es wichtig ist, die Struktur zu verstehen.
1. Ablauf der DNS-Anfrage
Wenn Sie die folgende Zusammenfassung sorgfältig lesen und verstehen, werden fast alle Probleme gelöst.
- Der Benutzer fordert eine Domain über Anwendungen wie den Browser an
- Linux liest standardmäßig
/etc/resolv.conf
, um DNS aufzulösen (diese Datei ist symbolisch mit/run/systemd/resolve/stub-resolv.conf
verknüpft.) - Die Datei
/run/systemd/resolve/stub-resolv.conf
ist auf127.0.0.53
eingestellt, wodurchsystemd-resolved
schließlich ins Spiel kommt. - Das
systemd-resolved
des Systems wird durch die Konfigurationsdatei/etc/systemd/resolved.conf
gesteuert - Das heißt,
systemd-resolved
fragt die in/etc/systemd/resolved.conf
festgelegten DNS-Server ab, - erhält die Antwort und wandelt die Domain erfolgreich in eine IP-Adresse um
2. Zusammenfassung der Kernkomponenten
Wie oben beschrieben, umfasst systemd-resolved
folgende 4 wichtige Konfigurationsdateien. Das Verständnis ihrer Funktionen ist entscheidend.
2-1. /etc/resolv.conf
- Standort, an dem die DNS-Serverliste in traditionellen Linux-Systemen gelesen wird
- Aktuell muss sie jedoch aus Kompatibilitätsgründen mit systemd als symbolischer Link existieren
- Typischerweise sollte es folgendermaßen eingestellt sein, um normal zu funktionieren:
bash /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
- Das bedeutet, diese Datei fungiert als "Vermittler zwischen traditionellen Apps und systemd-resolved"
2-2. /run/systemd/resolve/stub-resolv.conf
- Enthält Informationen zum lokalen DNS-Stubs-Server (127.0.0.53), der von
systemd-resolved
verwaltet wird - Wenn
/etc/resolv.conf
auf diese Datei verweist, gehen alle DNS-Anfragen übersystemd-resolved
2-3./etc/systemd/resolved.conf
systemd-resolved
's wichtige Konfigurationsdatei- Hier können Einstellungen wie
DNS=
,FallbackDNS=
vorgenommen werden, um Prioritäten zu setzen - Permanent und bleibt nach einem Neustart erhalten
2-4. /run/systemd/resolve/resolv.conf
- Diese Datei enthält die tatsächliche Liste der DNS-Server, die von
systemd-resolved
verwaltet wird - Fortgeschrittene Benutzer können einen direkten DNS-Anfrager anstelle von
stub-resolv.conf
einstellen, indem sie es auf/etc/resolv.conf
verlinken (Bypass-Einstellung)
3. Beispiel für ein Problem: Wenn der DNS-Server des vom ISP bereitgestellten Routers instabil ist
- Der DNS-Server des führenden südkoreanischen ISPs KT (z.B.
168.126.63.1
) ist im Router konfiguriert, aber wenn ich keine Kontrolle über den Router habe, treten gelegentlich DNS-Probleme auf. - Der KT DNS hat oft eine instabile Antwortzeit oder scheitert häufig am UDP/TCP-Handshake
- Wenn im
systemd-resolved
Protokoll wiederholt Nachrichten wie folgt angezeigt werden, ist das ein Zeichen für Probleme:Using degraded feature set TCP instead of UDP for DNS server 168.126.63.1. Using degraded feature set UDP instead of TCP for DNS server 168.126.63.1.
- Infolge kommt es zu einem Fehlschlagen der Domainauflösung → der Zugriff auf die Website ist nicht möglich
4. Empfohlene DNS-Server
Name | Adresse | Eigenschaften |
---|---|---|
Google DNS | 8.8.8.8 , 8.8.4.4 |
Schnell und stabil |
Cloudflare DNS | 1.1.1.1 , 1.0.0.1 |
Schnelle Geschwindigkeit und ausgezeichnete Datenschutzfunktionen |
Quad9 | 9.9.9.9 |
Bietet Sicherheitsbedrohungsfilterung |
5. So konfigurieren Sie ein stabiles DNS
- Öffnen Sie die Datei
/etc/systemd/resolved.conf
[Resolve]
DNS=1.1.1.1 8.8.8.8
FallbackDNS=9.9.9.9
- Änderungen anwenden
sudo systemctl restart systemd-resolved
- Überprüfen Sie, ob
/etc/resolv.conf
korrekt verlinkt ist
ls -l /etc/resolv.conf
→ Sollte auf /run/systemd/resolve/stub-resolv.conf
verlinkt sein
Falls nötig, forcieren Sie die Neusetzen:
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
6. Vorsicht vor der Einmischung des NetworkManagers
In Ubuntu mit einer GUI kann es sein, dass der NetworkManager
die DNS-Einstellungen überschreibt
- Wenn die automatische DNS-Einstellung aktiviert ist, können die
systemd-resolved
Einstellungen ignoriert werden - Überschreiben:
bash nm-connection-editor
→ Verbindung bearbeiten → IPv4-Registerkarte → Automatische DNS deaktivieren → manuelle DNS eingeben
7. Fazit
- Da die Instabilität des KT DNS häufig berichtet wird, ist es ratsam, es zu meiden
- Die DNS-Konfiguration über
systemd-resolved
ist ein sehr effektiver Weg, um die Stabilität unter Ubuntu zu erhöhen - Wenn Sie die Einstellungen genau verstehen und anwenden, können Sie den Stress durch Fehlschläge bei der Domainauflösung reduzieren
8. Jesses Kommentar
Das Verständnis der Einstellungen ist die stärkste Sicherheit und Wartung. Ich hoffe, dass dieser Artikel für diejenigen, die verwirrt über die DNS-Einstellungen unter Ubuntu waren, praktische Hilfe bietet.
Add a New Comment