Clientseitiges DNS konfigurieren

Das Domain Name System (DNS) ist ein zentraler Bestandteil des Internets. Es sorgt dafür, dass menschlich lesbare Domainnamen, wie example.com, in IP-Adressen, wie 93.184.216.34, übersetzt werden, die Computer verstehen können. Unter Linux kann die clientseitige DNS-Konfiguration angepasst werden, um die Leistung zu verbessern, alternative DNS-Server zu nutzen oder Netzwerkprobleme zu beheben. In diesem Blogbeitrag lernst du, wie du auf einem Linux-Client DNS-Server konfigurierst und welche Tools dir bei der Verwaltung und Fehlerbehebung helfen können.


Was ist DNS und warum sollte man es konfigurieren?

DNS arbeitet wie ein Verzeichnis für das Internet, das Domains in IP-Adressen übersetzt. Standardmäßig bezieht ein Linux-Client die DNS-Server-Informationen meist automatisch über DHCP (Dynamic Host Configuration Protocol) vom Router oder Netzwerkadministrator. Es gibt jedoch Situationen, in denen du den DNS-Server manuell ändern möchtest, z.B.:

  • Leistungsverbesserung: Schnellere DNS-Server können die Ladezeit von Webseiten verbessern.
  • Sicherheit: Du kannst sichere DNS-Dienste wie Cloudflare DNS oder Quad9 nutzen, die bösartige Websites blockieren.
  • Zensurumgehung: Alternative DNS-Server ermöglichen es dir, Ländersperren oder restriktive Filter zu umgehen.

DNS-Konfigurationsdateien unter Linux

Auf Linux-Systemen gibt es mehrere Wege, den DNS-Server zu konfigurieren. In den meisten Fällen wird die Datei /etc/resolv.conf verwendet. Zusätzlich kommen Netzwerkverwaltungsdienste wie NetworkManager oder systemd-resolved zum Einsatz, die DNS-Einstellungen beeinflussen.


1. DNS manuell in /etc/resolv.conf konfigurieren

Die einfachste Methode, um den DNS-Server auf einem Linux-Client zu konfigurieren, ist die Bearbeitung der Datei /etc/resolv.conf. Diese Datei enthält eine Liste von Nameservern, die der Client zur DNS-Auflösung verwendet.

Beispiel: /etc/resolv.conf bearbeiten

Öffne die Datei /etc/resolv.conf in einem Texteditor (z.B. nano):

sudo nano /etc/resolv.conf

Füge oder ändere die Zeilen, um den gewünschten DNS-Server hinzuzufügen. Beispiel:

nameserver 8.8.8.8  # Google DNS
nameserver 8.8.4.4  # Alternativer Google DNS

Beispiel für DNS von Cloudflare:

nameserver 1.1.1.1  # Cloudflare DNS
nameserver 1.0.0.1  # Alternativer Cloudflare DNS

Speichere die Datei und beende den Editor. Dies ändert die DNS-Einstellungen des Clients sofort.

Hinweis: In vielen Distributionen wird die Datei /etc/resolv.conf von Netzwerkverwaltungsdiensten automatisch überschrieben, weshalb eine manuelle Änderung oft nur vorübergehend wirksam ist. Um diese Datei vor Änderungen zu schützen, kannst du sie schreibgeschützt machen:

sudo chattr +i /etc/resolv.conf

Das +i-Flag verhindert, dass die Datei von Programmen wie dem NetworkManager überschrieben wird.

Clientseitiges DNS Konfigurieren unter Linux – Ein Leitfaden

Einleitung

Das Domain Name System (DNS) ist ein zentraler Bestandteil des Internets. Es sorgt dafür, dass menschlich lesbare Domainnamen, wie example.com, in IP-Adressen, wie 93.184.216.34, übersetzt werden, die Computer verstehen können. Unter Linux kann die clientseitige DNS-Konfiguration angepasst werden, um die Leistung zu verbessern, alternative DNS-Server zu nutzen oder Netzwerkprobleme zu beheben. In diesem Blogbeitrag lernst du, wie du auf einem Linux-Client DNS-Server konfigurierst und welche Tools dir bei der Verwaltung und Fehlerbehebung helfen können.


Was ist DNS und warum sollte man es konfigurieren?

DNS arbeitet wie ein Verzeichnis für das Internet, das Domains in IP-Adressen übersetzt. Standardmäßig bezieht ein Linux-Client die DNS-Server-Informationen meist automatisch über DHCP (Dynamic Host Configuration Protocol) vom Router oder Netzwerkadministrator. Es gibt jedoch Situationen, in denen du den DNS-Server manuell ändern möchtest, z.B.:

  • Leistungsverbesserung: Schnellere DNS-Server können die Ladezeit von Webseiten verbessern.
  • Sicherheit: Du kannst sichere DNS-Dienste wie Cloudflare DNS oder Quad9 nutzen, die bösartige Websites blockieren.
  • Zensurumgehung: Alternative DNS-Server ermöglichen es dir, Ländersperren oder restriktive Filter zu umgehen.

DNS-Konfigurationsdateien unter Linux

Auf Linux-Systemen gibt es mehrere Wege, den DNS-Server zu konfigurieren. In den meisten Fällen wird die Datei /etc/resolv.conf verwendet. Zusätzlich kommen Netzwerkverwaltungsdienste wie NetworkManager oder systemd-resolved zum Einsatz, die DNS-Einstellungen beeinflussen.


1. DNS manuell in /etc/resolv.conf konfigurieren

Die einfachste Methode, um den DNS-Server auf einem Linux-Client zu konfigurieren, ist die Bearbeitung der Datei /etc/resolv.conf. Diese Datei enthält eine Liste von Nameservern, die der Client zur DNS-Auflösung verwendet.

Beispiel: /etc/resolv.conf bearbeiten

Öffne die Datei /etc/resolv.conf in einem Texteditor (z.B. nano):

bashCode kopierensudo nano /etc/resolv.conf

Füge oder ändere die Zeilen, um den gewünschten DNS-Server hinzuzufügen. Beispiel:

bashCode kopierennameserver 8.8.8.8  # Google DNS
nameserver 8.8.4.4  # Alternativer Google DNS

Beispiel für DNS von Cloudflare:

bashCode kopierennameserver 1.1.1.1  # Cloudflare DNS
nameserver 1.0.0.1  # Alternativer Cloudflare DNS

Speichere die Datei und beende den Editor. Dies ändert die DNS-Einstellungen des Clients sofort.

Hinweis: In vielen Distributionen wird die Datei /etc/resolv.conf von Netzwerkverwaltungsdiensten automatisch überschrieben, weshalb eine manuelle Änderung oft nur vorübergehend wirksam ist. Um diese Datei vor Änderungen zu schützen, kannst du sie schreibgeschützt machen:

bashCode kopierensudo chattr +i /etc/resolv.conf

Das +i-Flag verhindert, dass die Datei von Programmen wie dem NetworkManager überschrieben wird.


2. DNS mit NetworkManager konfigurieren

In vielen Linux-Distributionen wird der NetworkManager zur Verwaltung von Netzwerkverbindungen verwendet. Der NetworkManager bietet eine flexible Möglichkeit, DNS-Server sowohl für Ethernet- als auch WLAN-Verbindungen zu konfigurieren.

DNS mit nmcli konfigurieren

Mit dem Kommandozeilen-Tool nmcli kannst du DNS-Server für eine bestimmte Netzwerkverbindung festlegen.

Beispiel für die Konfiguration eines statischen DNS-Servers auf einer Ethernet-Schnittstelle (eth0):

nmcli con mod eth0 ipv4.dns "1.1.1.1 8.8.8.8"
nmcli con up eth0

Dieser Befehl setzt die DNS-Server für die Schnittstelle eth0 auf Cloudflare DNS und Google DNS.

Konfiguration prüfen

Um sicherzustellen, dass die Änderungen erfolgreich angewendet wurden, kannst du die aktuelle DNS-Konfiguration anzeigen:

nmcli dev show eth0 | grep IP4.DNS

Das Ergebnis sollte die konfigurierten DNS-Server anzeigen.

Automatische DNS-Konfiguration deaktivieren

Falls du manuelle DNS-Server festlegen möchtest, solltest du sicherstellen, dass der NetworkManager nicht automatisch DNS-Server vom DHCP bezieht:

nmcli con mod eth0 ipv4.ignore-auto-dns yes

3. DNS mit systemd-resolved verwalten

systemd-resolved ist ein Dienst, der in vielen modernen Linux-Distributionen verwendet wird, um die DNS-Auflösung zu verwalten. Er stellt einen zentralen Resolver-Dienst bereit, der Anfragen von Anwendungen weiterleitet und Antworten von konfigurierten DNS-Servern zurückgibt.

Überprüfen, ob systemd-resolved aktiv ist

Zuerst kannst du überprüfen, ob systemd-resolved auf deinem System läuft:

systemctl status systemd-resolved

DNS-Server für systemd-resolved konfigurieren

Die DNS-Server für systemd-resolved können in der Datei /etc/systemd/resolved.conf festgelegt werden.

Öffne die Datei in einem Texteditor:

sudo nano /etc/systemd/resolved.conf

Suche nach der Zeile, die mit #DNS= beginnt, entferne das Kommentarzeichen # und füge die gewünschten DNS-Server hinzu:

[Resolve]
DNS=1.1.1.1 8.8.8.8
FallbackDNS=9.9.9.9 1.0.0.1
  • DNS: Hier gibst du die bevorzugten DNS-Server an.
  • FallbackDNS: Diese Server werden verwendet, falls die primären DNS-Server nicht erreichbar sind.

Speichere die Datei und starte systemd-resolved neu, um die Änderungen zu übernehmen:

sudo systemctl restart systemd-resolved

Verifizierung der DNS-Konfiguration

Nach der Konfiguration kannst du die aktuellen DNS-Server überprüfen, die von systemd-resolved verwendet werden:

systemd-resolve --status

Das Ergebnis zeigt die aktiven DNS-Server für jede Netzwerkschnittstelle an.

4. DNS-Konfiguration in statischen Netzwerkdateien (Debian/Ubuntu)

In Systemen, die statische Netzwerkschnittstellendateien (z.B. /etc/network/interfaces) verwenden, kannst du die DNS-Server direkt in diesen Dateien festlegen.

Beispiel für die Datei /etc/network/interfaces:

Falls du eine statische IP-Adresse für die Schnittstelle eth0 verwendest, kannst du die DNS-Server wie folgt festlegen:

auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4
  • Die Zeile dns-nameservers legt die DNS-Server fest, die für die Schnittstelle eth0 verwendet werden.

Nachdem du die Datei gespeichert hast, musst du das Netzwerk neu starten, um die Änderungen zu übernehmen:

sudo systemctl restart networking

5. Überprüfen der DNS-Auflösung

Nachdem du die DNS-Server konfiguriert hast, kannst du die DNS-Auflösung testen, um sicherzustellen, dass alles korrekt funktioniert.

DNS mit nslookup oder dig testen

Mit den Befehlen nslookup oder dig kannst du testen, ob der DNS-Server korrekt arbeitet und Anfragen richtig aufgelöst werden.

Beispiel für die Verwendung von nslookup:

nslookup example.com

Oder mit dig:

dig example.com

Die Ausgabe zeigt dir die IP-Adresse der Domain an, sowie welcher DNS-Server die Anfrage beantwortet hat.

6. Fehlerbehebung bei DNS-Problemen

Falls du weiterhin Probleme mit der DNS-Auflösung hast, hier ein paar Schritte zur Fehlerbehebung:

  1. Überprüfe die DNS-Konfiguration: Stelle sicher, dass die richtigen DNS-Server in /etc/resolv.conf, NetworkManager oder systemd-resolved eingetragen sind.
  2. Überprüfe die Netzwerkkonfiguration: Stelle sicher, dass die Netzwerkschnittstelle korrekt funktioniert und eine gültige IP-Adresse hat.
  3. Firewall und Router überprüfen: Stelle sicher, dass keine Firewallregeln oder Routereinstellungen den Zugriff auf DNS-Server blockieren.
  4. Flushe den DNS-Cache: Falls du vermutest, dass ein alter DNS-Eintrag im Cache ist, kannst du den Cache mit folgendem Befehl leeren:
sudo systemd-resolve --flush-caches

Fazit

Die clientseitige DNS-Konfiguration unter Linux bietet dir viel Flexibilität, um alternative DNS-Server zu nutzen und die Netzwerkleistung oder Sicherheit zu verbessern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert