O que realmente é o mDNSResponder
O mDNSResponder é um daemon do sistema integrado no macOS e assinado pela Apple. Não é malware, não é um extra, e não é algo que tenha instalado: vem com o sistema operativo e inicia-se automaticamente.
Faz duas tarefas distintas, e confundi-las é a origem da maior parte da confusão à volta dele. A primeira é multicast DNS e descoberta de serviços: este é o Bonjour da Apple, a tecnologia que permite ao Mac encontrar impressoras, recetores AirPlay, Chromecasts, discos partilhados, acessórios HomeKit e outros Macs na rede local sem qualquer configuração manual. Este tráfego é enviado para um endereço multicast na porta UDP 5353, que é a porta padrão do mDNS.
A segunda tarefa é a que a maior parte das explicações salta: no macOS, o mDNSResponder é também o resolvedor DNS de todo o sistema. Quando qualquer aplicação no Mac precisa de converter um nome de anfitrião num endereço IP, o pedido é normalmente tratado pelo mDNSResponder em nome dessa app, em vez de ser tratado pela própria app.
As duas tarefas correm no mesmo processo. Por isso, quando vê o mDNSResponder ocupado, está a ver o resultado combinado da descoberta na rede local e de cada consulta de nomes que o Mac faz.
Por que parece que ele contacta tantos hosts
Esta é a parte que alarma as pessoas, e tem uma explicação banal. Como o mDNSResponder resolve nomes em nome de outros processos, praticamente todas as pesquisas DNS do seu Mac parecem originar-se no mDNSResponder, e não na app que realmente queria o endereço.
O seu navegador a carregar uma página com uma dúzia de recursos de terceiros, o seu cliente de email a verificar contas, um atualizador em segundo plano, uma app de chat a reconectar-se: nada disso aparece como tal numa vista de DNS. Tudo aparece como o mDNSResponder a falar com os servidores DNS que configurou. Do exterior, um único processo parece estar interessado numa lista enorme e em constante mudança de domínios.
Esse único facto explica a maior parte da suspeita. Ver o mDNSResponder contactar muitos hosts não significa que o mDNSResponder esteja a fazer algo suspeito. Ele é um proxy. A atividade pertence ao software que pediu a pesquisa; o mDNSResponder é apenas o componente que a executa.
Também explica porque é que o processo raramente se cala. Um Mac moderno tem um zumbido de fundo constante de software a fazer check-in: serviços de sincronização, notificações push, verificações de atualização, telemetria de apps que instalou. Cada um deles precisa primeiro de resolução de nomes, e tudo isso passa pelo mesmo daemon.
O mDNSResponder é seguro, e como verificar isso você mesmo
O mDNSResponder é uma parte legítima do macOS. Não há um historial significativo de que seja disfarce para algo malicioso, e num Mac a funcionar normalmente deve esperar ver exatamente uma instância dele em execução.
Não precisa de acreditar nisso só por fé. No Monitor de Atividade, selecione o processo e abra o inspetor para ver os respetivos detalhes, incluindo o caminho para o executável a partir do qual foi iniciado. Os daemons do sistema da Apple vivem dentro de diretórios protegidos do sistema, não na sua pasta pessoal, Transferências ou Applications. Um processo com o nome mDNSResponder, mas a correr a partir de uma localização invulgar, seria motivo para investigação: o nome em si não prova nada.
A verificação mais forte é a assinatura de código. O macOS inclui a ferramenta codesign, e executar uma verificação sobre o caminho do binário em execução mostrará a autoridade que o assinou. Os próprios componentes do sistema da Apple são assinados pela Apple. Em versões recentes do macOS, os ficheiros do sistema também ficam num volume de sistema selado e só de leitura, o que torna adulterar o binário real consideravelmente mais difícil do que era antes.
Mais um teste de bom senso: atividade elevada do mDNSResponder é normal, mas uso sustentado e alto de CPU durante horas não é. Normalmente é um sintoma de outra coisa na sua rede ou no seu Mac, que é o que a secção seguinte aborda.
Consertando alta CPU ou atividade constante na rede
Quando o mDNSResponder se comporta mesmo mal, a causa está quase sempre fora dele. Os suspeitos habituais: uma rede local ocupada com muito tráfego Bonjour, uma impressora ou NAS a anunciar-se de forma agressiva, VPN ou software DNS de terceiros em conflito com o resolvedor do sistema, deteção de portal cativo numa rede de hotel ou café, ou uma única app no seu Mac a fazer pesquisas em loop apertado.
Resolva por ordem de esforço. Primeiro, desligue e volte a ligar o Wi-Fi, ou desligue-se da rede por instantes, isto limpa um número surpreendente de estados transitórios. Se isso não ajudar, reinicie, porque um reinício repõe o daemon e tudo o que lhe está a alimentar. Se o problema só acontecer numa rede, a variável é a rede, não o seu Mac: experimente outra para confirmar e depois veja o que se está a anunciar aí. Se instalou recentemente um cliente VPN, uma ferramenta de filtragem DNS ou qualquer outra coisa que instale uma extensão de rede, desativá-la temporariamente dir-lhe-á rapidamente se é o gatilho. Se o problema o acompanhar entre redes e sobreviver a um reinício, suspeite de uma app específica e comece por fechar, uma a uma, as apps instaladas ou atualizadas recentemente.
O que não deve fazer é bloqueá-lo. Nunca bloqueie o mDNSResponder numa firewall. Como é o resolvedor de todo o sistema, bloqueá-lo impede a resolução de nomes em todo o Mac: navegadores, Mail, a App Store, atualizações de software e praticamente tudo o resto que toque na rede vão falhar, normalmente com erros confusos que não apontam de volta para a regra da firewall que adicionou. É um dos poucos processos em que bloquear causa muito mais estrago do que o tráfego que pretendia impedir.
Se o seu objetivo real é reduzir o ruído da rede local, foque-se nas funcionalidades e não no resolvedor. Desligar o recetor AirPlay, a partilha de impressora, a partilha de ficheiros e outros serviços dependentes de Bonjour que não usa reduz o que o seu Mac anuncia e para o qual escuta, sem quebrar o DNS. Essa é a alavanca certa.
Descobrindo qual aplicativo realmente acionou uma busca
A consequência da resolução centralizada é um problema de atribuição. Se estiver a observar ligações ao nível do sistema, uma grande parte da atividade DNS interessante é rotulada como mDNSResponder, e não consegue saber, só por essa etiqueta, se o domínio foi pedido pelo seu navegador, por um atualizador em segundo plano, ou por uma app que liga discretamente para casa.
Responder a isso exige uma ferramenta que observe ligações por processo e mapeie a atividade de volta para a app de origem, em vez de para o daemon que fez a pesquisa. É essa lacuna que o NetMute foi criado para fechar: mostra tráfego em tempo real por app e por processo, e mantém registos de domínios por app: que domínios uma aplicação contactou, quando, e quanta informação foi movida. Em vez de um único daemon ocupado, obtém uma visão por app do que o seu Mac está realmente a contactar.
A partir daí, a resposta é direcionada. A firewall por app do NetMute permite bloquear uma aplicação específica com um clique, ou aplicar uma regra temporária com expiração automática quando só quer silenciar algo por algum tempo. Os perfis de rede permitem que as regras sejam diferentes em casa, no escritório e em redes não confiáveis, e o Tracker Shield cobre uma lista de mais de 1.100 domínios de trackers conhecidos. Nada disso implica interferir com o próprio mDNSResponder: deixa o resolvedor em paz e atua sobre a app que estava a gerar os pedidos, que é a única correção que não quebra o resto do seu Mac.