Skip to main content

2.4 MACos-Netzwerkdiagnose

2.4 macOS-Netzwerkdiagnose

macOS basiert auf Darwin und stellt zahlreiche BSD- und Apple-spezifische Netzwerkwerkzeuge bereit. Einige Befehle ähneln Linux-Kommandos, verwenden aber teilweise andere Optionen und Ausgabeformate.

Wichtige macOS-Werkzeuge sind:

  • networksetup für Netzwerkdienste und deren Konfiguration
  • scutil für System Configuration, DNS, Proxys und Netzwerkstatus
  • ifconfig für Netzwerkschnittstellen
  • route und netstat für Routingtabellen
  • arp und ndp für Nachbartabellen
  • ping und traceroute für Erreichbarkeit und Netzwerkpfade
  • dig, host und dscacheutil für DNS
  • wdutil und Wireless Diagnostics für WLAN
  • networkQuality für Kapazität und Reaktionsfähigkeit
  • lsof, netstat und nc für Ports und Verbindungen
  • log für das Unified Logging System
  • socketfilterfw und pfctl für die Firewalldiagnose

Kennzeichnungen

KennzeichnungBedeutung
[RO]Nur lesender Befehl; verändert keine Konfiguration
[TEST]Führt einen aktiven Netzwerk- oder Verbindungstest aus
[PRIV]Benötigt Administratorrechte beziehungsweise sudo
[CHANGE]Verändert einen Zustand oder eine Konfiguration
[DISRUPT]Kann eine Verbindung oder einen Dienst unterbrechen
[FILE]Schreibt Informationen in eine Datei
[SENS]Ausgabe kann sensible System-, Netzwerk- oder Prozessdaten enthalten

Vor Änderungen sollten Netzwerkdienst, Schnittstelle, IP-Konfiguration, Route, DNS-Server und aktive VPN- beziehungsweise Proxykonfiguration dokumentiert werden.


1. macOS-Version und verfügbare Werkzeuge prüfen
AufgabemacOS-Befehl
macOS-Version anzeigen[RO] sw_vers
Produktversion kompakt anzeigen[RO] sw_vers -productVersion
Build-Nummer anzeigen[RO] sw_vers -buildVersion
Kernelversion anzeigen[RO] uname -a
Prozessorarchitektur anzeigen[RO] uname -m
Hardwareübersicht anzeigen[RO] system_profiler SPHardwareDataType
Softwareübersicht anzeigen[RO] system_profiler SPSoftwareDataType
Prüfen, ob ein Befehl vorhanden ist[RO] command -v networkQuality
Mehrere Werkzeuge prüfen[RO] command -v networksetup scutil ifconfig route netstat arp ndp ping traceroute dig lsof nc wdutil networkQuality
Hilfe zu networksetup anzeigen[RO] networksetup -help
Lokale Handbuchseite öffnen[RO] man networksetup
Handbuchseite zu scutil öffnen[RO] man scutil
Handbuchseite zu ifconfig öffnen[RO] man ifconfig

Hinweis zu macOS-Versionen

Nicht jedes Werkzeug steht in jeder macOS-Version zur Verfügung:

  • networkQuality ist auf aktuellen macOS-Versionen vorhanden.
  • wdutil ist auf aktuellen macOS-Versionen das Kommandozeilenwerkzeug für WLAN-Diagnosedaten.
  • Das frühere private airport-Werkzeug ist auf aktuellen macOS-Versionen nicht mehr als zuverlässiger Standard verfügbar.
  • Optionen und Ausgaben können sich zwischen macOS-Versionen ändern.

2. Netzwerkdienste und Hardwareports zuordnen

Unter macOS muss zwischen einem Netzwerkdienst und der technischen Schnittstelle unterschieden werden.

Beispiele:

NetzwerkdienstMögliche Schnittstelle
Wi-Fien0 oder eine andere en-Schnittstelle
Etherneten0, en1, en5 oder eine andere Schnittstelle
USB-EthernetAbhängig vom angeschlossenen Adapter
Thunderbolt BridgeBridge- beziehungsweise Thunderbolt-Schnittstelle
VPNHäufig utun0, utun1 oder eine weitere utun-Schnittstelle

Zuordnung prüfen

AufgabemacOS-Befehl
Alle Hardwareports auflisten[RO] networksetup -listallhardwareports
Alle Netzwerkdienste auflisten[RO] networksetup -listallnetworkservices
Reihenfolge der Netzwerkdienste anzeigen[RO] networksetup -listnetworkserviceorder
Informationen zum Dienst Wi-Fi anzeigen[RO] networksetup -getinfo "Wi-Fi"
Informationen zum Dienst Ethernet anzeigen[RO] networksetup -getinfo "Ethernet"
Aktive Netzwerksicht anzeigen[RO] scutil --nwi
Netzwerkkonfiguration über System Profiler anzeigen[RO][SENS] system_profiler SPNetworkDataType

Wichtiger Unterschied

  • Wi-Fi ist normalerweise der Name eines Netzwerkdienstes.
  • en0 ist der Name einer technischen Netzwerkschnittstelle.
  • networksetup erwartet je nach Option entweder einen Dienstnamen oder einen Gerätenamen.
  • Der Gerätename darf nicht anhand eines anderen Macs geraten werden.

Vor jedem Befehl mit en0, en1 oder einem Dienstnamen muss die tatsächliche Zuordnung mit networksetup -listallhardwareports geprüft werden.


3. Netzwerkschnittstellen und Linkstatus prüfen
AufgabemacOS-Befehl
Alle Schnittstellen anzeigen[RO] ifconfig -a
Einzelne Schnittstelle anzeigen[RO] ifconfig en0
Aktive Schnittstellen anzeigen[RO] ifconfig -u
Inaktive Schnittstellen anzeigen[RO] ifconfig -d
Schnittstellennamen auflisten[RO] ifconfig -l
Schnittstellenstatistik anzeigen[RO] netstat -ibn
Netzwerkhardware anzeigen[RO][SENS] system_profiler SPNetworkDataType
Ethernet-Hardwareinformationen anzeigen[RO] system_profiler SPEthernetDataType

Wichtige Angaben von ifconfig

AngabeBedeutung
UPSchnittstelle wurde administrativ aktiviert
RUNNINGSchnittstelle ist betriebsbereit
ACTIVEAktiver physischer beziehungsweise logischer Link
status: activeVerbindung wurde erkannt
status: inactiveKeine aktive Verbindung erkannt
etherMAC-Adresse
inetIPv4-Adresse
inet6IPv6-Adresse
netmaskNetzmaske, häufig hexadezimal dargestellt
broadcastIPv4-Broadcastadresse
mtuMaximum Transmission Unit
mediaMedium, Geschwindigkeit und Duplexmodus

Typische Fehlerbilder

BeobachtungMögliche Bedeutung
status: inactiveKein Link, WLAN getrennt, Kabel- oder Portproblem
Schnittstelle fehltAdapter, Treiber, USB-/Thunderbolt-Verbindung oder Hardware prüfen
Keine inet-AdresseKeine verwendbare IPv4-Konfiguration
Nur 169.254.x.xKeine reguläre IPv4-Konfiguration beziehungsweise DHCP-Zuweisung
Unerwartete MTUVPN-, Tunnel- oder Fragmentierungsproblem möglich
Viele Fehler in netstat -ibnLink-, Adapter-, Treiber- oder Überlastungsproblem möglich

4. IP-Konfiguration und DHCP prüfen
AufgabemacOS-Befehl
IPv4-Adresse einer Schnittstelle anzeigen[RO] ipconfig getifaddr en0
Gesamte Schnittstellenkonfiguration anzeigen[RO] ifconfig en0
Informationen des Dienstes Wi-Fi anzeigen[RO] networksetup -getinfo "Wi-Fi"
Informationen des Dienstes Ethernet anzeigen[RO] networksetup -getinfo "Ethernet"
DHCP-Paketinformationen anzeigen[RO][PRIV][SENS] sudo ipconfig getpacket en0
DHCP-Server auslesen[RO][PRIV] sudo ipconfig getoption en0 server_identifier
Subnetzmaske auslesen[RO][PRIV] sudo ipconfig getoption en0 subnet_mask
Router aus DHCP auslesen[RO][PRIV] sudo ipconfig getoption en0 router
DNS-Server aus DHCP auslesen[RO][PRIV] sudo ipconfig getoption en0 domain_name_server
IPv6-Konfiguration anzeigen[RO] ifconfig en0 | grep inet6
Netzwerkstatus zusammengefasst anzeigen[RO] scutil --nwi

Prüfpunkte

  • Wurde die erwartete IPv4-Adresse vergeben?
  • Stimmt die Subnetzmaske?
  • Ist der Router korrekt?
  • Ist der erwartete DHCP-Server sichtbar?
  • Sind DNS-Server vorhanden?
  • Befindet sich die Adresse im Bereich 169.254.0.0/16?
  • Existieren mehrere aktive Schnittstellen mit konkurrierenden Routen?
  • Ist ein VPN aktiv, das die Routenauswahl verändert?

ipconfig getpacket zeigt die zuletzt erhaltenen DHCP-Informationen. Die Ausgabe kann interne Netzwerkinformationen enthalten.


5. Routingtabelle und verwendeten Netzwerkweg prüfen
AufgabemacOS-Befehl
Standardroute anzeigen[RO] route -n get default
Route zu einer IPv4-Adresse anzeigen[RO] route -n get 1.1.1.1
Route zu einem DNS-Namen anzeigen[RO][TEST] route -n get example.com
IPv4-Routingtabelle anzeigen[RO] netstat -rn -f inet
IPv6-Routingtabelle anzeigen[RO] netstat -rn -f inet6
Gesamte Routingtabelle anzeigen[RO] netstat -rn
Netzwerkstatus anzeigen[RO] scutil --nwi
Aktive VPN-/Tunnel-Schnittstellen suchen[RO] ifconfig -l | tr ' ' '\n' | grep '^utun'
Details einer Tunnel-Schnittstelle anzeigen[RO] ifconfig utun0

Wichtige Angaben von route -n get

AngabeBedeutung
destinationZieladresse
gatewayNächster Router
interfaceVerwendete Schnittstelle
flagsEigenschaften der Route
recvpipeEmpfangspufferinformationen
sendpipeSendepufferinformationen

Wichtige Flags der Routingtabelle

FlagBedeutung
URoute ist aktiv
GZiel wird über ein Gateway erreicht
HHostroute zu einem einzelnen Ziel
SStatische Route
CGeklonte Route
ISchnittstellenroute

Typische Fehlerbilder

  • Standardroute fehlt.
  • Standardroute verwendet die falsche Schnittstelle.
  • VPN- oder utun-Schnittstelle übernimmt die Route.
  • Ethernet und WLAN sind gleichzeitig aktiv und besitzen konkurrierende Wege.
  • Die Reihenfolge der Netzwerkdienste entspricht nicht der erwarteten Priorität.
  • Eine spezifischere Route überschreibt den allgemeinen Weg.

6. ARP- und IPv6-Nachbartabelle prüfen
AufgabemacOS-Befehl
Gesamte IPv4-ARP-Tabelle anzeigen[RO] arp -an
Bestimmte IPv4-Adresse prüfen[RO] arp -n 192.0.2.1
IPv6-Nachbartabelle anzeigen[RO] ndp -an
IPv6-Standardrouter anzeigen[RO] ndp -r
IPv6-Präfixinformationen anzeigen[RO] ndp -p
Schnittstelleninformationen anzeigen[RO] ndp -i en0

Typische Beobachtungen

BeobachtungMögliche Bedeutung
(incomplete)MAC-Auflösung wurde nicht abgeschlossen
Kein Gateway-EintragGateway wurde noch nicht angesprochen oder ist nicht erreichbar
Unerwartete MAC-AdresseDoppelte IP-Adresse, anderes Gateway oder Sicherheitsproblem möglich
Gleiche IP mit wechselnder MAC-AdresseHochverfügbarkeit, doppelte Adresse oder Manipulation prüfen
IPv6-Nachbarstatus nicht erreichbarLokalen IPv6-Link und Router Advertisement prüfen

Ein fehlender ARP-Eintrag beweist nicht automatisch einen Fehler. Ein Eintrag entsteht normalerweise erst, wenn das Ziel angesprochen wurde.


7. Erreichbarkeit mit ping prüfen
AufgabemacOS-Befehl
Vier Anfragen an das Gateway senden[TEST] ping -c 4 192.0.2.1
Externe IPv4-Adresse testen[TEST] ping -c 4 1.1.1.1
DNS-Namen testen[TEST] ping -c 4 example.com
Bestimmte Quelladresse verwenden[TEST] ping -S 192.0.2.10 -c 4 192.0.2.1
IPv6-Ziel testen[TEST] ping6 -c 4 2001:db8::1
IPv6-Link-Local-Ziel mit Schnittstelle testen[TEST] ping6 -c 4 fe80::1%en0
Paketgröße testen[TEST] ping -c 4 -s 1400 192.0.2.1
Akustisches Signal bei Antwort[TEST] ping -a -c 4 192.0.2.1

Wichtige Ergebnisse

WertBedeutung
timeRound Trip Time
ttlVerbleibende IPv4 Time to Live
icmp_seqNummer der ICMP-Anfrage
packet lossAnteil verlorener Pakete
min/avg/max/stddevLaufzeitstatistik

Interpretation

ErgebnisMögliche Bedeutung
Gateway nicht erreichbarLokales Netz, WLAN, Kabel, VLAN oder Router prüfen
IP-Adresse erreichbar, DNS-Name nichtDNS-Problem wahrscheinlich
Externe IP nicht erreichbar, Gateway erreichbarRouting, Firewall, Provider oder Upstream prüfen
Ping schlägt fehl, TCP-Port funktioniertICMP wird möglicherweise blockiert
Hohe LaufzeitschwankungenWLAN-Störung, Überlastung oder wechselnder Netzwerkweg
PaketverlustFunkstörung, Linkproblem, Überlastung oder Rate Limiting möglich

8. Netzwerkpfad mit traceroute untersuchen
AufgabemacOS-Befehl
Netzwerkpfad anzeigen[TEST] traceroute example.com
Keine DNS-Auflösung durchführen[TEST] traceroute -n example.com
Anzahl der Hops begrenzen[TEST] traceroute -m 15 example.com
Wartezeit pro Probe begrenzen[TEST] traceroute -w 2 example.com
IPv6-Netzwerkpfad anzeigen[TEST] traceroute6 example.com
ICMP statt UDP verwenden[TEST][PRIV] sudo traceroute -I example.com

Auswertung

  • Ein einzelner Hop ohne Antwort beweist keinen Fehler.
  • Router können Diagnosepakete ignorieren und Nutzdaten trotzdem weiterleiten.
  • Mehrere unterschiedliche Hops können durch Load Balancing entstehen.
  • Entscheidend ist, ob das Ziel erreicht wird.
  • Ein Abbruch ab einem bestimmten Hop kann auf Routing, Firewall oder eine Netzstörung hinweisen.
  • Unterschiedliche Protokolle können unterschiedliche Pfade beziehungsweise Antworten zeigen.

9. DNS-Konfiguration und Namensauflösung prüfen

scutil --dns zeigt die tatsächlich vom macOS-System verwendete Resolverkonfiguration. Die Ausgabe kann mehrere Resolver für verschiedene Domänen und Schnittstellen enthalten.

AufgabemacOS-Befehl
Gesamte Resolverkonfiguration anzeigen[RO][SENS] scutil --dns
DNS-Server des Dienstes Wi-Fi anzeigen[RO] networksetup -getdnsservers "Wi-Fi"
DNS-Server des Dienstes Ethernet anzeigen[RO] networksetup -getdnsservers "Ethernet"
Suchdomänen anzeigen[RO] networksetup -getsearchdomains "Wi-Fi"
Namen über den Systemcache abfragen[TEST] dscacheutil -q host -a name example.com
Standard-DNS-Abfrage durchführen[TEST] dig example.com
IPv4-Adresse abfragen[TEST] dig A example.com
IPv6-Adresse abfragen[TEST] dig AAAA example.com
Mailserver abfragen[TEST] dig MX example.com
Kurzausgabe erzeugen[TEST] dig +short example.com
Bestimmten Resolver verwenden[TEST] dig @192.0.2.53 example.com
Vollständigen Delegationsweg prüfen[TEST] dig +trace example.com
Reverse-DNS-Abfrage durchführen[TEST] dig -x 192.0.2.10
Alternative Abfrage durchführen[TEST] host example.com
Lokale Hosts-Datei anzeigen[RO] cat /etc/hosts

Warum kann macOS mehrere Resolver anzeigen?

macOS kann Resolver abhängig von folgenden Faktoren auswählen:

  • Netzwerkdienst
  • VPN-Verbindung
  • Suchdomäne
  • Split-DNS-Konfiguration
  • verwaltetes Konfigurationsprofil
  • iCloud Private Relay
  • Network Extension
  • lokale Hosts-Datei
  • Anwendungsinterner DNS-Resolver

Typische Fehlerbilder

BeobachtungMögliche Ursache
dig funktioniert, Anwendung jedoch nichtAnwendung, Cache, Proxy oder eigener Resolver
Öffentlicher Name funktioniert, interner nichtSplit-DNS, VPN oder interner Resolver prüfen
Falscher DNS-Server in scutil --dnsNetzwerkdienst, VPN oder Profil prüfen
Mehrere Resolver mit unterschiedlicher ReihenfolgeDomänenspezifische Resolver oder VPN-Konfiguration
IP-Adresse erreichbar, Name nichtDNS-Problem wahrscheinlich
Unterschiedliche Antworten verschiedener DNS-ServerSplit-DNS, Cache oder unterschiedliche Zonen

Für die tatsächliche Resolverauswahl von macOS ist scutil --dns normalerweise aussagekräftiger als eine isolierte Betrachtung einzelner Konfigurationsfelder.


10. Proxy-, VPN- und Network-Extension-Einflüsse prüfen
AufgabemacOS-Befehl
Systemweite Proxykonfiguration anzeigen[RO][SENS] scutil --proxy
HTTP-Proxy für Wi-Fi anzeigen[RO] networksetup -getwebproxy "Wi-Fi"
HTTPS-Proxy für Wi-Fi anzeigen[RO] networksetup -getsecurewebproxy "Wi-Fi"
Automatische Proxykonfiguration anzeigen[RO] networksetup -getautoproxyurl "Wi-Fi"
Proxy-Bypass-Domänen anzeigen[RO][SENS] networksetup -getproxybypassdomains "Wi-Fi"
Aktive Netzwerksicht anzeigen[RO] scutil --nwi
Tunnel-Schnittstellen anzeigen[RO] ifconfig -l | tr ' ' '\n' | grep '^utun'
Systemerweiterungen anzeigen[RO][SENS] systemextensionsctl list
Netzwerkdienste nach Reihenfolge anzeigen[RO] networksetup -listnetworkserviceorder

Mögliche Einflussfaktoren

  • Unternehmens-VPN
  • Content-Filter
  • Endpoint-Security-Software
  • DNS-Filter
  • Webproxy
  • PAC-Datei
  • iCloud Private Relay
  • lokale Firewall
  • Network Extension
  • Sicherheitssoftware eines Drittanbieters

Typisches Fehlerbild

BeobachtungMögliche Ursache
Ping funktioniert, Webseiten nichtProxy, DNS, TLS, Browser oder Filtersoftware
Nur einzelne Anwendungen betroffenAnwendungsproxy oder anwendungsspezifische Network Extension
Verbindung funktioniert ohne VPNVPN-Routing, DNS oder Richtlinie prüfen
Interne Namen funktionieren nur mit VPNSplit-DNS oder interne DNS-Zone
Falsche Route über utunVPN- oder Filtersoftware beeinflusst Routing

11. WLAN-Verbindung und Funkqualität prüfen

Zuordnung und Status

AufgabemacOS-Befehl
Wi-Fi-Hardwareport bestimmen[RO] networksetup -listallhardwareports
Wi-Fi-Energiezustand anzeigen[RO] networksetup -getairportpower en0
Verbundenes WLAN anzeigen[RO] networksetup -getairportnetwork en0
WLAN-Informationen anzeigen[RO][PRIV][SENS] sudo wdutil info
Ausführliche WLAN-Hardwareinformationen[RO][SENS] system_profiler SPAirPortDataType
WLAN-Schnittstelle anzeigen[RO] ifconfig en0

Vor der Verwendung von en0 muss die tatsächliche Wi-Fi-Schnittstelle mit networksetup -listallhardwareports bestimmt werden.

Wichtige WLAN-Werte

WertBedeutung
SSIDName des WLANs
BSSIDMAC-Adresse des Access Points
RSSIEmpfangssignalstärke
NoiseGrundrauschen
ChannelVerwendeter Funkkanal
Tx RateAktuelle Übertragungsrate
PHY ModeVerwendeter WLAN-Standard
SecuritySicherheitsverfahren
MCSModulation and Coding Scheme
NSSAnzahl räumlicher Datenströme

Signalbewertung als grobe Orientierung

RSSIGrobe Einordnung
etwa -30 dBmSehr stark
etwa -50 dBmGut
etwa -67 dBmFür viele Anwendungen noch brauchbar
etwa -70 dBmSchwach
unter -80 dBmHäufig instabil

RSSI-Werte allein beweisen keinen Fehler. Kanalbelegung, Störungen, Rauschen, Wiederholungen, Access-Point-Auslastung und Roaming müssen ebenfalls berücksichtigt werden.

Grafische Wireless Diagnostics öffnen

  1. Wahltaste beziehungsweise Option gedrückt halten.
  2. In der Menüleiste auf das Wi-Fi-Symbol klicken.
  3. Wireless Diagnostics öffnen auswählen.
  4. Anweisungen des Assistenten befolgen.

Wireless Diagnostics verändert laut Apple nicht die Netzwerksettings. Nach einer Analyse kann eine Diagnosedatei unter /var/tmp erzeugt werden. Der Dateiname beginnt mit WirelessDiagnostics und endet mit .tar.gz.


12. Netzwerkqualität und Reaktionsfähigkeit messen

networkQuality misst nicht nur die verfügbare Kapazität, sondern auch die Reaktionsfähigkeit der Verbindung unter Last.

AufgabemacOS-Befehl
Standardmessung durchführen[TEST] networkQuality
Ausführliche Messung durchführen[TEST] networkQuality -v
Upload und Download nacheinander messen[TEST] networkQuality -s
Bestimmte Schnittstelle verwenden[TEST] networkQuality -I en0
Hilfe anzeigen[RO] networkQuality -h
Lokale Handbuchseite öffnen[RO] man networkQuality

Typische Ergebnisfelder

ErgebnisBedeutung
Downlink capacityGemessene Downloadkapazität
Uplink capacityGemessene Uploadkapazität
ResponsivenessReaktionsfähigkeit unter Last
Idle LatencyLatenz ohne zusätzliche Last
RPMRound-trips per Minute

Hinweise

  • Die Messung erzeugt aktiven Netzwerkverkehr.
  • Andere Benutzer und Anwendungen können das Ergebnis beeinflussen.
  • WLAN- und Ethernet-Ergebnisse sollten getrennt betrachtet werden.
  • Ein einzelner Test ist keine belastbare Langzeitmessung.
  • Für Vergleiche sollten mehrere Messungen unter ähnlichen Bedingungen durchgeführt werden.
  • VPN, Proxy, Filtersoftware und Private Relay können das Ergebnis beeinflussen.

13. Offene Ports, Verbindungen und Prozesse prüfen
AufgabemacOS-Befehl
Lauschende TCP-Ports anzeigen[RO][PRIV] sudo lsof -nP -iTCP -sTCP:LISTEN
Alle Netzwerkverbindungen anzeigen[RO][PRIV] sudo lsof -nP -i
TCP-Port 443 untersuchen[RO][PRIV] sudo lsof -nP -iTCP:443
UDP-Port 53 untersuchen[RO][PRIV] sudo lsof -nP -iUDP:53
TCP-Sockets anzeigen[RO] netstat -anv -p tcp
UDP-Sockets anzeigen[RO] netstat -anv -p udp
Netzwerkstatistik anzeigen[RO] netstat -s
Schnittstellenstatistik anzeigen[RO] netstat -ibn
Prozessdetails anzeigen[RO] ps -p 1234 -o pid,ppid,user,command

Interpretation

BeobachtungMögliche Bedeutung
Erwarteter Port fehltDienst läuft nicht oder lauscht auf einem anderen Port
Dienst lauscht auf 127.0.0.1Nur lokal erreichbar
Dienst lauscht auf 0.0.0.0Lauscht grundsätzlich auf allen IPv4-Schnittstellen
Dienst lauscht auf ::Lauscht auf IPv6; IPv4-Verhalten ist zusätzlich zu prüfen
Unerwarteter Prozess lauschtDienstzuordnung und Sicherheitslage prüfen
Viele Verbindungen im VerbindungsaufbauZiel, Route, Dienst oder Firewall antwortet möglicherweise nicht

14. TCP- und UDP-Ports aktiv testen
AufgabemacOS-Befehl
HTTPS-Port testen[TEST] nc -vz -w 3 example.com 443
SSH-Port testen[TEST] nc -vz -w 3 192.0.2.10 22
SMB-Port testen[TEST] nc -vz -w 3 192.0.2.10 445
Mehrere Ports testen[TEST] nc -vz -w 3 192.0.2.10 22 80 443
UDP-Port testen[TEST] nc -vzu -w 3 192.0.2.53 53

Mögliche Ergebnisse

ErgebnisBedeutung
succeededTCP-Verbindung konnte aufgebaut werden
Connection refusedZiel erreichbar, aber Port geschlossen oder aktiv abgelehnt
TimeoutKeine rechtzeitige Antwort; Firewall, Route oder Ziel prüfen
No route to hostKein verwendbarer Netzwerkweg oder entsprechende Rückmeldung
NamensauflösungsfehlerDNS-Konfiguration prüfen

Bei UDP kann ein fehlendes Ergebnis nicht zuverlässig beweisen, dass ein Port offen oder geschlossen ist.


15. macOS-Firewall und Packet Filter prüfen

macOS besitzt verschiedene Sicherheitskomponenten:

  • Application Firewall
  • Packet Filter pf
  • Network Extensions
  • Content Filter und Endpoint-Security-Produkte

Application Firewall

AufgabemacOS-Befehl
Globalen Firewallstatus anzeigen[RO] /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
Stealth-Modus anzeigen[RO] /usr/libexec/ApplicationFirewall/socketfilterfw --getstealthmode
Block-all-Modus anzeigen[RO] /usr/libexec/ApplicationFirewall/socketfilterfw --getblockall
Registrierte Anwendungen anzeigen[RO][PRIV][SENS] sudo /usr/libexec/ApplicationFirewall/socketfilterfw --listapps

Packet Filter

AufgabemacOS-Befehl
PF-Status anzeigen[RO][PRIV] sudo pfctl -s info
Geladene Regeln anzeigen[RO][PRIV][SENS] sudo pfctl -sr
NAT-Regeln anzeigen[RO][PRIV][SENS] sudo pfctl -sn
Status und Statistiken anzeigen[RO][PRIV] sudo pfctl -s all
PF-Tabellen anzeigen[RO][PRIV][SENS] sudo pfctl -s Tables

Prüfreihenfolge

  1. Prüfen, ob der Dienst lokal auf dem erwarteten Port lauscht.
  2. Bind-Adresse des Dienstes prüfen.
  3. Application-Firewallstatus prüfen.
  4. PF-Status und Regeln prüfen.
  5. Network Extensions und Sicherheitssoftware berücksichtigen.
  6. Port von einem autorisierten zweiten System testen.

Die Firewall nicht pauschal deaktivieren. Dadurch wird die Sicherheitslage verändert und das ursprüngliche Fehlerbild verfälscht.


16. Netzwerkprotokolle mit log untersuchen

macOS verwendet das Unified Logging System.

AufgabemacOS-Befehl
Meldungen der letzten 30 Minuten anzeigen[RO][PRIV][SENS] sudo log show --last 30m --style compact
Meldungen von mDNSResponder anzeigen[RO][PRIV][SENS] sudo log show --last 30m --predicate 'process == "mDNSResponder"' --style compact
Meldungen von configd anzeigen[RO][PRIV][SENS] sudo log show --last 30m --predicate 'process == "configd"' --style compact
WLAN-Prozesse suchen[RO][PRIV][SENS] sudo log show --last 30m --predicate 'process CONTAINS[c] "airport" OR process CONTAINS[c] "WiFi"' --style compact
DNS-Meldungen live verfolgen[RO][PRIV][SENS] sudo log stream --predicate 'process == "mDNSResponder"' --style compact
Allgemeine Netzwerkbegriffe suchen`[RO][PRIV][SENS] sudo log show --last 30m --style compact | grep -Ei 'network

Prüfpunkte

  • Exakter Zeitstempel der Störung
  • Betroffene Schnittstelle
  • DHCP-Ereignisse
  • DNS-Fehler
  • Verbindungsabbrüche
  • WLAN-Roaming
  • Authentifizierungsfehler
  • VPN- oder Network-Extension-Ereignisse
  • Interface-Wechsel
  • Schlaf- und Aufwachereignisse

Das macOS-Protokoll kann private und sensible Inhalte maskieren. Mit Administratorrechten können dennoch schützenswerte System- und Netzwerkdaten sichtbar werden.


17. Diagnoseinformationen sichern und vergleichen
AufgabemacOS-Befehl
Schnittstellen sichern[RO][FILE][SENS] ifconfig -a > interfaces.txt
Routingtabelle sichern[RO][FILE][SENS] netstat -rn > routes.txt
Standardroute sichern[RO][FILE][SENS] route -n get default > default-route.txt
DNS-Konfiguration sichern[RO][FILE][SENS] scutil --dns > dns-status.txt
Proxykonfiguration sichern[RO][FILE][SENS] scutil --proxy > proxy-status.txt
Netzwerkdienste sichern[RO][FILE][SENS] networksetup -listnetworkserviceorder > network-services.txt
Netzwerkübersicht sichern[RO][FILE][SENS] system_profiler SPNetworkDataType > network-profiler.txt
Offene Ports sichern[RO][PRIV][FILE][SENS] sudo lsof -nP -i > network-connections.txt
WLAN-Diagnose sichern[RO][PRIV][FILE][SENS] sudo wdutil info > wifi-status.txt

Zwei Zustände vergleichen

ifconfig -a > interfaces-vorher.txt
netstat -rn > routes-vorher.txt
scutil --dns > dns-vorher.txt

# Messung oder freigegebene Änderung durchführen

ifconfig -a > interfaces-nachher.txt
netstat -rn > routes-nachher.txt
scutil --dns > dns-nachher.txt

diff -u interfaces-vorher.txt interfaces-nachher.txt
diff -u routes-vorher.txt routes-nachher.txt
diff -u dns-vorher.txt dns-nachher.txt

Datenschutz

Diagnoseausgaben können enthalten:

  • interne und externe IP-Adressen
  • MAC-Adressen
  • DNS-Suchdomänen
  • WLAN-Namen und BSSIDs
  • VPN- und Proxyinformationen
  • Prozessnamen
  • Benutzerinformationen
  • installierte Network Extensions
  • interne Netzwerkstrukturen

Vor einer Weitergabe müssen sensible Angaben redigiert werden.


18. Eingreifende Befehle und Rückfallmöglichkeiten

Die folgenden Befehle verändern einen Zustand und können eine Remoteverbindung sofort unterbrechen.

MaßnahmemacOS-BefehlAuswirkung
DNS-Cache leeren[CHANGE][PRIV] sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderLokale DNS-Cacheeinträge werden verworfen
Wi-Fi ausschalten[CHANGE][PRIV][DISRUPT] sudo networksetup -setairportpower en0 offWLAN-Verbindung wird getrennt
Wi-Fi einschalten[CHANGE][PRIV] sudo networksetup -setairportpower en0 onWLAN wird wieder aktiviert
Schnittstelle deaktivieren[CHANGE][PRIV][DISRUPT] sudo ifconfig en0 downAlle Verbindungen über die Schnittstelle werden getrennt
Schnittstelle aktivieren[CHANGE][PRIV] sudo ifconfig en0 upSchnittstelle wird wieder aktiviert
Netzwerkdienst auf DHCP setzen[CHANGE][PRIV][DISRUPT] sudo networksetup -setdhcp "Wi-Fi"Vorhandene manuelle IPv4-Konfiguration wird ersetzt

en0 und Wi-Fi sind Beispiele. Vorher müssen die tatsächliche Schnittstelle und der tatsächliche Netzwerkdienst bestimmt werden.

Vor einem Eingriff prüfen

  • Erfolgt der Zugriff lokal oder per Remotezugriff?
  • Wird die aktive Managementverbindung unterbrochen?
  • Ist die aktuelle manuelle IP-Konfiguration dokumentiert?
  • Sind DNS-, Proxy- und VPN-Einstellungen gesichert?
  • Ist ein lokaler Zugriff auf den Mac möglich?
  • Wird der Mac durch MDM oder ein Konfigurationsprofil verwaltet?
  • Existiert eine geeignete Rückfallmöglichkeit?

Rollback-Beispiele

ÄnderungRückfall
Wi-Fi ausgeschaltetWi-Fi mit networksetup -setairportpower ... on wieder einschalten
Schnittstelle deaktiviertSchnittstelle mit ifconfig ... up wieder aktivieren
DHCP statt statischer IP gesetztDokumentierte IP-, Masken-, Router- und DNS-Werte wiederherstellen
Netzwerkumgebung gewechseltVorherige Netzwerkumgebung wieder auswählen
Proxy verändertDokumentierte Proxywerte wiederherstellen

Verifikation nach einer Änderung

networksetup -getinfo "Wi-Fi"
ifconfig en0
route -n get default
scutil --dns
ping -c 4 192.0.2.1
ping -c 4 1.1.1.1
dig example.com
nc -vz -w 3 example.com 443

19. Praktische macOS-Diagnosereihenfolge

Schritt 1 – macOS-Version erfassen

sw_vers

Schritt 2 – Netzwerkdienst und Schnittstelle zuordnen

networksetup -listallhardwareports
networksetup -listnetworkserviceorder

Schritt 3 – Schnittstellenstatus prüfen

ifconfig -a
netstat -ibn

Schritt 4 – IP-Konfiguration prüfen

networksetup -getinfo "Wi-Fi"
ipconfig getifaddr en0

Schritt 5 – Standardroute prüfen

route -n get default
route -n get 1.1.1.1

Schritt 6 – Nachbartabelle prüfen

arp -an
ndp -an

Schritt 7 – Standardgateway testen

ping -c 4 192.0.2.1

Schritt 8 – Externe IP-Adresse testen

ping -c 4 1.1.1.1

Schritt 9 – DNS-Konfiguration prüfen

scutil --dns
networksetup -getdnsservers "Wi-Fi"

Schritt 10 – DNS-Auflösung testen

dscacheutil -q host -a name example.com
dig example.com

Schritt 11 – Proxy und VPN prüfen

scutil --proxy
scutil --nwi
ifconfig -l | tr ' ' '\n' | grep '^utun'

Schritt 12 – Zielport testen

nc -vz -w 3 example.com 443

Schritt 13 – Lokale Ports prüfen

sudo lsof -nP -iTCP -sTCP:LISTEN

Schritt 14 – Netzwerkpfad prüfen

traceroute -n example.com

Schritt 15 – Netzwerkqualität messen

networkQuality -v

Schritt 16 – Firewall und Protokolle prüfen

/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
sudo pfctl -s info
sudo log show --last 30m --style compact

Diagnoselogik

ErgebnisNächster Schwerpunkt
Schnittstelle fehltAdapter, USB-/Thunderbolt-Verbindung oder Hardware prüfen
Schnittstelle inaktivWLAN, Kabel, Netzwerkdienst oder Port prüfen
Keine passende IP-AdresseDHCP oder manuelle Konfiguration prüfen
Keine StandardrouteRouter, Dienstreihenfolge, VPN oder Konfiguration prüfen
Gateway nicht erreichbarLokales Netz, WLAN, VLAN, Switch oder Router prüfen
Externe IP erreichbar, DNS-Name nichtResolver, DNS-Server und Split-DNS prüfen
Ziel-IP erreichbar, Zielport nichtDienst, Bind-Adresse und Firewall prüfen
Nur Anwendungen betroffenProxy, TLS, Private Relay oder Network Extension prüfen
Falsche Route über utunVPN- beziehungsweise Filtersoftware prüfen
Schlechte WLAN-WerteSignal, Kanal, Rauschen, Roaming und Access Point prüfen

Kurzreferenz

DiagnosezielmacOS-Befehl
macOS-Version[RO] sw_vers
Hardwareports[RO] networksetup -listallhardwareports
Netzwerkdienste[RO] networksetup -listallnetworkservices
Dienstreihenfolge[RO] networksetup -listnetworkserviceorder
Netzwerkschnittstellen[RO] ifconfig -a
Schnittstellenstatistik[RO] netstat -ibn
IPv4-Adresse[RO] ipconfig getifaddr en0
Dienstinformationen[RO] networksetup -getinfo "Wi-Fi"
Standardroute[RO] route -n get default
Route zu einem Ziel[RO] route -n get 1.1.1.1
IPv4-Routingtabelle[RO] netstat -rn -f inet
ARP-Tabelle[RO] arp -an
IPv6-Nachbarn[RO] ndp -an
Gateway testen[TEST] ping -c 4 192.0.2.1
Netzwerkpfad[TEST] traceroute -n example.com
DNS-Konfiguration[RO] scutil --dns
DNS-Abfrage[TEST] dig example.com
Systemresolver testen[TEST] dscacheutil -q host -a name example.com
Proxykonfiguration[RO] scutil --proxy
Netzwerkstatus[RO] scutil --nwi
WLAN-Informationen[RO][PRIV] sudo wdutil info
Netzwerkqualität[TEST] networkQuality -v
Lauschende Ports[RO][PRIV] sudo lsof -nP -iTCP -sTCP:LISTEN
TCP-Port testen[TEST] nc -vz -w 3 example.com 443
Application Firewall[RO] /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
Packet Filter[RO][PRIV] sudo pfctl -s info
Systemprotokoll[RO][PRIV] sudo log show --last 30m --style compact

Veraltete beziehungsweise nicht mehr zuverlässige Werkzeuge

WerkzeugBewertung
Privates airport-KommandozeilenwerkzeugAuf aktuellen macOS-Versionen nicht als zuverlässiger Standard verwenden
ifconfigUnter macOS weiterhin Bestandteil des Systems und für Diagnose geeignet
netstatUnter macOS weiterhin für Routing-, Socket- und Schnittstellendiagnose verwendbar
wdutilAuf aktuellen macOS-Versionen für WLAN-Diagnose bevorzugen
Wireless DiagnosticsVon Apple bereitgestelltes grafisches Diagnosewerkzeug

Merksatz

Die macOS-Netzwerkdiagnose folgt der Kette: Netzwerkdienst → Schnittstelle → Link → IP-Adresse → Nachbartabelle → Route → Gateway → DNS → Proxy/VPN → Zielport → lokaler Dienst → Firewall → Protokolle.


Quellen