DNS-Probleme können Websites unerreichbar machen. Mit dig und nslookup finden Sie die Ursache schnell. Dieser Artikel zeigt die wichtigsten Diagnose-Techniken.
dig - Das Profi-Werkzeug
Installation
# Debian/Ubuntu
apt install dnsutils
# CentOS/RHEL
dnf install bind-utilsGrundlegende Abfragen
# A-Record (IPv4-Adresse)
dig example.com
# Kurzform
dig +short example.com
# Spezifischer Record-Typ
dig example.com MX
dig example.com TXT
dig example.com AAAA
dig example.com NS
dig example.com CNAMEdig-Ausgabe verstehen
; <<>> DiG 9.18.0 <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 3600 IN A 93.184.216.34
;; Query time: 23 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sun Jan 26 10:00:00 CET 2026
;; MSG SIZE rcvd: 56Wichtige Felder:
- status: NOERROR = Erfolgreich
- NXDOMAIN = Domain existiert nicht
- SERVFAIL = DNS-Server-Fehler
- TTL (3600) = Cache-Zeit in Sekunden
- SERVER = Verwendeter DNS-Server
Bestimmten DNS-Server abfragen
# Google DNS
dig @8.8.8.8 example.com
# Cloudflare DNS
dig @1.1.1.1 example.com
# Autoritativen Nameserver
dig @ns1.example.com example.com
# Lokalen DNS-Cache
dig @127.0.0.1 example.comAlle Records einer Domain
dig example.com ANY
# Besser: Einzeln abfragen
dig example.com A
dig example.com AAAA
dig example.com MX
dig example.com TXT
dig example.com NSTrace (DNS-Auflösungspfad)
dig +trace example.com
# Zeigt den kompletten Weg:
# Root-Server → TLD-Server → Autoritativer ServerReverse-DNS (PTR)
# IP zu Hostname
dig -x 93.184.216.34
# Kurzform
dig +short -x 93.184.216.34nslookup - Die Alternative
Grundlegende Nutzung
# Einfache Abfrage
nslookup example.com
# Bestimmter DNS-Server
nslookup example.com 8.8.8.8
# Record-Typ setzen
nslookup -type=MX example.com
nslookup -type=TXT example.comInteraktiver Modus
nslookup
> set type=MX
> example.com
> set type=NS
> example.com
> exitHäufige DNS-Probleme
Problem 1: NXDOMAIN (Domain existiert nicht)
dig nonexistent.example.com
# status: NXDOMAINUrsachen:
- Tippfehler in Domain
- Domain nicht registriert
- DNS-Eintrag gelöscht
- Subdomain nicht angelegt
Lösung:
# Domain-Existenz prüfen
whois example.com
# Korrekte Schreibweise prüfen
dig existingdomain.comProblem 2: SERVFAIL
dig problematic.com
# status: SERVFAILUrsachen:
- DNSSEC-Validierungsfehler
- Nameserver nicht erreichbar
- Fehlerhafte Zonenkonfiguration
Lösung:
# Ohne DNSSEC-Validierung testen
dig +cd problematic.com
# Direkt autoritativen Server fragen
dig @ns1.problematic.com problematic.comProblem 3: Unterschiedliche Ergebnisse
dig @8.8.8.8 example.com # IP A
dig @1.1.1.1 example.com # IP BUrsachen:
- DNS-Propagation noch nicht abgeschlossen
- Geo-DNS (gewollt)
- Caching unterschiedlich
Lösung:
# Autoritativen Server abfragen
dig NS example.com
dig @ns1.example.com example.com +norecurseProblem 4: Langsame DNS-Auflösung
dig example.com
# Query time: 500 msecUrsachen:
- Langsamer DNS-Server
- Netzwerkprobleme
- DNS-Server überlastet
Lösung:
# Anderen DNS-Server testen
time dig @8.8.8.8 example.com
time dig @1.1.1.1 example.comProblem 5: DNS-Änderung nicht sichtbar
# Neuer A-Record zeigt auf alte IP
dig example.com +short
# Zeigt alte IPUrsachen:
- TTL noch nicht abgelaufen
- Lokaler Cache
Lösung:
# TTL prüfen
dig example.com | grep -E "^[^;]" | awk '{print $2}'
# Direkt autoritativen Server fragen
dig @ns1.example.com example.com
# Lokalen Cache leeren (systemd-resolved)
resolvectl flush-cachesDNS-Propagation prüfen
Mehrere Standorte testen
# Verschiedene öffentliche DNS-Server
for dns in 8.8.8.8 1.1.1.1 9.9.9.9 208.67.222.222; do
echo "=== $dns ==="
dig @$dns example.com +short
doneOnline-Tools
- whatsmydns.net
- dnschecker.org
- dnswatch.info
E-Mail-DNS prüfen
MX-Records
dig example.com MX +short
# 10 mail.example.com.
# 20 mail2.example.com.SPF-Record
dig example.com TXT | grep "v=spf1"DKIM-Record
dig selector._domainkey.example.com TXT
# Selector vom E-Mail-ProviderDMARC-Record
dig _dmarc.example.com TXTDNSSEC prüfen
DNSSEC-Status
# Mit DNSSEC-Informationen
dig example.com +dnssec
# Nur DNSSEC-Flag prüfen
dig example.com | grep -i "flags:.*ad"
# 'ad' = Authenticated Data (DNSSEC valide)DS-Record prüfen
dig example.com DSNameserver-Konfiguration prüfen
Autoritative Nameserver finden
dig NS example.com +short
# ns1.example.com.
# ns2.example.com.Nameserver-Konsistenz prüfen
# Beide Nameserver sollten gleiche Daten liefern
dig @ns1.example.com example.com A
dig @ns2.example.com example.com ASOA-Record (Start of Authority)
dig example.com SOA +short
# ns1.example.com. admin.example.com. 2024012501 3600 600 604800 86400
# │ │ │ │ └─ Negative TTL
# │ │ │ └─ Expire
# │ │ └─ Retry
# │ └─ Refresh
# └─ SerialLokale DNS-Konfiguration
Aktuellen DNS-Server prüfen
# systemd-resolved
resolvectl status
# Klassisch
cat /etc/resolv.conf
# NetworkManager
nmcli dev show | grep DNSDNS-Cache leeren
# systemd-resolved
resolvectl flush-caches
# nscd (falls verwendet)
nscd -i hosts
# dnsmasq (falls verwendet)
systemctl restart dnsmasqDebugging-Skript
#!/bin/bash
# dns-check.sh - Umfassende DNS-Diagnose
DOMAIN=${1:-"example.com"}
echo "=== DNS-Check für $DOMAIN ==="
echo -e "\n--- A-Record ---"
dig +short $DOMAIN A
echo -e "\n--- AAAA-Record (IPv6) ---"
dig +short $DOMAIN AAAA
echo -e "\n--- MX-Records ---"
dig +short $DOMAIN MX
echo -e "\n--- NS-Records ---"
dig +short $DOMAIN NS
echo -e "\n--- TXT-Records ---"
dig +short $DOMAIN TXT
echo -e "\n--- SOA-Record ---"
dig +short $DOMAIN SOA
echo -e "\n--- Nameserver-Vergleich ---"
NS=$(dig +short $DOMAIN NS | head -1)
echo "Autoritativer NS: $NS"
dig @$NS $DOMAIN A +short
echo -e "\n--- Öffentliche DNS-Server ---"
for dns in "Google:8.8.8.8" "Cloudflare:1.1.1.1" "Quad9:9.9.9.9"; do
name=$(echo $dns | cut -d: -f1)
ip=$(echo $dns | cut -d: -f2)
result=$(dig @$ip +short $DOMAIN A)
echo "$name ($ip): $result"
doneZusammenfassung
| Aufgabe | Befehl | |---------|--------| | A-Record | dig example.com A +short | | MX-Record | dig example.com MX +short | | TXT-Record | dig example.com TXT | | Reverse-DNS | dig -x 1.2.3.4 | | Bestimmter Server | dig @8.8.8.8 example.com | | Trace | dig +trace example.com | | Alle Records | dig example.com ANY |
Fazit
dig ist das wichtigste Werkzeug für DNS-Troubleshooting. Lernen Sie die häufigsten Optionen auswendig und fragen Sie bei Problemen immer mehrere DNS-Server ab. Beachten Sie TTL-Werte bei Änderungen und prüfen Sie die autoritativen Nameserver direkt, um Caching-Probleme auszuschließen.