Linux kan ikke løse DNS: årsager og løsninger

Hvis Linux ser ud til at have en fungerende internetforbindelse, men websites ikke kan åbnes, eller hvis adgang via IP-adresse virker, men ikke via domænenavn, skyldes problemet ofte DNS-opløsning. DNS har til opgave at oversætte domænenavne som example.com til reelle IP-adresser. Hvis denne proces fejler, kan netværket stadig se aktivt ud, men normal brug af internettet bliver stærkt begrænset.

Typiske symptomer

  • Browseren viser, at serveren ikke kan findes
  • ping 8.8.8.8 virker, men ping google.com fejler
  • Pakkestyringsværktøjer som apt, dnf, yum og pacman virker ikke korrekt
  • Fejlmeddelelsen Temporary failure in name resolution vises

Hvad bør du kontrollere først

Først skal du afgøre, om problemet påvirker hele netværket eller kun DNS.

ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route

Hvis 8.8.8.8 svarer, men google.com ikke gør, peger det stærkt på et DNS-problem. Hvis selv IP-adresser ikke kan nås, ligger årsagen sandsynligvis i Wi-Fi, netværkskortet, gatewayen eller routing.

Vigtigste årsager

1. Forkert konfiguration i /etc/resolv.conf

På mange Linux-systemer gemmes oplysninger om DNS-servere i /etc/resolv.conf. Hvis der ikke står en gyldig nameserver her, vil domænenavne ikke kunne oversættes.

cat /etc/resolv.conf

Eksempel:

nameserver 8.8.8.8
nameserver 1.1.1.1

Hvis filen er tom eller peger på en forkert lokal DNS, opstår problemet. På moderne Linux-systemer bliver denne fil dog ofte automatisk genereret af NetworkManager eller systemd-resolved, så manuelle ændringer kan blive overskrevet.

2. Problem med systemd-resolved

På systemer som Ubuntu håndterer systemd-resolved ofte DNS-opløsning og bruger 127.0.0.53 som lokal resolver. Hvis denne tjeneste stopper, kan DNS holde op med at virke.

systemctl status systemd-resolved
resolvectl status

Hvis der er et problem, kan du genstarte tjenesten:

sudo systemctl restart systemd-resolved

3. NetworkManager anvender ikke DNS korrekt

På Linux-desktops henter NetworkManager ofte DNS-oplysninger via DHCP. Hvis netværksprofilen er beskadiget, eller hvis genforbindelsen mislykkes, bliver de rigtige DNS-servere måske ikke brugt.

nmcli dev show | grep DNS
nmcli connection show

Genstart det om nødvendigt:

sudo systemctl restart NetworkManager

4. Påvirkning fra VPN, proxy eller firewall

En VPN kan sende DNS-forespørgsler ad en forkert rute, og en firewall kan blokere port 53. I sådanne tilfælde ser netværket ud til at fungere, men domænenavne kan ikke opløses.

5. Ødelagt eller forældet DNS-cache

Hvis den lokale cache er beskadiget eller for gammel, kan visse domæner holde op med at virke. På systemer med systemd-resolved eller nscd kan det hjælpe at rydde cachen.

sudo resolvectl flush-caches

Praktiske trin til fejlfinding

Trin 1: Test direkte mod en offentlig DNS

nslookup google.com 8.8.8.8
dig google.com @8.8.8.8

Hvis dette virker, er den eksterne DNS sandsynligvis i orden, og problemet ligger mere lokalt.

Trin 2: Indstil midlertidigt en offentlig DNS

sudo sh -c 'printf "nameserver 8.8.8.8\nnameserver 1.1.1.1\n" > /etc/resolv.conf'

Dette er kun en midlertidig løsning. Efter genstart eller genforbindelse kan filen blive ændret igen. For en permanent løsning skal konfigurationen i NetworkManager, netplan eller systemd-resolved rettes.

Trin 3: Kontroller netplan på Ubuntu

sudo nano /etc/netplan/*.yaml

Eksempel:

nameservers:
  addresses: [8.8.8.8,1.1.1.1]

Anvend derefter ændringen:

sudo netplan apply

Trin 4: Hent DHCP-oplysninger igen

sudo dhclient -r
sudo dhclient

Hvis DHCP-serveren har leveret forkerte DNS-oplysninger, kan dette hjælpe.

Nyttige kommandoer til kontrol

ping -c 4 8.8.8.8
ping -c 4 google.com
cat /etc/resolv.conf
systemctl status systemd-resolved
resolvectl status
nmcli dev show | grep DNS
nslookup google.com
dig google.com
journalctl -u systemd-resolved --no-pager | tail -n 50

Sådan undgår du, at problemet kommer igen

  • Nøjes ikke kun med at redigere /etc/resolv.conf manuelt
  • Forstå, om DNS styres af DHCP, NetworkManager eller systemd-resolved
  • Kontrollér DNS-indstillinger efter opsætning af VPN
  • På servere er det bedst tydeligt at angive faste DNS-servere

Konklusion

Når Linux ikke kan opløse DNS-navne, er det vigtigste første skridt at kontrollere, om forbindelsen via IP-adresse stadig virker. Det gør det nemt at afgøre, om problemet kun ligger i DNS eller i hele netværket. Derefter bør /etc/resolv.conf, systemd-resolved, NetworkManager, DHCP og VPN-indstillinger kontrolleres systematisk. Målet er ikke kun en midlertidig løsning, men også at forstå, hvilken komponent der faktisk styrer DNS på systemet.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *