Jak vyprázdnit mezipaměť DNS v OS X Yosemite pomocí discoveryutilu
Obsah:
- Vymazat mezipaměť DNS v OS X Yosemite 10.10.4 a OS X 10.10.5
- Vymazání mezipaměti DNS v OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)
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ářů.