Как очистить кеш DNS в OS X Yosemite с помощью discoveryutil
Оглавление:
- Очистить кэш DNS в OS X Yosemite 10.10.4 и OS X 10.10.5
- Очистка кеша DNS в OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)
Некоторые пользователи Mac могут столкнуться с ситуациями, когда им необходимо сбросить кеш DNS в OS X для правильного разрешения сервера имен или для того, чтобы некоторые изменения DNS-адреса были замечены их отдельным компьютером. Это особенно актуально для системных администраторов, сетевых администраторов и веб-разработчиков, но, безусловно, бывают ситуации, когда другим пользователям также может понадобиться сбрасывать и сбрасывать кэши DNS, например, если пользователь изменил файл /etc/hosts и ему нужны изменения. вступить в силу без перезагрузки Mac.
Постоянные пользователи Mac знают, что сброс кеша DNS изменился почти во всех версиях Mac OS X, и OS X Yosemite ничем не отличается, вероятно, из-за обнаруженной замены mDNSResponder, а затем обратного переключения на mDNSResponder. еще раз. Несмотря на это, очистка кеша DNS в Yosemite остается командой терминала, но она немного отличается в зависимости от того, какой именно выпуск ОС вы используете, и на самом деле позволяет очистить либо многоадресный DNS, либо одноадресный 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 отказалась от Discoverd и заменила его (точнее, вернулась обратно) mDNSResponder. Таким образом, чтобы очистить кеши DNS в OS X Yosemite 10.10.4 и 10.11 El Capitan и, предположительно, более поздних версиях, командная строка выглядит следующим образом:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder; say cache flushed
Эта команда очищает все кеши 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 (многоадресный DNS) и UDNS (одноадресный DNS) с помощью двух разных команд.
Очистить кэш MDNS
sudo discoveryutil mdnsflushcache
Нажмите «Ввод» и введите пароль администратора при запросе.
Очистить кэш UDNS
sudo discoveryutil udnsflushcaches
Снова нажмите клавишу возврата и введите пароль администратора по запросу. Обратите внимание, что caches стоит во множественном числе с последней командой, что представляет собой тонкую, но важную разницу в синтаксисе.
Очистить и сбросить все кэши 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: Кэшировано 962 из 1750
Если вы запустите эти команды до и после запуска вариантов flushcache, вы обнаружите, что они должны быть сброшены до 0 записей кеша, например:
Статистика кэша MDNS: lo0: Кэшировано 0 из 2000
Как узнать, изменилось ли оно?
После очистки кеша, если вы хотите определить, действительно ли изменился сервер имен или IP-адрес, вы можете использовать команду 'dig' с URL-адресом, например:
dig osxdaily.com
dig похож на nslookup, за исключением того, что он имеет лучший вывод и включает несколько дополнительных сведений, включая время запроса, установленный DNS-сервер, используемый для доступа к домену, и метку времени, все из которых можно полезно при устранении неполадок сервера имен. Кстати, если время запроса для этого оказывается медленным, вам следует использовать такой инструмент, как namebench, чтобы найти для вас более быстрый DNS-сервер, часто это Google DNS или OpenDNS.
Знаете еще один трюк с кэшем DNS для последних версий OS X? Дайте нам знать об этом в комментариях.