Linux kan nie DNS oplos nie: Oorsake en oplossings

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.8 werk, maar ping google.com misluk
  • Pakketbestuurders soos apt, dnf, yum of pacman werk nie reg nie
  • Die fout Temporary failure in name resolution verskyn

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.conf handmatig 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.

Leave a Reply

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde word met * aangedui