Is uw browse -ervaring op internet langzaam op uw Linux -apparaat, of zijn de websites die u verouderd of de verkeerde website bezoekt? Laten we het doorspoelen van de DNS -cache op Linux bespreken en hoe u weet of u dat echt moet.
Wat zijn DNS -caches?
Gebruikt uw computer een lokale DNS -cache?
Uw DNS -cache bekijken
Hoe de DNS -cache op Linux te wissen
Hoe de DNSMASQ -cache op Linux te spoelen
Gespoeld, met succes
Wat zijn DNS -caches?
De Domeinnaamservice is het stukje magie dat namen omzet in cijfers. Er zijn apparaatnetwerknamen en websitenamen nodig en zoekt hun IP -adressen op. Het netwerk kan vervolgens het IP -adres gebruiken om verkeer correct naar die apparaten of sites te leiden.
Deze look-ups, bekend als verzoeken ,, gebeuren niet onmiddellijk . Er is een kleine, eindige periode bij betrokken. Internet DNS-aanvragen vereisen mogelijk het vragen van DNS-servers van de voorloper, rootnaamservers, domeinservers op topniveau en gezaghebbende naamservers. DNS -aanvragen zijn snel, maar om ze nog sneller te maken, worden de antwoorden op recente DNS -aanvragen in de cache op de DNS -voorloper -servers in de cache gecacheerd.
Als het antwoord op een DNS -verzoek wordt gevonden in de cache van de voorloperserver, hoeven geen verdere servers te worden gecontacteerd. Het antwoord wordt teruggestuurd vanuit de cache van de voorloperserver. Evenzo wordt een kleine cache thuis onderhouden door uw breedbandrouter. Als u om een lokaal netwerkapparaat vraagt met behulp van de naam van het netwerkapparaat, biedt uw router het IP -adres. Het kunnen ook reacties cache die het heeft ontvangen van externe DNS -servers.
Meestal zijn netwerken en Linux -computers geconfigureerd om externe DNS -services te gebruiken, ofwel geleverd door uw internetprovider of door een gratis service zoals zoals Opendns of Google DNS . Er zijn goede redenen waarom Sommige mensen runnen hun eigen DNS -server , maar de meesten van ons niet. Uw Linux -computer - zelfs als deze geen DNS -server uitvoert - kan Optioneel DNS -aanvraagresultaten optioneel cache.
Het probleem met het gebruik van cache -gegevens is dat het hele ding is gebaseerd op de veronderstelling dat geen van de in de cache is veranderd sinds ze in de cache zijn gesteld. Als de details zijn gewijzigd, is de informatie die u ontvangt verouderd.
Als een cache -invoer of de hele cache corrupt wordt, ontvangt u in het beste geval schilferige prestaties en in het slechtste geval beveiligingskwetsbaarheden. Dat is wanneer u wilt kijken naar "doorspoelen" of het wissen van de DNS -cache.
Gebruikt uw computer een lokale DNS -cache?
Sommige van onze testcomputers hadden lokale DNS -caches ingeschakeld, en anderen hadden het uitgeschakeld. Het was op onze Manjaro 21 computer, maar het is standaard ingeschakeld Fedora 37 En Ubuntu 22.10 .
Gebruik de DNS -aanvragen om te bepalen of uw Linux -computer de cache van DNS
is actief
optie van de
Systemctl
commando. De daemon die de DNS -cache beheert, is de Systemd Network Name Resolution Manager, bekend als
Systemd-opgelost
.
Als de reactie "actief" is, vindt DNS -caching plaats. Als de reactie "inactief" is, is het dat niet. Op deze specifieke computer is het actief. We kunnen de
resolvectl
Commando met de statistiekenoptie om te zien hoeveel records er in de cache zijn.
We kunnen zien dat er 330 vermeldingen zijn in de DNS -cache van deze computer.
Uw DNS -cache bekijken
Het bekijken van de DNS -cache -ingangen is geen voorwaarde voor het spoelen van de cache, en als u geen interesse hebt om dit te doen, kunt u Sla deze hele stap over . Soms kan het echter informatief zijn. Misschien ziet u gecodeerde vermeldingen die corruptie aangeven, of mogelijk ziet u foutmeldingen met betrekking tot apparaten die problemen op uw netwerk aanpakken.
Nu is er geen eenvoudige manier om deze inzendingen te zien. We kunnen het doen, maar moeten een beetje creatief zijn.
USR1
, of
Door de gebruiker gedefinieerde signaalnummer één
, is een
signaal
die kan worden verzonden door de
doden
En
Killall
commando's. Dit signaal heeft geen vooraf gedefinieerde betekenis. Toepassingen zijn vrij om dit signaal te negeren of om op welke manier dan ook te reageren die de ontwikkelaars hebben geïmplementeerd.
De
Systemd-opgelost
Daemon reageert op
USR1
door zijn cache naar de systeemlogboeken te schrijven. We kunnen dan de
Journalctl
Commando om de DNS -vermeldingen uit te filteren.
We zullen de
Killall
opdrachten
USR1
Om het signaal naar de
Systemd-opgelost
demon. Merk op dat hoewel we de
Killall
commando, het
Systemd-opgelost
Daemon blijft rennen. Dit is geen beëindigingssignaal dat we verzenden.
Nu zullen we de
Journalctl
commando met de
-u
(filteren op
Systemd
eenheid) optie om de logboekitems te extraheren die zijn gegenereerd door
Systemd-opgelost
. We leiden die uitvoer door naar een tekstbestanden genaamd "DNS.TXT."
We zullen gebruiken
de
minder
Bestandviewer
Om de inhoud van het bestand te bekijken.
U kunt de cache -toewijzingen tussen domeinnamen vinden en IP -adressen door te scrollen en door de tekst te zoeken.
We kunnen een item voor Google zien met een IP -adres van 216.58.212.196. U kunt dat controleren door het IP -adres in een webbrowser te plaatsen. U zou de startpagina van Google Search moeten zien.
Hoe de DNS -cache op Linux te wissen
Door de cache te spoelen verwijdert alle vermeldingen en start het verzamelproces nogmaals. Als dat er is, verwijdert dit met geweld onjuiste en corrupte vermeldingen van de cache.
Het commando is eenvoudig; we gebruiken
resolvectl
met de
spoelkaches
keuze.
We worden stilletjes teruggekeerd naar de opdrachtregel. Om te bevestigen dat er iets is gebeurd, zullen we de DNS -cachesatistieken opnieuw controleren.
We kunnen zien dat de cachegrootte op nul wordt gedropt. Het zal in de loop van de tijd toenemen als het nieuwe inzendingen ophoopt.
Hoe de DNSMASQ -cache op Linux te spoelen
De
DnSMASQ
Toepassing biedt een DNS -cache en een DHCP -server. Het is populair bij gebruikers die hun eigen DNS -server willen uitvoeren, vooral op
niet-systeeminstallaties
.
Spoelen van de
DnSMASQ
DNS -cache is eenvoudig. We moeten de
Zuchten
signaal, dat vertelt
DnSMASQ
Daemon om effectief opnieuw te initialiseren. Hierdoor wordt zijn DNS -cache gewist. Om het signaal te verzenden, gebruiken we de
Killall
commando met de
-Hup
vlag en de naam van de applicatie.
Gespoeld, met succes
Natuurlijk, als uw computer helemaal niet in de cache is, is er niets dat u moet controleren.
Als het DNS -aanvragen in cache cachen, maar alles werkt prima, kun je het ook negeren. Maar als u trage of sporadische webpagina -updates ervaart wanneer u op internet bladert of de verkeerde webpagina's helemaal ziet, is het waarschijnlijk een goed moment om uw DNS -cache te wissen.