Глосарій/Процеси, які ви побачите

mDNSResponder

Також: Bonjour і DNS

Коротка відповідь

mDNSResponder — процес macOS, який перетворює кожне доменне імʼя на адресу. Це DNS-резолвер Mac, і він також забезпечує Bonjour, що без жодного налаштування знаходить принтери, динаміки AirPlay, спільні Mac та інші пристрої у вашій локальній мережі.

Коли будь-яка програма відкриває вебсайт чи підʼєднується до сервера, вона питає адресу в mDNSResponder. Він кешує відповіді, тож повторні запити миттєві. Він працює під власним системним обліковим записом _mdnsresponder, а не під вашим.

Його навантаження залежить від того, скільки імен шукається. Браузер із багатьма вкладками, VPN або завантажена локальна мережа з багатьма пристроями Bonjour дають йому більше роботи.

Чому mDNSResponder використовує процесор

Короткі сплески спричиняють серії запитів: багато нових вкладок, програма, що синхронізується з багатьма серверами, або пристрої, що приєднуються до мережі. Тривале навантаження зазвичай вказує на щось, що повторює запити в циклі, на VPN чи DNS-фільтр, що працюють неправильно, або на мережу, де оголошення Bonjour ніколи не припиняються.

Коли вебсайти не відкриваються за іменем, але працюють за адресою, або сайт змінив сервери, а Mac досі йде на старий, підозра падає на кеш.

Як очистити кеш DNS

Дві команди в Терміналі очищують кеш у нових версіях macOS і кажуть mDNSResponder перечитати дані; перезавантажувати Mac не потрібно.

  1. Відкрийте Термінал.
  2. Виконайте sudo dscacheutil -flushcache і введіть пароль, коли зʼявиться запит.
  3. Виконайте sudo killall -HUP mDNSResponder.

Як побачити, що робить mDNSResponder

Він працює під власним системним обліковим записом, тому Монітор активності приховує його, доки ви не попросите показати всі процеси. Термінал може показати обидві його роботи, DNS і Bonjour, по черзі.

  1. Відкрийте Монітор активності, виберіть Перегляд → Усі процеси і введіть mdns у поле пошуку. Ви побачите mDNSResponder під обліковим записом _mdnsresponder і mDNSResponderHelper під root.
  2. Стежте за «% процесора» на вкладці «Центральний процесор» і стовпцями пакетів на вкладці «Мережа». Короткі сплески — це нормально. Стабільне навантаження, коли ви не переглядаєте вебсторінки, варто перевірити.
  3. Щоб побачити, які DNS-сервери використовує Mac, відкрийте Термінал і виконайте scutil --dns. Resolver #1 перелічує сервери, що використовуються для більшості запитів, під nameserver[0], nameserver[1] і так далі.
  4. Щоб перевірити запит через сам mDNSResponder, виконайте dns-sd -G v4v6 apple.com. Команда виводить кожну адресу, щойно та надходить. Натисніть Control-C, щоб зупинити.
  5. Щоб побачити, що Bonjour знаходить у вашій мережі, виконайте dns-sd -B _services._dns-sd._udp local.. Команда перелічує типи служб, які оголошують пристрої навколо вас, як-от _airplay і _ipp для принтерів. Натисніть Control-C, щоб зупинити.

Нормальна робота mDNSResponder і ознаки проблеми

Нормально: майже нуль, із короткими сплесками, коли ви відкриваєте багато вкладок, підʼєднуєтеся до мережі або коли пристрій у мережі прокидається.

Варто перевірити: стабільне використання процесора чи мережі годинами або імена, які не розпізнаються в одній мережі, але працюють в іншій. Звичні причини:

  • VPN або DNS-фільтр, що додає власні резолвери й постійно їх змінює. scutil --dns показує додаткові резолвери з рядком domain, коли VPN надсилає деякі імена на власні сервери.
  • Програма чи скрипт, що в тісному циклі шукає імена, — часто той, що постійно повторює спроби дістатися недоступного сервера.
  • Завантажена локальна мережа, як-от в офісі чи спільній будівлі, де багато пристроїв оголошують себе через Bonjour.
  • Мережа, що роздає повільний DNS-сервер або такий, що не відповідає, тож запити чекають і повторюються.

DNS і Bonjour: дві роботи

Імена в інтернеті, як-от apple.com, ідуть на DNS-сервери, які задала ваша мережа або ви. Імена, що закінчуються на .local, як-от мережеве імʼя вашого Mac, ніколи не залишають локальної мережі: mDNSResponder напряму запитує пристрої навколо — це і є multicast DNS, що дав йому літеру m у назві.

Ось чому scutil --dns перелічує резолвери для local з позначкою mdns. Якщо до принтера чи спільного Mac можна дістатися за його іменем .local вдома, але не на роботі, то ці локальні оголошення блокує робоча мережа, а не інтернет.

Що питають люди

Що таке mDNSResponder на Mac?

Процес macOS, який перетворює доменні імена на адреси для всіх програм і забезпечує Bonjour, щоб знаходити принтери, динаміки AirPlay та інші пристрої у вашій мережі.

Чи можна завершити mDNSResponder?

macOS одразу запускає його знову, а поки його немає, жодна програма не може знайти адресу вебсайту. Щоб позбутися хибної відповіді, очистьте кеш DNS замість того, щоб завершувати процес.

Чому mDNSResponder хоче приймати вхідні зʼєднання?

Bonjour слухає, як інші пристрої оголошують себе в локальній мережі. Брандмауер macOS стандартно це дозволяє; якщо ваш брандмауер питає, дозвольте, і AirPlay, пошук принтерів та спільний екран працюватимуть далі.

Чи безпечний mDNSResponder?

Так. Він є частиною macOS, підписаний Apple і розташований у /usr/sbin/mDNSResponder. Він працює під власним обмеженим системним обліковим записом, а не від вашого імені чи від root.

Що таке mDNSResponderHelper?

Невеликий помічник mDNSResponder, що працює від root і виконує ті кілька завдань, які його обмежений обліковий запис не може виконати сам. Він є частиною macOS і зазвичай неактивний.

Повʼязане

Шукаєте щось краще за Монітор активності? Дивіться найкращі альтернативи Монітору активності для Mac або перегляньте усі терміни глосарію.