Denne artikel handler om at skylle DNS på Ubuntu. Men for at forstå hvorfor det er nødvendigt, skal du først forstå, hvordan DNS fungerer, og lidt om DNS-caching.
Sådan fungerer DNS:
Simpelthen kan DNS tænkes på en tabel med domænenavne og IP-adresser som angivet nedenfor:
Domænenavn | IP-adresse |
linuxhint.com | 1.2.3.4 |
support.linuxhint.com | 3.4.5.7 |
google.com | 8.9.5.4 |
www.google.com | 8.9.5.4 |
Vær opmærksom på, at ingen af dataene i denne tabel er reelle. Det er bare med henblik på demonstration. Så lad os vende tilbage til vores oprindelige emne.
Lad os sige, når du besøger det, linuxhint.com, browseren stiller DNS-serveren (indstillet på din computer) et par spørgsmål.
Din computer: Hej, ved du det linuxhint.com?
DNS-server: Nej det gør jeg ikke. Men DNS-serveren 4.4.4.4 kan vide om det.
Din computer: Kontakter DNS-serveren 4.4.4.4 og spørger, ”hej, ved du det linuxhint.com?”
DNS-server 2: Ja jeg gør. Hvad kan jeg gøre for dig?
Din computer: Jeg har brug for IP-adressen på linuxhint.com. Må jeg få den?
DNS-server 2: Ingen frygt, det er derfor, jeg er her. Her er linuxhint's IP-adresse.com 1.2.3.4.
Din computer: Du er en livredder. Tak.
Nu opretter din computer forbindelse til 1.2.3.4 og dit yndlingswebsted linuxhint.com dukker op. Det var virkelig svært, var det ikke?
Næste gang du besøger linuxhint.com, det samme sker igen.
DNS-cache:
I det tidligere afsnit så du, hvordan et domænenavn løses til IP-adresser. Denne rejse gennem DNS-serverne tager et stykke tid, og indtil den er færdig, og et domænenavn kan løses til IP-adresser, kan du ikke oprette forbindelse til noget websted eller server på internettet.
For at løse dette problem bruges DNS-caching. Her, når du forsøger at løse et domænenavn til IP-adresser for første gang, tager det lidt længere tid. Men når først domænenavnet er løst, gemmes IP-adresserne på din egen computer. Så næste gang du skal løse det samme domænenavn, tager det ikke så lang tid, som det gjorde første gang.
Problemer med DNS-caching:
DNS-caching er god. Hvorfor er DNS-caching problematisk? Nå er internetverdenen så dynamisk, at DNS-oplysningerne konstant ændrer sig. Det kan have ændret sig et par gange, selv mens jeg skriver denne artikel.
Så hvad sker der, når DNS-oplysningerne ændres, og vi bruger de DNS-oplysninger, der er cache på vores egen computer? Nå, det er her, det bliver problematisk. I så fald bruger vi de gamle DNS-oplysninger. Vi kan have problemer med forbindelse, falske omdirigeringsproblemer og mange andre problemer.
For at løse dette problem skal vi slette cachen (også kaldet DNS-skylning) og genopbygge den. Dette er emnet for denne artikel.
Kontrol af, om DNS-caching er aktiveret:
Du kan kontrollere, om DNS-caching er aktiveret meget let på Ubuntu. Du skal have nslookup eller grave værktøj installeret på din computer for at dette skal fungere.
nslookup eller grave kommando er muligvis ikke tilgængelig som standard på din Ubuntu-maskine. Men du kan nemt installere det fra Ubuntu's officielle pakkeopbevaringssted.
Opdater først APT-pakkeopbevaringscachen med følgende kommando:
$ sudo apt opdatering
APT-pakkeopbevaringscachen skal opdateres.
Installer nu nslookup og grave med følgende kommando:
$ sudo apt installere dnsutils
Tryk nu y og tryk derefter på
nslookup og grave kommandoer skal nu være tilgængelige.
Kør følgende kommando for at teste, om caching er aktiveret:
$ nslookup google.comSom du kan se, er den DNS-server, der bruges til at løse domænenavnet, 127.0.0.53, som er en loopback IP-adresse. Så DNS-caching er aktiveret. Hvis du har deaktiveret det, skal DNS-serveren være alt andet end 127.0.0.x.
Du kan kontrollere det samme med grave kommando såvel som følger:
$ dig google.comSom du kan se, bruges loopback IP-adresser også som DNS-serveradresser her. Så DNS-caching er aktiveret.
Flushing DNS på Ubuntu 18.04 LTS:
Ubuntu 18.04 LTS bruger en lokal DNS-server og cachelagrer DNS-forespørgsler som standard. Ubuntu 18.04 LTS anvendelser systemd til dette formål.
Du kan køre følgende kommando for at kontrollere, hvor mange DNS-poster der er cache, og mange andre oplysninger om Ubuntu 18.04 LTS:
$ sudo systemd-løse - statistik
Som du kan se, er oplysninger om DNS-cache angivet i det markerede afsnit på skærmbilledet nedenfor.
For at skylle DNS-cachen på Ubuntu 18.04 LTS, kør følgende kommando:
$ sudo systemd-resolution - flush-caches
Du kan også genstarte systemd-løst tjeneste til at skylle DNS-cacherne på Ubuntu 18.04 LTS.
For at genstarte systemd-løst service, kør følgende kommando:
$ sudo systemctl genstart systemd-løst
Som du kan se, ryddes cacherne.
$ sudo systemd-løse - statistik
Flushing DNS Cache på Ubuntu 16.04:
På Ubuntu 16.04 LTS, DNS-cache er ikke aktiveret som standard. Men nogle applikationer kan lide binde, dnsmasq, nscd etc. kan cache det.
Hvis du bruger nscd for cache-DNS-forespørgsler, så kan du skylle DNS-cachen ved blot at genstarte nscd service.
Du kan genstarte nscd service på Ubuntu 16.04 LTS for at skylle DNS-cacher med følgende kommando:
$ sudo systemctl genstart nscdHvis du bruger dnsmasq til cache af DNS og derefter genstarte dnsmasq service med følgende kommando skal skylle DNS-cachen.
$ sudo systemctl genstart dnsmasqSå sådan skyder du DNS-cache på Ubuntu 18.04 LTS og 16.04 LTS. Tak, fordi du læste denne artikel.