Zum Hauptinhalt springen

Die Netzwerkwerkzeuge, die Apple gestrichen hat, auf all Ihren Geräten

Ping, Traceroute, DNS, Whois, MX und DNSBL, kostenlos auf Mac, iPhone und iPad, mit echtem ICMP, in der App, aus der Sie ohnehin SSH öffnen.

Von Lucas Russo, Entwickler von SSHive · Aktualisiert am

Auch auf iPhone und iPad

Die App für iPhone und iPad gibt es auf Englisch, Französisch und Spanisch, nicht auf Deutsch; die Sprache stellen Sie in den Einstellungen der App ein. Die Mac-App ist auf Deutsch.

Sie öffnen Spotlight, tippen „Netzwerkdienstprogramm“ ein, und es kommt nichts zurück. Das ist keine kaputte Installation: Die App ist weg. Das Netzwerkdienstprogramm lag jedem Mac bis macOS Catalina 10.15 bei, wurde in Big Sur 11 im Juni 2020 als veraltet markiert (das Bundle lag noch in /System/Library/CoreServices/Applications/, aber die Tabs taten nichts mehr) und wurde mit Ventura 13 vollständig aus dem System entfernt. Auf einem aktuellen Mac (hier geprüft unter macOS 27.0, Build 26A5388g) liegt es weder in /System/Library/CoreServices/Applications/ noch in /System/Applications/Utilities/. Apples eigene Support-Seiten beschreiben es weiterhin im Präsens, weil sie nie über den macOS-10.15-URL-Pfad hinaus aktualisiert wurden. Die alltäglichen Aufgaben, die es abdeckte (antwortet der Host, wo bricht der Pfad ab, worauf löst dieser Name auf, wem gehört diese Domain) führen also jetzt über das Terminal. Oder über gar nichts, wenn Sie gerade ein iPhone in der Hand halten. SSHive holt diese Aufgaben zurück, auf macOS, iPhone und iPad, in den SSH-Client, mit dem Sie sich ohnehin auf die Maschine verbinden: Ping, Traceroute, DNS-Abfrage, Whois, MX-Abfrage und DNSBL-Blacklist-Prüfung, dazu eine Übersicht Ihrer lokalen Netzwerkschnittstellen. Alles davon ist kostenlos. Keine Werbung, kein Abo, kein Konto und auf keiner Plattform eine Pro-Sperre. Ping und Traceroute sind überall echtes ICMP: Mac-App-Store-Version, iPhone und iPad gleichermaßen. Das ist ungewöhnlich genug für einen eigenen Satz: Weithin wird angenommen, Apples Sandbox schließe das aus, und das tut sie nicht. Ein ICMP-Datagramm-Socket braucht keine Root-Rechte und ist erlaubt; nur ein Raw-Socket wird verweigert. Der vollständige Mechanismus steht auf der Traceroute-Seite. Eines ist es nicht: kein Portscanner und kein netstat. Zu den Tabs „Port Scan“ und „Netstat“ des Netzwerkdienstprogramms gibt es hier keine Entsprechung, dafür sollten Sie nmap und lsof -i behalten. Was es hat und kein Netzwerkdienstprogramm-Klon mitbringt: die Werkzeuge auf der Mail-Seite. Und wenn die Diagnose auf einen bestimmten Host zeigt, ist die SSH-Sitzung einen Tab entfernt statt eine App.

Was SSHive dabei leistet

Ping: Antwortet es, und wie schlecht steht es

Zehn Sonden auf dem Mac, zwanzig auf iPhone und iPad, mit RTT und TTL pro Sonde, einer Verlustquote und einem Mittelwert. Echte ICMP-Echo-Requests in jeder Apple-Version (Mac App Store, iPhone und iPad) gesendet über einen unprivilegierten Datagramm-Socket statt über den Aufruf eines Systembinaries. Für Hosts, die ICMP filtern, gibt es zusätzlich eine TCP-Connect-Sonde auf einen Port Ihrer Wahl, entsprechend gekennzeichnet.

Traceroute: wo der Pfad wirklich bricht

Dreißig Hops, drei ICMP-Sonden je Hop, ausgegeben sobald jeder Router antwortet, mit einer Stopp-Taste. Der Ablauf ist in der Mac-App-Store-Version, auf iPhone und auf iPad identisch, weil SSHive die Sonden selbst aus einem ICMP-Datagramm-Socket baut, statt das setuid-Systembinary zu steuern. Ein Hop, der stumm bleibt, erscheint als Sternchen; ein System, das ICMP rundheraus verweigert, wird als Verweigerung gemeldet, nie als erfundener Pfad.

DNS-Abfrage: sechs Record-Typen auf einmal

A, AAAA, MX, CNAME, NS und TXT werden parallel gegen Ihren System-Resolver abgefragt, jede Abfrage mit eigener Fehlerbehandlung: Eine Domain ohne MX zeigt trotzdem ihren A-Record. iPhone und iPad ergänzen SOA und die TTL jeder Antwort.

Whois direkt über TCP-Port 43

Ein echter WHOIS-Client, keine Hülle um die Web-API eines Dritten. SSHive öffnet Port 43 selbst und folgt den Verweisen der Registries: auf dem Mac bis zu drei Sprünge (zwei Verweise), ausgehend von einer eingebauten Tabelle mit achtzehn TLD-Servern, auf iPhone und iPad ausgehend von IANA. Auf dem Mac liest SSHive Registrar, Datumsangaben, Nameserver, Status, DNSSEC und Abuse-Kontakt aus und weist auf einen Ablauf in weniger als 60 Tagen hin.

MX und DNSBL, das Paar, das Apple nie ausgeliefert hat

Die MX-Abfrage sortiert die Mailserver nach Priorität. Auf dem Mac löst sie zudem jeden nach IPv4 auf, macht ein Reverse-Lookup dieser Adresse und schickt sie durch die Blacklist-Engine, sodass Mail-Routing und Reputation in einer Tabelle landen. Die eigenständige DNSBL-Prüfung liefert auf iPhone und iPad drei Urteile (gelistet, sauber oder keine Antwort), eine stumme Zone gilt dort also nie als sauber; der Mac liefert zwei und wertet eine Zone, die nicht antwortet, als sauber. Nur IPv4.

Überall kostenlos, und ehrlich bei den Lücken

Jedes Werkzeug hier ist auf Mac, iPhone und iPad kostenlos. Keines hängt an der Lizenzprüfung: keine Kaufaufforderung, keine Werbung, kein Konto. Was fehlt, fehlt mit Absicht: kein Portscanner, kein netstat, kein finger. SSHive Pro ist ein separater Einmalkauf (etwa 14,99 €, als Universal Purchase für Mac, iPhone und iPad, kein Abo). Er hebt die Grenzen der Gratisversion auf und schaltet RDP und VNC frei; an der Diagnose ändert er nichts.

So gehen Sie vor, Schritt für Schritt

  1. 1

    Öffnen Sie den Werkzeug-Tab auf Ihrem Mac

    Klicken Sie in der Seitenleiste auf das Netzwerksymbol (sein Tooltip lautet Netzwerkwerkzeuge) oder auf die Schaltfläche Netzwerkwerkzeuge im Willkommensbildschirm. Beides öffnet einen eigenen Werkzeug-Tab neben Ihren Sitzungen, sodass eine Diagnose Sie nie eine offene SSH-Verbindung kostet.

  2. 2

    Wählen Sie eine Karte: alles auf einem Bildschirm

    Das Panel ist in drei Abschnitte geteilt: Dieser Rechner (Ihre Netzwerkschnittstellen), Auflösung und Reputation (DNS-Lookup, DNSBL-Prüfung, MX-Abfrage und Whois) sowie Erreichbarkeit (Ping, Port-Test und Traceroute). Nichts ist in einem Menü vergraben: Jedes Werkzeug hat sein eigenes Eingabefeld und seine eigene Taste, und innerhalb eines Abschnitts lassen sich die Karten verschieben oder ausblenden.

  3. 3

    Auf dem iPhone über den Tab „Tools“

    Tippen Sie unten in der Tableiste auf Tools (das Netzwerksymbol). Die Liste ist in drei Abschnitte geteilt: Diagnostic (Ping, DNS Lookup, Traceroute und Whois), Email & IP (MX Lookup und Blacklist Check) und Information mit den Netzwerkschnittstellen. Auf dem iPad steht dieselbe Liste in der Seitenleiste der geteilten Ansicht, unter Network tools. Genannt sind hier die Bezeichnungen der englischen Oberfläche der App.

  4. 4

    Ziel eintippen und ausführen

    Jedes Werkzeug nimmt einen Hostnamen oder eine IP entgegen: example.com für Ping, Traceroute, DNS, Whois und MX; eine IPv4 in Punktnotation für die Blacklist-Prüfung, die auch eine Domain akzeptiert und sie zuerst auflöst. Laufende Ausgaben (Ping, Traceroute) erscheinen fortlaufend und lassen sich mitten im Lauf mit Stopp oder Abbrechen beenden.

  5. 5

    Von der Diagnose zur Behebung, ohne die App zu wechseln

    Wenn die Ausgabe auf einen Host zeigt, öffnen Sie dorthin einen Sitzungs-Tab und melden sich an. Der Ping zeigt den Verlust, das DNS bestätigt, dass der Record stimmt, Sie gehen per SSH hinein und starten den Dienst neu. Dasselbe Fenster auf dem Mac, dieselbe App um 3 Uhr nachts auf dem Telefon. Diesen letzten Schritt kann keine reine Diagnose-App.

Wie Sie lesen, was Ihnen diese Werkzeuge sagen

Arbeiten Sie in dieser Reihenfolge: Name, dann Erreichbarkeit, dann Pfad, dann Reputation. Die meisten Vorfälle sterben schon bei Schritt eins. Paketverlust. Verlust bei einem Ping bedeutet nur dann etwas, wenn er konstant ist und wenn sich das Ziel überhaupt um ICMP kümmert. Ein Router, der 3 % der Echo-Requests verwirft und Ihren TCP-Verkehr dabei mit voller Leitungsrate weiterleitet, macht seine Arbeit: ICMP wird von der Control Plane behandelt und ist unter Last das Erste, was gedrosselt wird. Entscheidend ist Verlust, der zu Ihrem tatsächlichen Symptom passt, und Jitter: Sonden mit 40, 41, 39, 210, 42 ms sind eine schlechtere Nachricht als zehn gleichmäßige Sonden mit 180 ms. Denken Sie außerdem daran, welche Engine gerade läuft. ICMP ist die Vorgabe und misst den Pfad selbst. Wenn Sie auf die TCP-Engine umgestellt haben, weil der Host ICMP filtert, heißt Totalverlust, dass die Sonde stillschweigend verworfen wurde: Eine Firewall, die Verkehr zu dem von Ihnen gewählten Port wegwirft, liest sich als 100 % Verlust auf einer völlig gesunden Maschine. Ein Host, auf dem nichts lauscht, der aber keine Firewall hat, antwortet mit einem RST, was SSHive korrekt als erreichbar zählt und als „port closed“ kennzeichnet. Drei Sternchen in einem Traceroute. Ein gesternter Hop mitten in einer sonst vollständigen Trace ist fast nie die Ursache. Er bedeutet, dass dieser Router keine ICMP-Time-Exceeded-Antwort geschickt oder sie gedrosselt hat. Ein echter Abbruch sieht anders aus: Ab Hop N sind alle Hops Sternchen und das Ziel antwortet nie. Dieselbe Logik gilt für die Laufzeit: Ein Hop mit 180 ms, gefolgt von einem Hop mit 30 ms, ist kein langsamer Hop, sondern ein Router, der Ihre Sonde nachrangig behandelt. Nur Laufzeit, die steigt und bis zum letzten Hop erhöht bleibt, ist ein Pfadproblem. WHOIS-Statuscodes. clientTransferProhibited ist gesund: Ihr Registrar hat die Domain gegen einen unbefugten Transfer gesperrt. serverHold ist der Notfall: Die Registry hat die Domain aus der Zone genommen, sie löst also überhaupt nicht mehr auf. redemptionPeriod und pendingDelete heißen, dass sie bereits abgelaufen ist. Die MX-Priorität ist eine Präferenz, keine Qualitätsnote: Die niedrigste Zahl wird zuerst versucht, gleiche Zahlen im Round-Robin. DNSBL-Treffer sind nicht gleichwertig. Lesen Sie den Rückgabecode (der Mac zeigt zusätzlich den TXT-Grund, iPhone und iPad nur den Code). Ein Spamhaus-PBL-Eintrag sagt lediglich: „Diese IP liegt in einem dynamischen Bereich, der nicht direkt Mail verschicken sollte“, was bei einem Privatanschluss zu erwarten ist. UCEPROTECT Level 2, nur auf iPhone und iPad abgefragt, listet eine ganze Zuteilung, weil ein Nachbar gespammt hat, und die meisten Empfänger ignorieren das; ein einzelner Level-2-Treffer neben sonst sauberen Zeilen ist meist Rauschen. Barracuda oder Spamhaus SBL/XBL sind das, was Ihre Mail tatsächlich zurückprallen lässt. Und behandeln Sie jedes Ergebnis auf einem öffentlichen Resolver mit Vorsicht: Mehrere Zonen verweigern diese Abfragen mit einem 127.255.255.x-Code. Der Mac zeigt diesen Code als „Gelistet“, obwohl nichts gelistet ist, und wertet einen DNS-Fehler als nicht gelistet; iPhone und iPad führen beides getrennt, als keine Antwort. Prüfen Sie den Rückgabecode und wiederholen Sie den Test aus einem Netz, das seinen eigenen rekursiven Resolver verwendet.

Häufige Fragen

Hat Apple das Netzwerkdienstprogramm wirklich aus macOS entfernt, und wann?+
Ja. Bis macOS Catalina 10.15 war es voll funktionsfähig. Big Sur 11 hat es im Juni 2020 als veraltet markiert: Das Bundle lag noch in /System/Library/CoreServices/Applications/, aber die Tabs taten nichts mehr. Ab Monterey 12 galt es als verschwunden, mit dem Kommandozeilenwerkzeug networkQuality als teilweisem Trostpflaster. Unter macOS 27.0 (Build 26A5388g) fehlt es sowohl in /System/Library/CoreServices/Applications/ als auch in /System/Applications/Utilities/. Apples Support-Seiten dazu sind weiterhin online, aber auf dem URL-Pfad von macOS 10.15 eingefroren und nie aktualisiert worden.
Welche der sechs Werkzeuge funktionieren wirklich auf iPhone und iPad?+
Alle: Ping und Traceroute in echtem ICMP, DNS-Abfrage, Whois, MX-Abfrage und die DNSBL-Blacklist-Prüfung, dazu die Ansicht der Netzwerkschnittstellen. Die iPhone- und iPad-Versionen führen dieselbe Sonden-Engine aus wie der Mac, eine auf dem Telefon gestartete Trace oder ein Ping ist also direkt mit einem vom Schreibtisch aus gestarteten vergleichbar; genau das brauchen Sie oft, wenn die Frage lautet, ob das Problem dem Gerät oder dem Netz folgt.
Ist der Ping von SSHive ein echter ICMP-Ping?+
Ja, in jeder Apple-Version: Mac App Store, iPhone und iPad. SSHive öffnet einen unprivilegierten ICMP-Datagramm-Socket und sendet echte Echo Requests, und meldet Laufzeit und TTL jeder Antwort. Die TCP-Connect-Sonde ist ein separater, deutlich gekennzeichneter Modus für Hosts, die ICMP filtern; wenn Sie ihn nutzen, denken Sie daran, dass der gemessene RTT den TCP-Handshake enthält und daher etwas zu hoch liegt, und dass ein von einer Firewall geblockter Port eine Maschine als unerreichbar erscheinen lässt, die auf ICMP einwandfrei antwortet.
Funktioniert Traceroute wirklich in der Mac-App-Store-Version mit Sandbox?+
Ja. Ein Traceroute muss die IP-TTL jeder ausgehenden Sonde setzen und dann die ICMP-Time-Exceeded-Antworten der Router lesen, und weithin gilt, dass dafür ein Raw-Socket nötig sei, den die Sandbox verweigert. Das stimmt nicht: Ein ICMP-Datagramm-Socket kann beides, braucht keine Root-Rechte und ist erlaubt. Das wurde vor der Auslieferung unter sandbox-exec mit SSHives eigenen Entitlements nachgemessen. Die eine echte Voraussetzung ist, dass die App neben network.client auch com.apple.security.network.server führt: Mit dem Client-Entitlement allein kommen die Antworten als EPERM zurück, was genau wie ein filterndes Netz aussieht. SSHive deklariert beide.
Sind die Netzwerkwerkzeuge kostenlos, oder brauchen sie Pro?+
Alle sechs sind kostenlos, auf Mac, iPhone und iPad. Keines läuft durch die Lizenzprüfung, es gibt also keine Kaufaufforderung, kein Werbebanner vor einem Ergebnis und kein Konto zum Anlegen. Sie können die App installieren, ein Whois ausführen und nie eine Bezahlschranke sehen. SSHive Pro ist ein separater Einmalkauf (etwa 14,99 €, als Universal Purchase für Mac, iPhone und iPad, kein Abo), der die Grenzen der Gratisversion aufhebt und RDP, VNC und die übrigen Pro-Funktionen freischaltet. Er sperrt die Diagnose auf keiner Plattform.
Schickt SSHive meine Abfragen über eine API von Dritten?+
Nein. WHOIS-Abfragen öffnen eine TCP-Verbindung direkt zu Port 43 des Registry- oder Registrar-Servers: Der Mac verkettet bis zu drei Sprünge (zwei Verweise), um den autoritativen Server zu erreichen, iPhone und iPad beginnen bei IANA und folgen den Verweisen von dort aus. DNS-Abfragen und Blacklist-Prüfungen nutzen die auf Ihrem Gerät konfigurierten Resolver, ohne Zwischenstation. Das zählt für die Genauigkeit genauso wie für den Datenschutz: Viele mobile Whois-Apps leiten über einen Webdienst um, der einen Cache und einen Dritten zwischen Sie und die Registry stellt.
Ist das ein vollwertiger Ersatz für das Netzwerkdienstprogramm?+
Kein wortwörtlicher, und das sagen wir lieber gleich. Ping, Lookup, Traceroute, Whois und die Schnittstellenliste des Info-Tabs haben hier alle ihre Entsprechung. Port Scan und Netstat nicht; dafür nehmen Sie nmap und netstat -an oder lsof -i im Terminal. Finger ist ein totes Protokoll, das niemand braucht. Im Gegenzug bekommen Sie zwei Dinge, die das Netzwerkdienstprogramm nie hatte und die kein Klon davon mitbringt: MX-Abfrage und DNSBL-Blacklist-Prüfung, auf iPhone und iPad ebenso wie auf dem Mac.

Was die Sandbox wirklich verbietet, und was nicht

Jeder Plattformunterschied in diesem Abschnitt läuft auf eine Frage hinaus: Was darf eine App in der Sandbox tatsächlich öffnen. ICMP kennt keine Portnummern. Um einen Echo Request zu senden und die Antwort zu lesen, braucht ein Prozess einen Socket, der IP-Protokoll 1 direkt spricht, und üblicherweise nimmt man an, dass dafür ein Raw-Socket nötig ist: nur für root und von der App Sandbox rundweg verweigert. Diese Annahme hat Ping und Traceroute aus vielen App-Store-Apps herausgehalten, und sie ist falsch. Darwin bietet auch einen Datagramm-ICMP-Socket, socket(AF_INET, SOCK_DGRAM, IPPROTO_ICMP), den jeder unprivilegierte Prozess öffnen darf und den die Sandbox erlaubt. Deshalb hat /sbin/ping vor Jahren sein setuid-Bit verloren, und genau das verwendet Apples eigenes SimplePing-Beispiel unter iOS. Ping und Traceroute haben deshalb eine Implementierung, nicht mehrere. SSHive baut die Echo Requests selbst zusammen, berechnet die ICMP-Prüfsumme, setzt IP_TTL, wenn eine Trace es verlangt, und liest, was zurückkommt: unter macOS über ein kleines natives N-API-Addon, auf iPhone und iPad über den entsprechenden Swift-Typ. Antworten werden über Identifier, Sequenznummer, Quelladresse und ein zufälliges Acht-Byte-Cookie in der Nutzlast zugeordnet, denn ein ICMP-Datagramm-Socket empfängt auch Kopien von Antworten, die für andere Prozesse auf der Maschine bestimmt sind. Eine Voraussetzung wurde durch Messung statt durch Dokumentation gefunden, und sie ist eine Wiederholung wert, weil sie stillschweigend scheitert. Unter sandbox-exec mit com.apple.security.network.client allein gelingt socket(), gelingt sendto(), und recvfrom() liefert EPERM: Die Sonde geht hinaus und es kommt nie etwas zurück, ununterscheidbar von einem Netz, das ICMP filtert. com.apple.security.network.server wird ebenfalls gebraucht. SSHive deklariert beide, und deshalb misst die App-Store-Version in der Sandbox echte Laufzeiten, statt stumm ins Timeout zu laufen. Eine TCP-Connect-Sonde wird weiterhin angeboten, aber als bewusste Wahl für Hosts, die ICMP filtern, nicht als Ersatz: eine Verbindung zu einem Port, den Sie nennen, gemessen vom Verbindungsaufbau bis zur Betriebsbereitschaft des Sockets, mit einem TCP-Abzeichen gekennzeichnet. Eine Feinheit dabei: Eine abgelehnte Verbindung zählt als Erfolg, denn ein RST beweist, dass ein lebender Host geantwortet hat. Der Port ist schlicht geschlossen, und das Protokoll sagt das auch. DNS, Whois und DNSBL brauchen überhaupt keine Privilegien, keine Plattform muss also etwas umgehen; verschieden ist nur der Umfang. Auf dem Mac fragt DNS A, AAAA, CNAME, MX, TXT und NS parallel ab; iPhone und iPad fügen SOA hinzu und zeigen zu jeder Antwort ihre TTL. Jeder Typ hat seine eigene Fehlerbehandlung, sodass eine Domain ohne MX trotzdem ihren A-Record zeigt. WHOIS ist eine schlichte TCP-Sitzung auf Port 43: Abfrage senden, mit CRLF abschließen, lesen, bis der Server schließt. Auf dem Mac folgt es der Verweiskette bis zu drei Sprünge weit, also zwei Verweise tief, mit zehn Sekunden Timeout pro Sprung; iPhone und iPad beginnen bei IANA und folgen den Verweisen von dort aus. Eine DNSBL-Prüfung ist eine A-Record-Abfrage auf die umgedrehten Oktette einer IPv4-Adresse unter jeder Zone, parallel ausgefächert, und die Urteile hängen vom Gerät ab. Der Mac meldet gelistet oder sauber und wertet einen DNS-Fehler als sauber. iPhone und iPad kennen drei Urteile, gelistet, sauber oder keine Antwort: Eine Zone, die stumm bleibt oder einen Ablehnungscode statt eines Eintrags zurückgibt, gilt dort nie als sauber.