As Linux wys dat die internetverbinding nog bestaan, maar webwerwe nie oopmaak nie, of as verbinding via ‘n IP-adres werk maar nie via ‘n domeinnaam nie, is daar dikwels ‘n probleem met DNS-oplossing. DNS se taak is om domeinname soos example.com na werklike IP-adresse om te skakel. As hierdie proses misluk, kan die netwerk nog aktief lyk, maar normale internetgebruik werk nie behoorlik nie.
Algemene simptome
- Die blaaier wys dat die bediener nie gevind kan word nie
ping 8.8.8.8werk, maarping google.commisluk- Pakketbestuurders soos
apt,dnf,yumofpacmanwerk nie reg nie - Die fout
Temporary failure in name resolutionverskyn
Wat om eerste na te gaan
Die eerste stap is om te bepaal of die hele netwerk geraak word, of net DNS.
ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route
As 8.8.8.8 bereikbaar is, maar google.com nie, dui dit sterk op ‘n DNS-probleem. As selfs IP-adresse nie bereikbaar is nie, lê die fout waarskynlik by Wi-Fi, die netwerkkaart, die gateway of routing.
Belangrikste oorsake
1. Verkeerde /etc/resolv.conf-instelling
Op baie Linux-stelsels word DNS-bedienerinligting in /etc/resolv.conf gestoor. As daar nie ‘n geldige nameserver daarin is nie, sal domeinnaam-oplossing nie werk nie.
cat /etc/resolv.conf
Voorbeeld:
nameserver 8.8.8.8
nameserver 1.1.1.1
As die lêer leeg is of na ‘n verkeerde plaaslike DNS wys, sal die resolusie misluk. Op moderne Linux-stelsels word hierdie lêer egter dikwels outomaties deur NetworkManager of systemd-resolved gegenereer, so handmatige veranderinge kan oorskryf word.
2. Probleem met systemd-resolved
Op stelsels soos Ubuntu bestuur systemd-resolved dikwels DNS-oplossing en gebruik 127.0.0.53 as plaaslike resolver. As hierdie diens stop, sal DNS nie werk nie.
systemctl status systemd-resolved
resolvectl status
Indien nodig, herbegin die diens:
sudo systemctl restart systemd-resolved
3. NetworkManager pas DNS nie korrek toe nie
Op Linux-desktops kry NetworkManager dikwels DNS-inligting via DHCP. As die netwerkprofiel beskadig is of ‘n herverbinding misluk, kan die korrekte DNS nie toegepas word nie.
nmcli dev show | grep DNS
nmcli connection show
Herbegin dit indien nodig:
sudo systemctl restart NetworkManager
4. Invloed van VPN, proxy of firewall
‘n VPN kan DNS-navrae langs die verkeerde roete stuur, en ‘n firewall kan poort 53 blokkeer. In so ‘n geval lyk die netwerk gedeeltelik gesond, maar domeinname word nie opgelos nie.
5. DNS-kas is beskadig of verouderd
As die plaaslike DNS-kas foutief of verouderd is, mag sekere domeine nie werk nie. Op stelsels met systemd-resolved of nscd kan dit help om die kas leeg te maak.
sudo resolvectl flush-caches
Praktiese stappe om dit reg te stel
Stap 1: Vra direk by ‘n publieke DNS
nslookup google.com 8.8.8.8
dig google.com @8.8.8.8
As dit werk, is die eksterne DNS waarskynlik in orde en lê die probleem by die plaaslike opstelling.
Stap 2: Stel tydelik ‘n publieke DNS in
sudo sh -c 'printf "nameserver 8.8.8.8\nnameserver 1.1.1.1\n" > /etc/resolv.conf'
Dit is slegs ‘n tydelike oplossing. Ná ‘n herbegin of herverbinding kan die lêer weer verander word. Vir ‘n permanente oplossing moet NetworkManager, netplan of systemd-resolved reg ingestel word.
Stap 3: Gaan netplan op Ubuntu na
sudo nano /etc/netplan/*.yaml
Voorbeeld:
nameservers:
addresses: [8.8.8.8,1.1.1.1]
Pas daarna die verandering toe:
sudo netplan apply
Stap 4: Verkry DHCP-inligting weer
sudo dhclient -r
sudo dhclient
As die DHCP-bediener verkeerde DNS-data gegee het, kan dit die probleem oplos.
Nuttige opdragte vir diagnose
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
Hoe om herhaling te voorkom
- Moenie net
/etc/resolv.confhandmatig wysig en daar stop nie - Verstaan of DNS deur DHCP, NetworkManager of systemd-resolved bestuur word
- Kontroleer DNS ná die opstel van ‘n VPN
- Op bedieners is dit beter om vaste DNS-bedieners duidelik te stel
Gevolgtrekking
Wanneer Linux nie DNS kan oplos nie, is dit belangrik om eers te kyk of IP-adresse nog werk. Dit maak dit makliker om te bepaal of net DNS geraak word of die hele netwerk. Daarna moet /etc/resolv.conf, systemd-resolved, NetworkManager, DHCP en VPN-instellings stelselmatig nagegaan word. Die beste oplossing is nie net ‘n tydelike herstel nie, maar om te verstaan watter komponent DNS werklik op jou stelsel beheer.