Är din internet -surfupplevelse långsam på din Linux -enhet, eller är de webbplatser du besöker föråldrade eller fel webbplats helt? Låt oss diskutera Flushing DNS -cachen på Linux och hur du vet om du verkligen behöver.
Vad är DNS Caches?
Använder din dator en lokal DNS -cache?
Granska din DNS -cache
Hur man rengör DNS -cachen på Linux
Hur man spolar DNSMASQ -cachen på Linux
Spolad, med framgång
Vad är DNS Caches?
De domännamntjänst är den bit av magi som konverterar namn till siffror. Det tar enhetsnätverksnamn och webbplatsnamn och letar upp sina IP -adresser. Nätverket kan sedan använda IP -adressen för att korrekt dirigera trafik till dessa enheter eller webbplatser.
Dessa uppslag, kända som förfrågningar , händer inte omedelbart . Det finns en liten, begränsad tidsperiod. Internet-DNS-förfrågningar kan kräva frågeställare DNS-servrar, rotnamnsservrar, domänservrar på toppnivå och auktoritativa namnservrar. DNS -förfrågningar är snabba, men för att göra dem snabbare fortfarande cachas svaren på de senaste DNS -förfrågningarna på DNS -föregångsservrarna.
Om svaret på en DNS -begäran finns i föregångsserverens cache, behöver inga ytterligare servrar kontaktas. Svaret skickas tillbaka från föregångsserverens cache. På liknande sätt upprätthålls en liten cache av din bredbandsrouter hemma. Om du ber om en lokal nätverksenhet som använder sitt nätverksenhetsnamn anger din router IP -adressen. Det kan också cache -svar som den har fått från externa DNS -servrar.
Vanligtvis är nätverk och Linux -datorer konfigurerade för att använda externa DNS -tjänster, antingen tillhandahållna av din internetleverantör eller av en gratis tjänst som Openendns eller Google DNS . Det finns goda skäl till varför Vissa människor driver sin egen DNS -server , men de flesta av oss inte. Men din Linux -dator - även om den inte kör en DNS -server - kan eventuellt cache DNS -begäran.
Problemet med att använda cachade data är det hela beror på antagandet att ingen av de cachade detaljerna har förändrats sedan de cachade. Om detaljerna har ändrats kommer informationen du får att vara föråldrad.
Om en cache -post eller hela cachen blir korrupt får du i bästa fall flagnande prestanda och säkerhetssårbarheter i värsta fall. Det är när du vill undersöka "spolning" eller rensa DNS -cachen.
Använder din dator en lokal DNS -cache?
Några av våra testdatorer hade lokala DNS -cachar påslagen, och andra hade avstängd. Det var av på vår Manjaro 21 dator, men den aktiverades som standard på Fedora 37 och Ubuntu 22.10 .
För att avgöra om din Linux -dator cachar DNS -förfrågningar, använd
är aktiv
alternativet för
systemctl
kommando. Daemonen som hanterar DNS -cachen är Systemd Network Name Resolution Manager, känd som
systemd-upplöst
.
Om svaret är "aktivt" äger DNS -cachning. Om svaret är "inaktivt" är det inte. På den här datorn är den aktiv. Vi kan använda
resolvektl
Kommando med statistikalternativet för att se hur många poster som finns i cachen.
Vi kan se att det finns 330 poster i DNS -cachen på den här datorn.
Granska din DNS -cache
Att granska DNS -cache -posterna är inte en förutsättning för att spola cachen, och om du inte har något intresse av att göra det kan du Hoppa över hela steget . Ibland kan det dock vara informativt. Du kan se förvrängda poster som indikerar korruption, eller så kan du se felmeddelanden relaterade till enhetens adressering av problem i ditt nätverk.
Nu finns det inte ett enkelt sätt att se dessa poster. Vi kan göra det men måste vara lite kreativa.
Usr1
eller
användardefinierad signal nummer ett
, är en
signal
som kan skickas av
döda
och
döda alla
kommandon. Denna signal har ingen fördefinierad betydelse. Applikationer är fria att ignorera denna signal eller reagera på vilket sätt som utvecklarna har implementerat.
De
systemd-upplöst
Daemon reagerar på
Usr1
Genom att skriva sin cache till systemloggarna. Vi kan sedan använda
journal
Kommando för att filtrera bort DNS -posterna.
Vi kommer att använda
döda alla
beordra med
Usr1
Att skicka signalen till
systemd-upplöst
demon. Observera att även om vi använder
döda alla
kommando,
systemd-upplöst
Daemon fortsätter att springa. Detta är inte en avslutande signal som vi skickar.
Nu kommer vi att använda
journal
kommando med
-u
(filtrera efter
systemd
enhet) alternativet för att extrahera loggposter som har genererats av
systemd-upplöst
. Vi kommer att omdirigera den ut till en textfiler som kallas "dns.txt."
Vi kommer att använda
de
mindre
filvare
För att se innehållet i filen.
Du kommer att kunna hitta de cachade mappningarna mellan domännamn och IP -adresser genom att bläddra och söka igenom texten.
Vi kan se en post för Google som har en IP -adress på 216.58.212.196. Du kan kontrollera det genom att sätta IP -adressen i en webbläsare. Du bör se hemsidan för Google Search.
Hur man rengör DNS -cachen på Linux
Spola cachen tar bort alla poster och startar insamlingsprocessen ännu en gång. Om det finns några tar detta tvång bort felaktiga och korrupta poster från cachen.
Kommandot är enkelt; vi använder
resolvektl
med
flush-cachar
alternativ.
Vi är tyst tillbaka till kommandoraden. För att bekräfta att något faktiskt har hänt kommer vi att kontrollera DNS -cachestatistiken igen.
Vi kan se att cachestorleken tappas till noll. Det kommer att öka med tiden när det ackumuleras nya poster.
Hur man spolar DNSMASQ -cachen på Linux
De
dnsmasq
Applikation tillhandahåller en DNS -cache och en DHCP -server. Det är populärt bland användare som vill köra sin egen DNS -server, särskilt på
icke-systeminstallationer
.
Spola
dnsmasq
DNS -cache är enkelt. Vi måste skicka
Sugap
signal, som berättar för
dnsmasq
Daemon för att effektivt återinitialisera. Att göra det rensar sin DNS -cache. För att skicka signalen använder vi
döda alla
kommando med
-Hup
flagga och applikationens namn.
Spolad, med framgång
Naturligtvis, om din dator inte cachar alls, finns det inget du behöver kontrollera.
Om det är Caching DNS -förfrågningar men allt fungerar bra kan du också ignorera det. Men om du upplever långsamma eller sporadiska webbsidesuppdateringar när du surfar på webben eller ser fel webbsidor helt, är det förmodligen en bra tid att rensa din DNS -cache.