Jak vyprázdnit mezipaměť DNS v OS X Yosemite pomocí discoveryutilu

Obsah:

Anonim

Někteří uživatelé počítačů Mac mohou narazit na situace, kdy potřebují vyprázdnit mezipaměť DNS v OS X, aby názvový server správně fungoval, nebo aby si jejich jednotlivé počítače všimly nějaké změny adresy DNS. To je zvláště důležité pro systémové administrátory, síťové administrátory a webové vývojáře, ale určitě existují situace, kdy ostatní uživatelé mohou také potřebovat vypsat a resetovat mezipaměti DNS, například když uživatel upravil soubor /etc/hosts a potřebují změny. projeví se bez restartování Macu.

Dlouholetí uživatelé počítačů Mac budou vědět, že resetování mezipaměti DNS se změnilo v téměř každé verzi systému Mac OS X a OS X Yosemite se neliší, pravděpodobně kvůli objevu, který nahradil mDNSResponder a poté přešel zpět na mDNSResponder opět. Bez ohledu na to zůstává vyprázdnění mezipaměti DNS v Yosemite příkazem terminálu, ale mírně se liší v závislosti na přesné verzi operačního systému, kterou používáte, a ve skutečnosti vám umožňuje vymazat Multicast DNS nebo Unicast DNS nebo obojí. Pokud se na Macu pokoušíte resetovat všechny mezipaměti DNS, pravděpodobně budete chtít obě vymazat.

Vymazat mezipaměť DNS v OS X Yosemite 10.10.4 a OS X 10.10.5

Od OS X 10.10.4, přechod na 10.10.5, včetně 10.11, Apple opustil discoveryd a nahradil jej (nebo spíše se vrátil zpět) mDNSResponder. Pro vymazání mezipaměti DNS v OS X Yosemite 10.10.4 a 10.11 El Capitan a pravděpodobně i novějších je tedy příkazový řetězec následující:

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

Tento příkaz vymaže všechny mezipaměti DNS pro OS X 10.10.4+.

Dlouholetí uživatelé Maců si možná vzpomínají, že příkazový řetězec je v podstatě to, co fungovalo ve verzi před Yosemite. Díky tomu budou starší verze OS X Yosemite před 10.10.4 používat jiný příkazový řetězec popsaný níže.

Vymazání mezipaměti DNS v OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)

K resetování mezipaměti budete muset použít Terminál. Aplikaci Terminál najdete v /Applications/Utilities/ nebo ji můžete spustit pomocí Spotlight. Chcete-li zcela vymazat všechny mezipaměti DNS v nejnovější verzi OS X, zacilte na MDNS (Multicast DNS) i UDNS (Unicast DNS) pomocí dvou různých příkazů.

Vymazat mezipaměť MDNS

sudo discoveryutil mdnsflushcache

Vraťte se a na požádání zadejte heslo správce.

Vymazat mezipaměť UDNS

sudo discoveryutil udnsflushcaches

Na požádání znovu stiskněte klávesu Return a zadejte heslo správce. Všimněte si, že cache je množné číslo s druhým příkazem, což je jemný, ale důležitý rozdíl v syntaxi.

Vypláchnout a resetovat všechny mezipaměti DNS v OS X Yosemite

Můžete také spojit dva výše uvedené příkazy dohromady, pokud chcete, následující dokonce slovně oznámí, když byly mezipaměti vymazány:

sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed

Vyrovnávací paměti MDNS a UDNS se skutečně liší, ale zjistil jsem, že aby se funkční mezipaměť DNS v OS X Yosemite skutečně vymazala, jsou nutné oba příkazy. Je zcela možné, že pro své vlastní potřeby potřebujete vyčistit pouze jedno nebo druhé.

Pro ty, kdo by se zajímali, OS X Yosemite zrušil mDNSResponder, takže není třeba zabíjet proces mDNSResponder, aby se obnovily mezipaměti DNS jako v předchozích verzích Mac OS X.

Kontrola podrobností mezipaměti DNS v OS X Yosemite

Pokud měníte nebo se chystáte změnit DNS a chcete vidět nějaké podrobnosti o tom, co je aktuálně uloženo v mezipaměti, můžete použít následující příkazy:

Získat statistiky mezipaměti UDNS:

sudo discoveryutil udnscachestats

Konkrétní údaje o mezipaměti DNS pro vícesměrové vysílání můžete také získat pomocí následujícího:

sudo discoveryutil mdnscachestats

Obojí nabídne podrobnosti o počtu záznamů DNS uložených v mezipaměti a nabídne zprávu, která by měla vypadat takto:

Statistiky mezipaměti UDNS: uloženo 962 z 1750

Pokud tyto příkazy spustíte před a po spuštění variací flushcache, zjistíte, že by měly být resetovány na mezipaměť 0 záznamů, například:

Statistiky mezipaměti MDNS: lo0: Mezipaměť 0 z 2000

Jak víte, že se změnil?

Po vyprázdnění mezipaměti, pokud chcete zjistit, zda se jmenný server nebo IP skutečně změnily, můžete použít příkaz 'dig' s URL takto:

dig osxdaily.com

dig je podobný nslookup, kromě toho, že má lepší výstup a obsahuje několik dalších podrobností, včetně času dotazu, nastaveného serveru DNS používaného pro přístup k doméně a časového razítka, to vše lze cenné při řešení problémů s jmenným serverem. Mimochodem, pokud se čas dotazu pro toto ukáže jako pomalý, měli byste použít nástroj jako namebench k nalezení rychlejšího DNS serveru, často Google DNS nebo OpenDNS.

Víte o dalším triku s mezipamětí DNS pro nejnovější verze OS X? Dejte nám vědět do komentářů.

Jak vyprázdnit mezipaměť DNS v OS X Yosemite pomocí discoveryutilu