Hvis Linux ser ut til å ha en aktiv internettforbindelse, men nettsteder ikke åpnes, eller hvis tilgang via IP-adresse fungerer mens tilgang via domenenavn ikke gjør det, skyldes problemet ofte DNS-oppløsning. DNS har som oppgave å oversette domenenavn som example.com til faktiske IP-adresser. Når denne prosessen feiler, kan nettverket fortsatt se aktivt ut, men normal bruk av internett blir sterkt begrenset.
Vanlige symptomer
- Nettleseren viser at serveren ikke kan finnes
ping 8.8.8.8fungerer, menping google.comfeiler- Pakkebehandlere som
apt,dnf,yumogpacmanfungerer ikke som de skal - Feilmeldingen
Temporary failure in name resolutionvises
Hva bør du sjekke først
Først må du finne ut om problemet gjelder hele nettverket eller bare 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 gjør det, tyder det sterkt på et DNS-problem. Hvis selv IP-adresser ikke er tilgjengelige, ligger årsaken sannsynligvis i Wi-Fi, nettverkskortet, gatewayen eller rutingen.
Viktigste årsaker
1. Feil konfigurasjon i /etc/resolv.conf
På mange Linux-systemer lagres informasjon om DNS-servere i /etc/resolv.conf. Hvis det ikke finnes en gyldig nameserver der, vil domenenavn ikke kunne løses.
cat /etc/resolv.conf
Eksempel:
nameserver 8.8.8.8
nameserver 1.1.1.1
Hvis filen er tom eller peker til feil lokal DNS, oppstår problemet. På moderne Linux-systemer blir denne filen imidlertid ofte generert automatisk av NetworkManager eller systemd-resolved, så manuelle endringer kan bli overskrevet.
2. Problem med systemd-resolved
På systemer som Ubuntu håndterer systemd-resolved ofte DNS-oppløsning og bruker 127.0.0.53 som lokal resolver. Hvis denne tjenesten stopper, kan DNS slutte å fungere.
systemctl status systemd-resolved
resolvectl status
Hvis det er et problem, kan du starte tjenesten på nytt:
sudo systemctl restart systemd-resolved
3. NetworkManager bruker ikke DNS riktig
På Linux-skrivebord henter NetworkManager ofte DNS-informasjon via DHCP. Hvis nettverksprofilen er skadet, eller hvis en gjenoppkobling mislykkes, kan riktige DNS-servere bli utelatt.
nmcli dev show | grep DNS
nmcli connection show
Start det på nytt ved behov:
sudo systemctl restart NetworkManager
4. Påvirkning fra VPN, proxy eller brannmur
En VPN kan sende DNS-forespørsler via feil rute, og en brannmur kan blokkere port 53. I slike tilfeller ser nettverket ut til å fungere, men domenenavn kan ikke løses.
5. Skadet eller utdatert DNS-cache
Hvis den lokale cachen er skadet eller gammel, kan enkelte domener slutte å fungere. På systemer med systemd-resolved eller nscd kan det hjelpe å tømme cachen.
sudo resolvectl flush-caches
Praktiske trinn for feilsøking
Trinn 1: Test direkte mot en offentlig DNS
nslookup google.com 8.8.8.8
dig google.com @8.8.8.8
Hvis dette fungerer, er ekstern DNS sannsynligvis i orden, og problemet ligger lokalt.
Trinn 2: Sett midlertidig en offentlig DNS
sudo sh -c 'printf "nameserver 8.8.8.8\nnameserver 1.1.1.1\n" > /etc/resolv.conf'
Dette er bare en midlertidig løsning. Etter omstart eller ny tilkobling kan filen bli endret igjen. For en permanent løsning må konfigurasjonen i NetworkManager, netplan eller systemd-resolved rettes.
Trinn 3: Kontroller netplan på Ubuntu
sudo nano /etc/netplan/*.yaml
Eksempel:
nameservers:
addresses: [8.8.8.8,1.1.1.1]
Bruk deretter endringen:
sudo netplan apply
Trinn 4: Hent DHCP-informasjon på nytt
sudo dhclient -r
sudo dhclient
Hvis DHCP-serveren leverte feil DNS-informasjon, kan dette hjelpe.
Nyttige kommandoer for kontroll
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
Slik unngår du at problemet kommer tilbake
- Ikke stopp ved å bare redigere
/etc/resolv.confmanuelt - Forstå om DNS styres av DHCP, NetworkManager eller systemd-resolved
- Kontroller DNS-innstillinger etter oppsett av VPN
- På servere er det best å angi faste DNS-servere tydelig
Konklusjon
Når Linux ikke kan løse DNS-navn, er det viktigste første steget å kontrollere om forbindelsen via IP-adresse fortsatt fungerer. Det gjør det enklere å avgjøre om problemet bare gjelder DNS eller hele nettverket. Deretter bør /etc/resolv.conf, systemd-resolved, NetworkManager, DHCP og VPN-innstillinger kontrolleres systematisk. Målet er ikke bare en midlertidig løsning, men også å forstå hvilken komponent som faktisk styrer DNS på systemet.