Sådan tømmes DNS-cache i OS X Yosemite med discoveryutil

Indholdsfortegnelse:

Anonim

Nogle Mac-brugere kan støde på situationer, hvor de er nødt til at tømme DNS-cache i OS X, for at en navneserver kan løses korrekt, eller for at nogle DNS-adresseændringer bliver bemærket af deres individuelle computer. Dette er især relevant for systemadministratorer, netværksadministratorer og webudviklere, men der er helt sikkert situationer, hvor andre brugere muligvis også skal dumpe og nulstille DNS-cacher, som hvis en bruger har ændret filen /etc/hosts, og de har brug for ændringerne for at træde i kraft uden at genstarte Mac'en.

Lange Mac-brugere vil vide, at nulstilling af DNS-cache har ændret sig i næsten alle versioner af Mac OS X, og OS X Yosemite er ikke anderledes, sandsynligvis på grund af opdagelsen, der erstatter mDNSResponder og derefter skifter tilbage til mDNSResponder endnu engang. Uanset hvad, forbliver tømning af DNS-cache i Yosemite en terminalkommando, men den adskiller sig lidt afhængigt af den nøjagtige udgivelse, du bruger af operativsystemet, og den giver dig faktisk mulighed for at rydde enten Multicast DNS eller Unicast DNS eller begge dele. Du vil sikkert gerne rydde begge for en god ordens skyld, hvis du forsøger at nulstille alle DNS-caches på Mac'en.

Ryd DNS-cache i OS X Yosemite 10.10.4 & OS X 10.10.5

Fra OS X 10.10.4 går videre til 10.10.5, inklusive 10.11, har Apple droppet discoveryd og har erstattet det (eller rettere sagt vendt tilbage til) mDNSResponder. For at rydde DNS-caches i OS X Yosemite 10.10.4 og 10.11 El Capitan og formodentlig fremefter er kommandostrengen som følger:

sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder;sig cache flushed

Den kommando tømmer alle DNS-caches til OS X 10.10.4+.

Lange Mac-brugere kan huske, at kommandostrengen dybest set er det, der fungerede i udgivelsen før Yosemite. Med det sagt vil tidligere versioner af OS X Yosemite før 10.10.4 bruge en anden kommandostreng, der er beskrevet nedenfor.

Sletning af DNS-cacher i OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)

Du skal bruge terminalen til at nulstille cachen, du kan finde Terminal-appen i /Applications/Utilities/ eller starte den med Spotlight. For fuldstændigt at rydde alle DNS-caches i den seneste version af OS X skal du målrette mod både MDNS (Multicast DNS) og UDNS (Unicast DNS) med to forskellige kommandoer.

Ryd MDNS-cache

sudo discoveryutil mdnsflushcache

Tryk på retur, og indtast administratoradgangskoden, når du bliver bedt om det.

Ryd UDNS-cache

sudo discoveryutil udnsflushcaches

Igen, tryk retur og indtast administratoradgangskoden, når du bliver bedt om det. Bemærk, at caches er flertal med den sidstnævnte kommando, en subtil, men vigtig syntaksforskel.

Skyl og nulstil alle DNS-cacher i OS X Yosemite

Du kan også sætte de to ovenstående kommandoer sammen, hvis du vil, følgende vil endda mundtligt meddele, når cachen er blevet ryddet:

sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;sige flushed

MDNS- og UDNS-caches er faktisk forskellige, men jeg har fundet ud af, at for at funktionel DNS-cache rent faktisk skal ryddes i OS X Yosemite er begge kommandoer nødvendige. Det er fuldt ud muligt, at du kun behøver at rydde det ene eller det andet til dine egne behov.

For dem, der undrer sig, har OS X Yosemite gjort op med mDNSResponder, så der er ingen grund til at dræbe den mDNSResponder-proces for at opdatere DNS-caches som i tidligere versioner af Mac OS X.

Tjekker DNS-cacheoplysninger i OS X Yosemite

Hvis du ændrer eller skal ændre DNS, og du vil se nogle detaljer om, hvad der i øjeblikket er cachelagret, kan du bruge følgende kommandoer:

Få UDNS-cachestatistik:

sudo discoveryutil udnscachestats

Du kan også hente detaljer om multicast DNS-cache med følgende:

sudo discoveryutil mdnscachestats

Begge disse vil give detaljer om antallet af DNS-poster, der er cachelagret, og tilbyde en rapport, der skulle se sådan ud:

UDNS Cachestatistik: Cached 962 af 1750

Hvis du kører disse kommandoer før og efter kørsel af flushcache-variationerne, vil du opdage, at de skal nulstilles til 0 indgange cache, som sådan:

MDNS Cachestatistik: lo0: Cached 0 af 2000

Hvordan ved du, om det ændrede sig?

Når du har tømt cachen, hvis du vil afgøre, om en navneserver eller IP faktisk har ændret sig, kan du bruge 'dig'-kommandoen med URL'en sådan:

dig osxdaily.com

dig ligner nslookup, bortset fra at det har bedre output og et par flere detaljer inkluderet, inkluderet forespørgselstid, den indstillede DNS-server, der bruges til at få adgang til domænet, og et tidsstempel, som alle kan værdifuld ved fejlfinding af navneserverproblemer. Forresten, hvis forespørgselstiden for dette viser sig at være træg, bør du bruge et værktøj som namebench til at finde en hurtigere DNS-server til dig, ofte Google DNS eller OpenDNS.

Kender du endnu et DNS-cache-trick til de nyeste versioner af OS X? Fortæl os det i kommentarerne.

Sådan tømmes DNS-cache i OS X Yosemite med discoveryutil