Om Linux verkar ha en fungerande internetanslutning men webbplatser inte öppnas, eller om åtkomst via IP-adress fungerar medan åtkomst via domännamn inte gör det, beror problemet ofta på DNS-upplösning. DNS har till uppgift att översätta domännamn som example.com till verkliga IP-adresser. När den processen misslyckas kan nätverket fortfarande se aktivt ut, men normal användning av internet blir starkt begränsad.
Vanliga symptom
- Webbläsaren visar att servern inte kan hittas
ping 8.8.8.8fungerar, menping google.commisslyckas- Pakethanterare som
apt,dnf,yumochpacmanfungerar inte som de ska - Felmeddelandet
Temporary failure in name resolutionvisas
Vad du bör kontrollera först
Först måste du avgöra om problemet påverkar hela nätverket eller bara DNS.
ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route
Om 8.8.8.8 svarar men google.com inte gör det, tyder det starkt på ett DNS-problem. Om inte ens IP-adresser går att nå ligger orsaken troligen i Wi-Fi, nätverksgränssnittet, gatewayen eller routingen.
Viktigaste orsakerna
1. Felaktig konfiguration i /etc/resolv.conf
På många Linux-system lagras information om DNS-servrar i /etc/resolv.conf. Om det inte finns en giltig nameserver där kommer domännamn inte att kunna lösas.
cat /etc/resolv.conf
Exempel:
nameserver 8.8.8.8
nameserver 1.1.1.1
Om filen är tom eller pekar på en felaktig lokal DNS uppstår problemet. På moderna Linux-system skapas dock den här filen ofta automatiskt av NetworkManager eller systemd-resolved, så manuella ändringar kan skrivas över.
2. Problem med systemd-resolved
På system som Ubuntu hanterar systemd-resolved ofta DNS-upplösning och använder 127.0.0.53 som lokal resolver. Om den tjänsten stoppar kan DNS sluta fungera.
systemctl status systemd-resolved
resolvectl status
Om det finns ett problem kan du starta om tjänsten:
sudo systemctl restart systemd-resolved
3. NetworkManager tillämpar inte DNS korrekt
På Linux-skrivbord hämtar NetworkManager ofta DNS-information via DHCP. Om nätverksprofilen är skadad eller återanslutningen misslyckas kanske rätt DNS-servrar inte används.
nmcli dev show | grep DNS
nmcli connection show
Starta om det vid behov:
sudo systemctl restart NetworkManager
4. Påverkan från VPN, proxy eller brandvägg
Ett VPN kan skicka DNS-förfrågningar via fel väg, och en brandvägg kan blockera port 53. I sådana fall ser nätverket ut att fungera, men domännamn kan inte lösas.
5. Skadad eller föråldrad DNS-cache
Om den lokala cachen är skadad eller gammal kan vissa domäner sluta fungera. På system med systemd-resolved eller nscd kan det hjälpa att tömma cachen.
sudo resolvectl flush-caches
Praktiska steg för felsökning
Steg 1: Testa direkt mot en offentlig DNS
nslookup google.com 8.8.8.8
dig google.com @8.8.8.8
Om detta fungerar är extern DNS troligen i ordning och problemet ligger lokalt.
Steg 2: Ange tillfälligt en offentlig DNS
sudo sh -c 'printf "nameserver 8.8.8.8\nnameserver 1.1.1.1\n" > /etc/resolv.conf'
Detta är bara en tillfällig lösning. Efter omstart eller återanslutning kan filen ändras igen. För en permanent lösning måste konfigurationen i NetworkManager, netplan eller systemd-resolved rättas.
Steg 3: Kontrollera netplan på Ubuntu
sudo nano /etc/netplan/*.yaml
Exempel:
nameservers:
addresses: [8.8.8.8,1.1.1.1]
Tillämpa sedan ändringen:
sudo netplan apply
Steg 4: Hämta DHCP-information igen
sudo dhclient -r
sudo dhclient
Om DHCP-servern gav fel DNS-information kan detta hjälpa.
Användbara kommandon för 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
Så undviker du att problemet återkommer
- Nöj dig inte med att bara redigera
/etc/resolv.confmanuellt - Förstå om DNS hanteras av DHCP, NetworkManager eller systemd-resolved
- Kontrollera DNS-inställningar efter att du har satt upp VPN
- På servrar är det bäst att tydligt ange fasta DNS-servrar
Slutsats
När Linux inte kan lösa DNS-namn är det viktigaste första steget att kontrollera om kommunikationen via IP-adress fortfarande fungerar. Det gör det lättare att avgöra om problemet bara gäller DNS eller hela nätverket. Därefter bör /etc/resolv.conf, systemd-resolved, NetworkManager, DHCP och VPN-inställningar kontrolleras systematiskt. Målet är inte bara en tillfällig lösning, utan också att förstå vilken komponent som faktiskt styr DNS på systemet.