Slik tømmer du DNS-buffer i OS X Yosemite med discoveryutil

Innholdsfortegnelse:

Anonim

Noen Mac-brukere kan støte på situasjoner der de trenger å tømme DNS-buffer i OS X for at en navneserver skal løses på riktig måte, eller for at en DNS-adresseendring skal bli lagt merke til av deres individuelle datamaskin. Dette er spesielt relevant for systemadministratorer, nettverksadministratorer og webutviklere, men det er absolutt situasjoner der andre brukere kan trenge å dumpe og tilbakestille DNS-cacher også, for eksempel hvis en bruker har endret filen /etc/hosts og de trenger endringene for å tre i kraft uten å starte Mac-en på nytt.

Longtime Mac-brukere vil vite at tilbakestilling av DNS-buffer har endret seg i nesten alle versjoner av Mac OS X, og OS X Yosemite er ikke annerledes, sannsynligvis på grunn av oppdagelsen som erstattet mDNSResponder, og deretter byttet tilbake til mDNSResponder men igjen. Uansett forblir tømming av DNS-cache i Yosemite en terminalkommando, men den varierer litt avhengig av den eksakte versjonen du bruker av operativsystemet, og den lar deg faktisk tømme enten Multicast DNS eller Unicast DNS, eller begge deler. Du vil sannsynligvis slette begge deler hvis du prøver å tilbakestille alle DNS-cacher på Mac-en.

Tøm DNS-buffer i OS X Yosemite 10.10.4 & OS X 10.10.5

Fra OS X 10.10.4 og videre til 10.10.5, inkludert 10.11, har Apple droppet discoveryd og har erstattet den (eller rettere sagt, gått tilbake til) mDNSResponder. For å tømme DNS-cacher i OS X Yosemite 10.10.4 og 10.11 El Capitan, og antagelig fremover, er kommandostrengen som følger:

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

Den kommandoen tømmer alle DNS-cacher for OS X 10.10.4+.

Lange Mac-brukere husker kanskje at kommandostrengen i utgangspunktet er det som fungerte i utgivelsen før Yosemite. Med det sagt vil tidligere versjoner av OS X Yosemite før 10.10.4 bruke en annen kommandostreng som er omt alt nedenfor.

Sletting av DNS-cacher i OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)

Du må bruke terminalen for å tilbakestille cachen, du kan finne Terminal-appen i /Applications/Utilities/ eller starte den med Spotlight. For å tømme alle DNS-cacher i den nyeste versjonen av OS X, målrett både MDNS (Multicast DNS) og UDNS (Unicast DNS) med to forskjellige kommandoer.

Tøm MDNS-buffer

sudo discoveryutil mdnsflushcache

Trykk på retur og skriv inn administratorpassordet når du blir bedt om det.

Tøm UDNS-buffer

sudo discoveryutil udnsflushcaches

Igjen, trykk retur og skriv inn administratorpassordet når du blir bedt om det. Merk at cacher er flertall med den sistnevnte kommandoen, en subtil, men viktig syntaksforskjell.

Tyll og tilbakestill alle DNS-cacher i OS X Yosemite

Du kan også sette sammen de to kommandoene ovenfor hvis du vil, følgende vil til og med kunngjøre muntlig når cachene er tømt:

sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcache;si flushed

MDNS- og UDNS-cacher er faktisk forskjellige, men jeg har funnet ut at for at funksjonell DNS-buffer faktisk skal tømmes i OS X Yosemite, er begge kommandoene nødvendige. Det er fullt mulig at du bare trenger å fjerne det ene eller det andre for dine egne behov.

For de som lurer, OS X Yosemite har sluttet med mDNSResponder, så det er ikke nødvendig å drepe den mDNSResponder-prosessen for å oppdatere DNS-cacher som i tidligere versjoner av Mac OS X.

Sjekker DNS-bufferdetaljer i OS X Yosemite

Hvis du skal endre eller skal endre DNS, og du vil se noen detaljer om hva som er bufret, kan du bruke følgende kommandoer:

Få UDNS-bufferstatistikk:

sudo discoveryutil udnscachestats

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

sudo discoveryutil mdnscachestats

Begge disse vil gi detaljer om antall DNS-oppføringer som er bufret, og gir en rapport som skal se slik ut:

UDNS Cache-statistikk: Bufret 962 av 1750

Hvis du kjører disse kommandoene før og etter å ha kjørt flushcache-variasjonene, vil du finne at de bør tilbakestilles til 0 oppføringsbuffer, slik:

MDNS Cache-statistikk: lo0: Bufret 0 av 2000

Hvordan vet du om det endret seg?

Etter at du har tømt hurtigbufferen, hvis du vil finne ut om en navneserver eller IP faktisk har endret seg, kan du bruke 'dig'-kommandoen med URL-en slik:

dig osxdaily.com

dig ligner på nslookup, bortsett fra at den har bedre utdata og noen få flere detaljer inkludert, inkludert spørretid, den angitte DNS-serveren som ble brukt for å få tilgang til domenet, og et tidsstempel, som alle kan verdifull ved feilsøking av navneserverproblemer. Forresten, hvis spørretiden for dette viser seg som treg, bør du bruke et verktøy som namebench for å finne en raskere DNS-server for deg, ofte Google DNS eller OpenDNS.

Kjenner du til et annet DNS-cache-triks for de nyeste versjonene av OS X? Gi oss beskjed i kommentarfeltet.

Slik tømmer du DNS-buffer i OS X Yosemite med discoveryutil