Glossar/Prozesse, die du sehen wirst

mDNSResponder

Auch: Bonjour und DNS

Kurze Antwort

mDNSResponder ist der macOS-Prozess, der jeden Domainnamen in eine Adresse übersetzt. Er ist der DNS-Resolver des Mac und betreibt außerdem Bonjour, das Drucker, AirPlay-Lautsprecher, freigegebene Macs und andere Geräte in deinem lokalen Netzwerk ohne Einrichtung findet.

Öffnet eine App eine Website oder verbindet sich mit einem Server, fragt sie mDNSResponder nach der Adresse. Er speichert die Antworten zwischen, wiederholte Abfragen gehen also sofort. Er läuft unter einem eigenen Systemaccount, _mdnsresponder, nicht unter dir.

Seine Last folgt der Zahl der Namen, die nachgeschlagen werden. Ein Browser mit vielen Tabs, ein VPN oder ein belebtes lokales Netzwerk mit vielen Bonjour-Geräten geben ihm mehr zu tun.

Warum mDNSResponder CPU braucht

Kurze Spitzen entstehen durch Schübe von Abfragen: viele neue Tabs, eine App, die mit vielen Servern synchronisiert, oder Geräte, die dem Netzwerk beitreten. Anhaltende Last deutet meist auf etwas, das Abfragen in einer Schleife wiederholt, ein fehlerhaftes VPN oder einen DNS-Filter oder ein Netzwerk, in dem die Bonjour-Ankündigungen nie aufhören.

Laden Websites über den Namen nicht, über die Adresse aber schon, oder ist eine Website auf andere Server umgezogen und der Mac geht noch zum alten, steht der Cache unter Verdacht.

So leerst du den DNS-Cache

Zwei Befehle im Terminal leeren den Cache unter aktuellem macOS und lassen mDNSResponder neu laden, ganz ohne Neustart.

  1. Öffne das Terminal.
  2. Führe sudo dscacheutil -flushcache aus und gib dein Passwort ein, wenn du danach gefragt wirst.
  3. Führe sudo killall -HUP mDNSResponder aus.

So siehst du, was mDNSResponder tut

Er läuft unter einem eigenen Systemaccount, deshalb blendet die Aktivitätsanzeige ihn aus, bis du nach allen Prozessen fragst. Das Terminal kann seine zwei Aufgaben, DNS und Bonjour, einzeln zeigen.

  1. Öffne die Aktivitätsanzeige, wähle „Darstellung“ → „Alle Prozesse“ und gib mdns ins Suchfeld ein. Du siehst mDNSResponder unter dem Account _mdnsresponder und mDNSResponderHelper unter root.
  2. Beobachte „% CPU“ im Tab „CPU“ und die Paketspalten im Tab „Netzwerk“. Kurze Spitzen sind normal. Eine gleichmäßige Last, während du nicht surfst, ist einen Blick wert.
  3. Um zu sehen, welche DNS-Server der Mac nutzt, öffne das Terminal und führe scutil --dns aus. Unter „resolver #1“ stehen die Server für die meisten Abfragen, als nameserver[0], nameserver[1] und so weiter.
  4. Um eine Abfrage über mDNSResponder selbst zu testen, führe dns-sd -G v4v6 apple.com aus. Es gibt jede Adresse aus, sobald sie eintrifft. Mit ctrl-C beendest du die Ausgabe.
  5. Um zu sehen, was Bonjour in deinem Netzwerk findet, führe dns-sd -B _services._dns-sd._udp local. aus. Es listet die Arten von Diensten auf, die Geräte um dich herum ankündigen, etwa _airplay und _ipp für Drucker. Mit ctrl-C beendest du die Ausgabe.

Normale mDNSResponder-Last oder ein Problem

Normal: nahe null, mit kurzen Spitzen, wenn du viele Tabs öffnest, einem Netzwerk beitrittst oder ein Gerät im Netzwerk aufwacht.

Einen Blick wert: stundenlang gleichmäßige CPU- oder Netzwerklast, oder Namen, die in einem Netzwerk nicht aufgelöst werden, in einem anderen aber schon. Die üblichen Ursachen:

  • Ein VPN oder DNS-Filter, der eigene Resolver hinzufügt und sie ständig ändert. scutil --dns zeigt zusätzliche Resolver mit einer domain-Zeile, wenn ein VPN manche Namen an seine eigenen Server schickt.
  • Eine App oder ein Skript, das Namen in einer engen Schleife abfragt, oft eines, das einen unerreichbaren Server immer wieder versucht.
  • Ein belebtes lokales Netzwerk, etwa in einem Büro oder einem Mehrparteienhaus, mit vielen Geräten, die sich über Bonjour ankündigen.
  • Ein Netzwerk, das einen DNS-Server vergibt, der langsam ist oder nicht antwortet, sodass Abfragen warten und wiederholt werden.

DNS und Bonjour: die zwei Aufgaben

Namen im Internet, etwa apple.com, gehen an die DNS-Server, die dein Netzwerk vorgibt oder die du selbst festgelegt hast. Namen, die auf .local enden, etwa der Netzwerkname deines Mac, verlassen das lokale Netzwerk nie: mDNSResponder fragt die Geräte um sich herum direkt. Das ist das Multicast-DNS, dem er das m in seinem Namen verdankt.

Deshalb listet scutil --dns Resolver für local mit der Markierung mdns auf. Erreichst du einen Drucker oder einen freigegebenen Mac zu Hause über seinen .local-Namen, im Büro aber nicht, blockiert das Büronetzwerk diese lokalen Ankündigungen, nicht das Internet.

Häufige Fragen

Was ist mDNSResponder auf dem Mac?

Der macOS-Prozess, der für jede App Domainnamen in Adressen auflöst und Bonjour betreibt, um Drucker, AirPlay-Lautsprecher und andere Geräte in deinem Netzwerk zu finden.

Kann ich mDNSResponder beenden?

macOS startet ihn sofort neu, und solange er weg ist, kann nichts eine Website nachschlagen. Um eine falsche Antwort loszuwerden, leere den DNS-Cache, statt ihn zu beenden.

Warum will mDNSResponder eingehende Verbindungen annehmen?

Bonjour lauscht auf andere Geräte, die sich im lokalen Netzwerk ankündigen. Die Firewall von macOS erlaubt das standardmäßig; fragt deine nach, erlaube es, damit AirPlay, das Finden von Druckern und die Bildschirmfreigabe weiter funktionieren.

Ist mDNSResponder sicher?

Ja. Er gehört zu macOS, ist von Apple signiert und liegt unter /usr/sbin/mDNSResponder. Er läuft unter einem eigenen, eingeschränkten Systemaccount, nicht unter dir und nicht als root.

Was ist mDNSResponderHelper?

Ein kleiner Begleiter von mDNSResponder, der als root läuft und die wenigen Aufgaben übernimmt, die dessen eingeschränkter Account nicht selbst erledigen kann. Er gehört zu macOS und ist normalerweise untätig.

Verwandte Begriffe

Suchst du etwas Besseres als die Aktivitätsanzeige? Sieh dir die besten Alternativen zur Aktivitätsanzeige für den Mac an, oder stöbere durch alle Begriffe im Glossar.