Als Linux lijkt te beschikken over een werkende internetverbinding, maar websites niet openen, of als toegang via een IP-adres wel werkt maar via een domeinnaam niet, dan ligt het probleem vaak bij DNS-resolutie. DNS heeft als taak domeinnamen zoals example.com om te zetten naar echte IP-adressen. Als dit proces faalt, kan het netwerk nog actief lijken, maar normaal internetgebruik wordt dan sterk beperkt.
Veelvoorkomende symptomen
- De browser meldt dat de server niet kan worden gevonden
ping 8.8.8.8werkt, maarping google.commislukt- Pakketbeheerders zoals
apt,dnf,yumenpacmanwerken niet goed - De foutmelding
Temporary failure in name resolutionverschijnt
Wat moet je als eerste controleren?
Bepaal eerst of het probleem het hele netwerk treft of alleen DNS.
ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route
Als 8.8.8.8 wel antwoord geeft maar google.com niet, wijst dat sterk op een DNS-probleem. Als zelfs IP-adressen niet bereikbaar zijn, ligt de oorzaak waarschijnlijk bij Wi-Fi, de netwerkinterface, de gateway of routing.
Belangrijkste oorzaken
1. Verkeerde configuratie in /etc/resolv.conf
Op veel Linux-systemen worden DNS-servergegevens opgeslagen in /etc/resolv.conf. Als daar geen geldige nameserver staat, kunnen domeinnamen niet worden opgelost.
cat /etc/resolv.conf
Voorbeeld:
nameserver 8.8.8.8
nameserver 1.1.1.1
Als het bestand leeg is of naar een verkeerde lokale DNS verwijst, ontstaat het probleem. Op moderne Linux-systemen wordt dit bestand echter vaak automatisch aangemaakt door NetworkManager of systemd-resolved, waardoor handmatige wijzigingen kunnen worden overschreven.
2. Probleem met systemd-resolved
Op systemen zoals Ubuntu beheert systemd-resolved vaak de DNS-resolutie en gebruikt het 127.0.0.53 als lokale resolver. Als deze dienst stopt, kan DNS ophouden te werken.
systemctl status systemd-resolved
resolvectl status
Bij problemen kun je de dienst opnieuw starten:
sudo systemctl restart systemd-resolved
3. NetworkManager past DNS niet correct toe
Op Linux-desktops haalt NetworkManager vaak DNS-informatie op via DHCP. Als het netwerkprofiel beschadigd is of een herverbinding mislukt, worden de juiste DNS-servers mogelijk niet toegepast.
nmcli dev show | grep DNS
nmcli connection show
Start het indien nodig opnieuw:
sudo systemctl restart NetworkManager
4. Invloed van VPN, proxy of firewall
Een VPN kan DNS-verzoeken via een verkeerde route sturen, en een firewall kan poort 53 blokkeren. In zulke gevallen lijkt het netwerk te werken, maar domeinnamen worden niet opgelost.
5. Beschadigde of verouderde DNS-cache
Als de lokale cache beschadigd of verouderd is, kunnen sommige domeinen niet meer werken. Op systemen met systemd-resolved of nscd kan het helpen om de cache te legen.
sudo resolvectl flush-caches
Praktische stappen voor probleemoplossing
Stap 1: Test rechtstreeks tegen een publieke DNS
nslookup google.com 8.8.8.8
dig google.com @8.8.8.8
Als dit werkt, is de externe DNS waarschijnlijk in orde en zit het probleem lokaal.
Stap 2: Stel tijdelijk een publieke DNS in
sudo sh -c 'printf "nameserver 8.8.8.8\nnameserver 1.1.1.1\n" > /etc/resolv.conf'
Dit is slechts een tijdelijke oplossing. Na een herstart of opnieuw verbinden kan het bestand weer veranderen. Voor een permanente oplossing moet de configuratie van NetworkManager, netplan of systemd-resolved worden aangepast.
Stap 3: Controleer netplan op Ubuntu
sudo nano /etc/netplan/*.yaml
Voorbeeld:
nameservers:
addresses: [8.8.8.8,1.1.1.1]
Pas daarna de wijziging toe:
sudo netplan apply
Stap 4: Vraag DHCP-gegevens opnieuw op
sudo dhclient -r
sudo dhclient
Als de DHCP-server onjuiste DNS-gegevens heeft verstrekt, kan dit helpen.
Nuttige opdrachten voor controle
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
Zo voorkom je dat het probleem terugkomt
- Beperk je niet tot alleen handmatig bewerken van
/etc/resolv.conf - Begrijp of DNS wordt beheerd door DHCP, NetworkManager of systemd-resolved
- Controleer DNS-instellingen na het instellen van een VPN
- Op servers is het beter om vaste DNS-servers duidelijk in te stellen
Conclusie
Wanneer Linux DNS-namen niet kan oplossen, is de belangrijkste eerste stap om te controleren of communicatie via een IP-adres nog werkt. Daarmee kun je snel bepalen of het probleem alleen bij DNS ligt of bij het hele netwerk. Controleer daarna systematisch /etc/resolv.conf, systemd-resolved, NetworkManager, DHCP en VPN-instellingen. Het doel is niet alleen een tijdelijke oplossing, maar ook begrijpen welk onderdeel op het systeem DNS daadwerkelijk beheert.