Что такое на самом деле mDNSResponder
mDNSResponder — это системный демон, встроенный в macOS и подписанный Apple. Это не вредоносное ПО, не дополнение и не то, что ты установил — он поставляется вместе с операционной системой и запускается автоматически.
Он выполняет две разные задачи, и путаница между ними — источник большей части недоразумений вокруг него. Первая — мультикаст DNS и обнаружение сервисов — это Bonjour Apple, технология, которая позволяет твоему Mac находить принтеры, приемники AirPlay, Chromecast, общие диски, аксессуары HomeKit и другие Mac в локальной сети без ручной настройки. Этот трафик отправляется на мультикаст-адрес по UDP-порту 5353, который является стандартным портом mDNS.
Вторая задача — та, которую большинство объяснений пропускает: на macOS mDNSResponder также является системным DNS-резолвером. Когда любое приложение на твоем Macу нужно преобразовать имя хоста в IP-адрес, запрос обычно обрабатывается mDNSResponder от имени этого приложения, а не самим приложением.
Обе задачи выполняются внутри одного процесса. Поэтому, когда ты видишь, что mDNSResponder занят, ты видишь объединенный результат обнаружения в локальной сети и каждого поиска имени, который выполняет твой Mac.
Почему кажется, что он контактирует так со многими хостами
Это часть, которая вызывает тревогу у людей, и у нее есть простое объяснение. Поскольку mDNSResponder разрешает имена от имени других процессов, практически все DNS-запросы твоего Mac выглядят так, как будто исходят от mDNSResponder, а не от приложения, которое на самом деле запрашивало адрес.
Твой браузер загружает страницу с десятком сторонних ресурсов, твой почтовый клиент проверяет аккаунты, фоновый обновлятор, чат-приложение переподключается — ни одно из них не отображается как самостоятельное в DNS-обзоре. Они показываются как mDNSResponder, общающийся с твоими настроенными DNS-серверами. Со стороны кажется, что один процесс интересуется огромным и постоянно меняющимся списком доменов.
Этот факт объясняет большую часть подозрений. Видеть, как mDNSResponder контактирует с множеством хостов, не означает, что он делает что-то подозрительное. Это прокси. Активность принадлежит тому программному обеспечению, которое запрашивало поиск; mDNSResponder — это просто компонент, который его выполняет.
Также это объясняет, почему процесс редко становится тихим. Современный Mac постоянно работает в фоновом режиме — службы синхронизации, push-уведомления, проверки обновлений, телеметрия из установленных приложений. Каждое из них нуждается в разрешении имен, и все это проходит через один и тот же демон.
Безопасен ли mDNSResponder и как проверить его самостоятельно
mDNSResponder — это законная часть macOS. Нет значительной истории того, что он маскируется под что-то вредоносное, и на нормально работающем Mac вы должны видеть ровно один его экземпляр.
Вам не нужно верить на слово. В Activity Monitor выберите процесс и откройте инспектор, чтобы увидеть его детали, включая путь к исполняемому файлу, из которого он был запущен. Системные демоны Apple находятся внутри защищённых системных каталогов, а не в вашей домашней папке, Downloads или Applications. Процесс с именем mDNSResponder, запущенный из необычного места, — это то, что стоит проверить — само по себе имя ничего не доказывает.
Более надёжная проверка — это подпись кода. macOS поставляется с инструментом codesign, и проверка подписи по пути запущенного бинарного файла покажет вам, кто подписал его. Собственные системные компоненты Apple подписаны Apple. В последних версиях macOS системные файлы также находятся на запечатанном, только для чтения системном томе, что значительно усложняет подделку настоящего бинарного файла.
Ещё одна проверка: высокая активность mDNSResponder — это нормально, но продолжительное высокое использование CPU в течение нескольких часов — нет. Обычно это симптом чего-то другого в вашей сети или на вашем Mac, что и описано в следующем разделе.
Исправление высокой загрузки CPU или постоянной сетевой активности
Когда mDNSResponder действительно ведёт себя неправильно, причина почти всегда вне его. Обычно это: загруженная локальная сеть с интенсивным Bonjour-трафиком, принтер или NAS, активно объявляющие о себе, VPN или стороннее DNS-программное обеспечение, конфликтующее с системным резолвером, captive-portal на отеле или в кафе, или одно приложение на вашем Mac, которое выполняет поиск в цикле.
Работайте по порядку усилий. Сначала отключите и снова включите Wi-Fi или временно отключитесь от сети — это очищает удивительно много временных состояний. Если это не помогает, перезагрузите; перезапуск сбрасывает демона вместе со всем, что его обслуживает. Если проблема возникает только в одной сети, причина — в сети, а не в вашем Mac: попробуйте другую сеть, чтобы подтвердить, и посмотрите, что там объявляется. Если недавно вы устанавливали VPN-клиент, инструмент фильтрации DNS или что-то ещё, что устанавливает сетевое расширение, временно отключите его — это быстро покажет, является ли оно триггером. Если проблема переходит между сетями и сохраняется после перезагрузки, подозревайте конкретное приложение и начните с выхода из недавно установленных или обновлённых приложений по одному.
Что не стоит делать — это блокировать его. Никогда не блокируйте mDNSResponder в файрволе. Так как он системный резолвер, блокировка остановит разрешение имён для всего Mac — браузеры, Mail, Mac App Store, обновления программного обеспечения и всё остальное, что использует сеть, — и обычно вызывает запутанные ошибки, которые не указывают на правило файрвола, которое вы добавили. Это один из немногих процессов, при блокировке которого наносится гораздо больше вреда, чем от трафика, который он должен был остановить.
Если ваша цель — снизить локальный сетевой трафик, сосредоточьтесь на функциях, а не на резолвере. Отключите AirPlay receiver, принтеры, файловый обмен и другие службы, зависящие от Bonjour, — это уменьшит объявление и прослушивание вашего Mac без нарушения DNS. Это правильный подход.
Выяснение того, какое приложение действительно инициировало запрос
Последствие централизованного разрешения — это проблема атрибуции. Если вы отслеживаете соединения на системном уровне, большая часть интересной DNS-активности помечена как mDNSResponder, и вы не можете определить по этой метке, запрошен ли домен вашим браузером, фоновым обновлением или приложением, которое тихо звонит домой.
Для этого нужен инструмент, который отслеживает соединения по процессам и отображает активность, связывая её с исходным приложением, а не с демоном, который выполнял поиск. Именно это NetMute предназначен делать: он показывает трафик в реальном времени по приложению и по процессу, а также ведёт журналы на уровне доменов — какие домены приложение связывало, когда и сколько данных передало. Вместо одного загруженного демона вы получаете картину того, с кем реально общается ваш Mac.
Далее ответ становится целенаправленным. Встроенный в NetMute per-app firewall позволяет блокировать конкретное приложение одним кликом или применять временное правило с истекающим сроком действия, если нужно просто временно отключить что-то. Профили сети позволяют различать правила для дома, офиса и недоверенных сетей, а Tracker Shield покрывает список из более чем 1 100 известных доменов трекеров. Всё это не мешает mDNSResponder — вы оставляете резолвер в покое и действуете только на приложение, которое генерирует запросы, — это единственный способ, который не ломает остальные функции вашего Mac.