Как да изчистите DNS кеша в OS X Yosemite с discoveryutil

Съдържание:

Anonim

Някои потребители на Mac може да се сблъскат със ситуации, в които трябва да изчистят DNS кеша в OS X, за да може сървърът за имена да се разрешава правилно или някои промени в DNS адреса да бъдат забелязани от техния отделен компютър. Това е особено важно за системни администратори, мрежови администратори и уеб разработчици, но със сигурност има ситуации, в които други потребители също може да се наложи да изхвърлят и нулират DNS кеша, например ако потребител е променил файла /etc/hosts и те се нуждаят от промените за да влезе в сила без рестартиране на Mac.

Дългогодишните потребители на Mac ще знаят, че нулирането на DNS кеша се е променило в почти всяка версия на Mac OS X и OS X Yosemite не е по-различна, вероятно поради откритието, което заменя mDNSResponder и след това превключва обратно към mDNSResponder още веднъж. Независимо от това, изчистването на DNS кеша в Yosemite остава терминална команда, но се различава леко в зависимост от точното издание на операционната система, което използвате, и всъщност ви позволява да изчистите Multicast DNS или Unicast DNS, или и двете. Вероятно ще искате да изчистите и двете за добра мярка, ако се опитвате да нулирате всички DNS кешове на Mac.

Изчистване на DNS кеша в OS X Yosemite 10.10.4 & OS X 10.10.5

От OS X 10.10.4, преминавайки към 10.10.5, включително 10.11, Apple се отказа от discoveryd и го замени (или по-скоро се върна обратно към) mDNSResponder. По този начин, за да изчистите DNS кеша в OS X Yosemite 10.10.4 и 10.11 El Capitan и вероятно по-нататък, командният низ е както следва:

sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder;кажи, че кешът е прочистен

Тази команда изчиства всички DNS кешове за OS X 10.10.4+.

Дългогодишните потребители на Mac може би си спомнят, че командният низ е основно това, което работеше в изданието преди Yosemite. С това казано, по-ранните версии на OS X Yosemite преди 10.10.4 ще използват различен команден низ, обсъден по-долу.

Изчистване на DNS кеша в OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)

Ще трябва да използвате терминала, за да нулирате кеша, можете да намерите приложението терминал в /Applications/Utilities/ или да го стартирате с Spotlight. За да изчистите напълно всички DNS кешове в най-новата версия на OS X, насочете към MDNS (Multicast DNS) и UDNS (Unicast DNS) с две различни команди.

Изчистване на MDNS кеша

sudo discoveryutil mdnsflushcache

Натиснете връщане и въведете паролата на администратора, когато бъде поискана.

Изчистване на UDNS кеша

sudo discoveryutil udnsflushcaches

Отново натиснете return и въведете паролата на администратора, когато бъдете поискани. Имайте предвид, че кешовете са множествено число с последната команда, фина, но важна разлика в синтаксиса.

Прочистване и нулиране на всички DNS кешове в OS X Yosemite

Можете също така да свържете горните две команди заедно, ако искате, следното дори ще обяви устно, когато кеш паметта е изчистена:

sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed

Наистина MDNS и UDNS кешовете са различни, но открих, че за действително изчистване на функционалния DNS кеш в OS X Yosemite са необходими и двете команди. Напълно възможно е да трябва да изчистите само едното или другото за собствените си нужди.

За тези, които се чудят, OS X Yosemite премахна mDNSResponder, така че няма нужда да убивате този mDNSResponder процес, за да опресните DNS кешовете, както в предишните версии на Mac OS X.

Проверка на подробности за DNS кеша в OS X Yosemite

Ако променяте или възнамерявате да промените DNS и искате да видите някои подробности за това, което в момента се кешира, можете да използвате следните команди:

Вземете статистически данни за UDNS кеша:

sudo discoveryutil udnscachestats

Можете също така да извлечете подробности за мултикаст DNS кеша със следното:

sudo discoveryutil mdnscachestats

И двете ще предложат подробности относно броя на записите в DNS, които са кеширани, предлагайки отчет, който трябва да изглежда така:

UDNS Cache Stats: Кеширани 962 от 1750

Ако изпълните тези команди преди и след изпълнение на вариантите на flushcache, ще откриете, че те трябва да бъдат нулирани до кеш с 0 записа, така:

MDNS Cache Stats: lo0: Кеширано 0 от 2000

Как да разберете дали се е променило?

След като изчистите кеша, ако искате да определите дали сървърът за имена или IP действително са се променили, можете да използвате командата 'dig' с URL така:

dig osxdaily.com

dig е подобен на nslookup, с изключение на това, че има по-добър изход и включени още няколко подробности, включено време за заявка, зададен DNS сървър, използван за достъп до домейна, и клеймо за време, всички от които могат да бъдат ценен при отстраняване на проблеми със сървъра за имена. Между другото, ако времето за заявка за това се показва като бавно, трябва да използвате инструмент като namebench, за да намерите по-бърз DNS сървър за вас, често Google DNS или OpenDNS.

Знаете ли за друг трик за DNS кеширане за най-новите версии на OS X? Кажете ни в коментарите.

Как да изчистите DNS кеша в OS X Yosemite с discoveryutil