Kako isprazniti DNS predmemoriju u OS X Yosemite pomoću discoveryutila

Sadržaj:

Anonim

Neki korisnici Maca mogu se susresti sa situacijama u kojima moraju isprazniti DNS predmemoriju u OS X kako bi poslužitelj imena pravilno razriješio ili kako bi njihovo osobno računalo primijetilo neku promjenu DNS adrese. Ovo je osobito relevantno za sistemske administratore, mrežne administratore i web programere, ali svakako postoje situacije u kojima će i drugi korisnici možda trebati napraviti dump i poništiti DNS predmemorije, primjerice ako je korisnik izmijenio datoteku /etc/hosts i trebaju promjene stupiti na snagu bez ponovnog pokretanja Maca.

Dugogodišnji korisnici Maca znat će da se resetiranje DNS predmemorije promijenilo u gotovo svakoj verziji Mac OS X-a, a OS X Yosemite nije ništa drugačiji, vjerojatno zbog otkrića koje je zamijenilo mDNSResponder, a zatim se vratilo na mDNSResponder opet opet. Bez obzira na to, ispiranje DNS predmemorije u Yosemiteu ostaje naredba terminala, ali malo se razlikuje ovisno o točnom izdanju OS-a koje koristite, i zapravo vam omogućuje brisanje ili Multicast DNS-a ili Unicast DNS-a, ili oboje. Vjerojatno ćete htjeti obrisati oboje za dobru mjeru ako pokušavate resetirati sve DNS predmemorije na Macu.

Očisti DNS predmemoriju u OS X Yosemite 10.10.4 & OS X 10.10.5

Od OS X 10.10.4 koji prelazi na 10.10.5, uključujući 10.11, Apple je odbacio discoveryd i zamijenio ga (ili bolje rečeno, vratio se na) mDNSResponder. Dakle, za brisanje DNS predmemorije u OS X Yosemite 10.10.4 i 10.11 El Capitan, a vjerojatno i nadalje, naredbeni niz je sljedeći:

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

Ta naredba ispire sve DNS predmemorije za OS X 10.10.4+.

Dugogodišnji korisnici Maca možda se sjećaju da je naredbeni niz u osnovi radio u izdanju prije Yosemitea. Uz navedeno, ranije verzije OS X Yosemite prije 10.10.4 koristit će drugačiji naredbeni niz o kojem se govori u nastavku.

Brisanje DNS predmemorije u OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)

Morat ćete upotrijebiti Terminal za resetiranje predmemorije, aplikaciju Terminal možete pronaći u /Applications/Utilities/ ili je pokrenuti pomoću Spotlighta. Za potpuno brisanje svih DNS predmemorija u najnovijoj verziji OS X, ciljajte i MDNS (Multicast DNS) i UDNS (Unicast DNS) s dvije različite naredbe.

Očisti MDNS predmemoriju

sudo discoveryutil mdnsflushcache

Pritisnite Return i unesite lozinku administratora kada se to od vas zatraži.

Očisti UDNS predmemoriju

sudo discoveryutil udnsflushcaches

Opet, pritisnite return i unesite administratorsku lozinku kada se to od vas zatraži. Imajte na umu da je predmemorija množina s potonjom naredbom, što je suptilna, ali važna razlika u sintaksi.

Ispraznite i poništite sve DNS predmemorije u OS X Yosemite

Možete spojiti gornje dvije naredbe ako želite, sljedeće će čak usmeno objaviti kada su predmemorije očišćene:

sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed

Uistinu, MDNS i UDNS predmemorije su različite, ali otkrio sam da su obje naredbe potrebne za stvarno brisanje funkcionalne DNS predmemorije u OS X Yosemite. Sasvim je moguće da samo trebate očistiti jedno ili drugo za vlastite potrebe.

Za one koji se pitaju, OS X Yosemite je ukinuo mDNSResponder, tako da nema potrebe za zaustavljanjem tog mDNSResponder procesa za osvježavanje DNS predmemorije kao u prethodnim verzijama Mac OS X.

Provjera pojedinosti DNS predmemorije u OS X Yosemite

Ako mijenjate ili ćete promijeniti DNS, a želite vidjeti neke detalje o tome što je trenutno predmemorirano, možete koristiti sljedeće naredbe:

Dohvati statistiku UDNS predmemorije:

sudo discoveryutil udnscachestats

Također možete dohvatiti pojedinosti o multicast DNS cacheu sa sljedećim:

sudo discoveryutil mdnscachestats

Oboje će ponuditi pojedinosti o broju DNS unosa koji su spremljeni u predmemoriju, nudeći izvješće koje bi trebalo izgledati ovako:

UDNS Cache Statistika: Predmemorirano 962 od 1750

Ako pokrenete te naredbe prije i nakon pokretanja varijacija flushcachea, vidjet ćete da bi se trebale vratiti na 0 unosa predmemorije, ovako:

MDNS Cache Statistika: lo0: Predmemorirano 0 od 2000

Kako znaš je li se promijenilo?

Nakon što ispraznite predmemoriju, ako želite utvrditi jesu li poslužitelj imena ili IP stvarno promijenjeni, možete upotrijebiti naredbu 'dig' s URL-om ovako:

dig osxdaily.com

dig je sličan nslookupu, osim što ima bolji izlaz i uključeno je nekoliko detalja, uključeno vrijeme upita, postavljeni DNS poslužitelj koji se koristi za pristup domeni i vremenska oznaka, a sve to može biti vrijedan pri rješavanju problema s poslužiteljem imena. Usput, ako se vrijeme upita za ovo pokaže kao sporo, trebali biste koristiti alat kao što je namebench da pronađete brži DNS poslužitelj za vas, često Google DNS ili OpenDNS.

Znate li za još jedan trik DNS predmemorije za najnovije verzije OS X? Javite nam u komentarima.

Kako isprazniti DNS predmemoriju u OS X Yosemite pomoću discoveryutila