Sådan spyles DNS Cache i OS X Yosemite med discoveryutil

Nogle Mac-brugere kan støde på situationer, hvor de skal spyle DNS-cache i OS X for at en navneserver skal kunne løses korrekt, eller at en vis DNS-adresseændring bliver bemærket af deres enkelte computer. Dette er især relevant for systemadministratorer, netværksadministratorer og webudviklere, men der er sikkert situationer, hvor andre brugere måske skal dumpe og nulstille DNS-caches, som om en bruger har ændret filen / etc / hosts og de har brug for ændringerne at træde i kraft uden at genstarte Mac'en.

Longtime Mac-brugere vil vide, at nulstilling af DNS-cache er ændret i næsten alle versioner af Mac OS X, og OS X Yosemite er ikke anderledes, sandsynligvis på grund af DiscoverID, der erstatter mDNSResponder, og derefter skifter tilbage til mDNSResponder igen. Uanset at flushing DNS cache i Yosemite forbliver en terminal kommando, men det adskiller sig lidt afhængigt af den nøjagtige udgivelse, du bruger af OS, og det giver dig faktisk mulighed for at rydde enten Multicast DNS eller Unicast DNS eller begge dele. Du vil sandsynligvis vil rydde begge for god størrelse, hvis du forsøger at nulstille alle DNS-caches på Mac.

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

Fra OS X 10.10.4, der går videre til 10.10.5, inklusiv 10.11, har Apple dræbt discoveryd og har erstattet det (eller rettere vendt tilbage til) mDNSResponder. For at rydde DNS caches i OS X Yosemite 10.10.4 og 10.11 El Capitan, og formodentlig fremad, er kommandostrengen som følger:

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

Denne kommando spyler alle DNS caches til OS X 10.10.4+.

Longtime Mac-brugere kan huske at kommandostrengen er dybest set, hvad der fungerede i udgivelsen forud for Yosemite. Når det er sagt, vil tidligere versioner af OS X Yosemite før 10.10.4 bruge en anden kommandostreng, der diskuteres nedenfor.

Rydning af DNS-caches i OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)

Du skal bruge Terminal til at nulstille cachen, du kan finde Terminal-appen i / Programmer / Hjælpeprogrammer / eller starte den med Spotlight. For at helt fjerne alle DNS-caches i den nyeste version af OS X skal du målrette både MDNS (Multicast DNS) og UDNS (Unicast DNS) med to forskellige kommandoer.

Ryd MDNS Cache

sudo discoveryutil mdnsflushcache

Tryk tilbage og indtast administratorpassordet, når det bliver bedt om det.

Ryd UDNS Cache

sudo discoveryutil udnsflushcaches

Igen skal du trykke på retur og indtaste administratoradgangskoden, når du bliver bedt om det. Bemærk, at cacher er flertallet med sidstnævnte kommando, en subtil men vigtig syntaksforskel.

Flush og Reset alle DNS Caches i OS X Yosemite

Du kan også stryge ovenstående to kommandoer sammen, hvis du vil, følgende vil endda mundtligt annoncere, når cacherne er blevet ryddet:

sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed

Faktisk MDNS og UDNS caches er forskellige, men jeg har fundet ud af, at for funktionelle DNS cache til faktisk at rydde i OS X Yosemite begge kommandoer er nødvendige. Det er helt muligt, at du kun skal rydde den ene eller den anden til dine egne behov.

For dem der undrer OS X Yosemite har gjort væk 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.

Kontrol af DNS Cache Detaljer i OS X Yosemite

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

Få UDNS cachestatistik:

sudo discoveryutil udnscachestats

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

sudo discoveryutil mdnscachestats

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

UDNS Cache Stats: Cached 962 of 1750

Hvis du kører disse kommandoer før og efter at køre flushcache-variationerne, finder du, at de skal nulstilles til 0-poster cache, som sådan:

MDNS Cache Stats: lo0: Cached 0 of 2000

Hvordan ved du, om det ændrede sig?

Når du har spylt cache, hvis du vil afgøre, om en navneserver eller IP faktisk er ændret, kan du bruge kommandoen 'grave' med webadressen som sådan:

dig osxdaily.com

grave ligner nslookup, bortset fra at det har bedre output og nogle få detaljer inkluderet, inkluderet spørgetid, den indstillede DNS-server bruges til at få adgang til domænet og en tidsstempel, som alle kan være værdifulde ved fejlfinding af navneserverproblemer. Hvis spørgsmålet for denne tid opstår som træg, skal du for eksempel bruge et værktøj som namebench til at finde en hurtigere DNS-server til dig, ofte Google DNS eller OpenDNS.

Kendskab til et andet DNS-cache-trick til de nyeste versioner af OS X? Lad os vide i kommentarerne.