Як очистити кеш DNS в OS X Yosemite за допомогою discoveryutil

Зміст:

Anonim

Деякі користувачі Mac можуть зіткнутися з ситуаціями, коли їм потрібно очистити DNS-кеш в OS X, щоб сервер імен міг належним чином вирішити, або щоб певна зміна адреси DNS була помічена їхнім окремим комп’ютером. Це особливо актуально для системних адміністраторів, мережевих адміністраторів і веб-розробників, але, звичайно, є ситуації, коли іншим користувачам також може знадобитися зробити дамп і скинути кеші DNS, наприклад, якщо користувач змінив файл /etc/hosts і їм потрібні зміни щоб вступити в силу без перезавантаження Mac.

Довгі користувачі Mac знатимуть, що скидання кешу DNS змінилося майже в кожній версії Mac OS X, і OS X Yosemite нічим не відрізняється, ймовірно, через те, що Discoveryd замінив mDNSResponder, а потім знову перейшов на mDNSResponder ще раз. Незважаючи на це, очищення кешу DNS у Йосеміті залишається командою терміналу, але вона дещо відрізняється залежно від конкретної версії ОС, яку ви використовуєте, і фактично дозволяє очистити або 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 (багатоадресний DNS) і UDNS (одноадресний DNS) за допомогою двох різних команд.

Очистити кеш MDNS

sudo discoveryutil mdnsflushcache

Натисніть Return і введіть пароль адміністратора, коли буде запропоновано.

Очистити кеш UDNS

sudo discoveryutil udnsflushcaches

Знову натисніть клавішу повернення та введіть пароль адміністратора, коли буде запропоновано. Зауважте, що кеші є множиною з останньою командою, що є тонкою, але важливою синтаксичною різницею.

Очистити та скинути всі 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? Дайте нам знати в коментарях.

Як очистити кеш DNS в OS X Yosemite за допомогою discoveryutil