aktive Netzwerkverbindungen und Prozesse anzeigen | Windows
Für einen schnellen Überblick, welche Programme oder Dienste eine aktive Netzwerkverbindung haben, können diese über einfache Befehle aufgelistet oder über bestimmte Tools überwacht und analysiert werden. Der Inhalt dieses Beitrages kann auch als YouTube-Video angesehen werden.
PowerShell: Get-NetTCPConnection
Als Alternative zum CMD-Befehl „netstat“, kann in PowerShell der Befehl „Get-NetTCPConnection“ für die Anzeige der Netzwerkverbindungen verwendet werden. Die folgende Befehlszeile kombiniert Get-NetTCPConnection mit Get-Process und Out-GridView. Das Ergebnis ist eine Liste aller eingehenden und ausgehenden Netzwerkverbindungen und deren Prozesse.
Die folgende Zeile kann einfach über die Zwischenablage (Strg+C) in Windows PowerShell eingefügt werden (Strg+V):
Get-NetTCPConnection | Where-Object state -ne Bound | Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,State,OwningProcess, @{n="ProzessName"; e={( Get-Process -Id $_.OwningProcess).ProcessName}} | Out-GridView
Dank Out-GridView können die angezeigten Netzwerkverbindungen einfach sortiert und gefiltert werden:
(Hier Verbindung von Microsoft Edge auf eine Webseite mit Port 443)
Legende:
LocalAddress | lokale Netzwerkadresse (eigene Adresse) eigene IP-Adresse oder 0.0.0.0 (::) für beliebige Adresse |
---|---|
LocalPort | lokaler Netzwerkport |
RemoteAddress | Netzwerkadresse des Remotegerätes |
RemotePort | Netzwerkport des Remotegerätes |
OwningProcess | Prozess-ID (PID) des Dienstes welcher die Verbindung aufbaut oder empfängt |
ProzessName | Prozess Name von „Get-Prozess“ |
State
Listen | warten auf Verbindung Meist auf einer beliebigen eigenen Adresse (0.0.0.0) und einem lokalen Port. Auf den hier angeführten lokalen Port kann von einem Remote-Geräte eine Verbindung aufgebaut werden. |
---|---|
Bound | Socket erstellt (bind), aber kein weiterer Aufruf (listen, accept, connect, close) |
Established |
Verbindung hergestellt
|
SynSent |
ausgehender Verbindungsversuch |
SynReceived |
eingehender Verbindungsversuch |
Closing | Beide Sockets beendet, aber noch nicht alle Daten gesendet |
CloseWait | Das Remote-Gerät hat die Verbindung abgebrochen |
Closed | Socket ist nicht verwendet |
TimeWait | Socket wartet nach dem Schließen, um Pakete im Netzwerk noch zu verarbeiten |
LastAck | Das Remotegeräte hat die Verbindung beendet, der Socket ist geschlossen, warte auf Bestätigung |
FinWait1 | Socket geschlossen und die Verbindung wird beendet |
FinWait2 | Verbindung beendet, der Socket wartet auf das Beenden des Remotegeräts |
Wie stellt sich die Befehlszeile zusammen, der Reihe nach
Get-NetTCPConnection zeigt alle aktiven Netzwerkverbindungen des PCs:
PS C:\Users\LiBe> Get-NetTCPConnection
LocalAddress LocalPort RemoteAddress RemotePort State AppliedSetting
------------ --------- ------------- ---------- ----- --------------
:: 445 :: 0 Listen
:: 135 :: 0 Listen
...
192.168.1.198 49808 116.203.238.206 443 Established Internet
....
Wie in PowerShell üblich, kann über ein Pipe und „where“ gezielt gefiltert werden:
PS C:\Users\LiBe> Get-NetTCPConnection | where RemoteAddress -Like "116*"
LocalAddress LocalPort RemoteAddress RemotePort State AppliedSetting
------------ --------- ------------- ---------- ----- --------------
192.168.1.198 49827 116.203.238.206 443 Established Internet
In der Standardausgabe fehlt die Prozess-ID, diese kann wie folgt angezeigt werden:
PS C:\Users\LiBe> Get-NetTCPConnection | where RemoteAddress -Like "116*" | Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,State,OwningProcess | Format-Table
LocalAddress LocalPort RemoteAddress RemotePort State OwningProcess
------------ --------- ------------- ---------- ----- -------------
192.168.1.198 49843 116.203.238.206 443 Established 6224
Mit dem Befehl Get-Prozess kann der ProzessName für die PID ausgelesen werden.
PS C:\Users\LiBe> Get-Process -Id 6224
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
288 19 10924 24952 1,89 6224 1 msedge
Kombiniert:
PS C:\Users\LiBe> Get-NetTCPConnection | Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,State,OwningProcess, @{n="ProzessName"; e={( Get-Process -Id $_.OwningProcess).ProcessName}} | Format-Table
LocalAddress LocalPort RemoteAddress RemotePort State OwningProcess ProzessName
------------ --------- ------------- ---------- ----- ------------- -----------
:: 49670 :: 0 Listen 708 services
:: 49669 :: 0 Listen 2760 spoolsv
:: 49668 :: 0 Listen 2096 svchost
...
:: 49665 :: 0 Listen 600 wininit
:: 49664 :: 0 Listen 744 lsass
:: 445 :: 0 Listen 4 System
:: 135 :: 0 Listen 992 svchost
0.0.0.0 49849 0.0.0.0 0 Bound 6224 msedge
0.0.0.0 49848 0.0.0.0 0 Bound 7744 msedgewebview2
0.0.0.0 49847 0.0.0.0 0 Bound 7744 msedgewebview2
0.0.0.0 49846 0.0.0.0 0 Bound 7744 msedgewebview2
....
0.0.0.0 49713 0.0.0.0 0 Bound 8700 SystemSettings
0.0.0.0 49707 0.0.0.0 0 Bound 6224 msedge
0.0.0.0 49673 0.0.0.0 0 Bound 2716 svchost
192.168.1.198 49849 116.203.238.206 443 Established 6224 msedge
192.168.1.198 49820 40.97.120.130 443 Established 5252 SearchHost
192.168.1.198 49707 192.168.1.166 8009 Established 6224 msedge
192.168.1.198 49673 20.199.120.85 443 Established 2716 svchost
...
netstat: Windows / Linux
Der Befehl netstat ist sowohl in Linux als auch in Windows verfügbar und bietet die Möglichkeit, alle Netzwerkverbindungen und offene Ports anzuzeigen. Der Aufruf in Windows erfolgt über die Eingabeaufforderung, durch Eingabe des folgenden Befehls:
netstat -ano
Die Parameter -ano bedeuten:
- a bedeutet: alle Verbindungen
- n: Adressen und Portnummern numerisch
- o: zusätzlich die PID anzeigen (also welcher Prozess dahinter steckt)
der Status
ABHÖREN bedeutet: Der Client horcht auf diesen Port. Er wartet also, bis ein anderes Netzwerkgerät eine Verbindung zu ihm aufbaut.
SYN_GESENDET: Der Client baut gerade eine Verbindung auf und wartet auf die Antwort.
HERGESTELLT entsprechend: Verbindung hergestellt.
Filter
Solle die Ausgabe zu viele Einträge enthalten, kann die Ausgabe durch den Befehl "find"
gefiltert werden, also
Prozesse
Mit dem Parameter /b versucht netstat anhand der PID den dahinterliegenden Prozess anzuzeigen, hierfür sind Administratorrechte erforderlich:
TCPView
Mit dem kostenlosen Tool TCPView können, ähnlich Get-NetTCPConnection, alle Verbindungen angezeigt werden. Das Tool besteht aus einer simplen .exe Datei und muss nicht installiert werden.
technet.microsoft.com/de-at/sysinternals/bb897437.aspx
CurrPorts
Einen erweiterten Funktionsumfang bietet das ebenfalls kostenlose Tool, CurrPorts, von nirsoft. Zu den zusätzlichen Funktionen zählen eine Benachrichtigung bei neuen Verbindungen, Filter und die Möglichkeit ein Logfile aufzuzeichnen. Auch CurrPorts besteht aus einer simplen exe-Datei und muss, wie auch TCPView, nicht installiert werden.
Bestimmte Dienste können durch Rechtsklick und „Exclude in Filter“ ausgenommen werden, oder nur bestimmte Dienste mit „Include in Filter“ beobachtet werden.
Damit die Ansicht automatisch aktualisiert wird, kann ein Autorefresh Intervall gesetzt werden:
Tooltip-Benachrichtigung mittels „Tray Ballon On New Ports“
Browser – Element untersuchen
Um die Kommunikation des Browsers beim Aufruf einer Webseite anzuzeigen, beinhalten alle modernen Browser die Möglichkeit, Netzwerkaufrufe sichtbar zu machen. In Google Chrome, Internet Explorer, Firefox und Microsoft Edge mit einem „Rechtsklick“ auf die Webseite und: „Element untersuchen“
im Reiter Netzwerk werden die geladenen Elemente angezeigt:
Wireshark
Wireshark ist ein extrem mächtiges Werkzeug. Das Open-Source-Programm bietet erfahrenen Benutzern die Möglichkeit, den Netzwerkverkehr genau zu analysieren. Wireshark ist aber nicht nur für Spezialisten geeignet. Dank der zahlreichen Filter und Funktionen, sollte es jedermann sehr schnell möglich sein, einen Überblick über den Netzwerkverkehr zu bekommen:
Zum Beispiel können unter Statistics / Endpoints alle Geräte, zu und von denen eine Netzwerkverbindung initiiert wurde, angezeigt werden:
Windows Performance Toolkit
Ein Trace aus Sicht des Betriebssystems kann über das Windows Performance Toolkit erstellt werden. Dabei wird zu den Prozessen und Events auch deren Netzwerkkommunikation protokolliert, als Beispiel bei einem Logon-Trace, siehe: Xperf - Boot und Shutdown Analyse
Verbindung verbieten
siehe: Windows Firewall - ausgehende Regeln konfigurieren
YouTube-Video
YouTube-Video zu diesem Beitrag:
Fazit
Für einen schnellen Überblick über aktive Netzwerkverbindungen reicht ein einfacher Befehl in PowerShell: Get-NetTCPConnection oder der Eingabeaufforderung netstat. Für einen besseren Überblick oder mehr Details können spezielle Programme verwendet werden, bis hin zum Netzwerksniffer: Wireshark, welcher den kompletten Netzwerktraffic aufzeichnen kann.

{{percentage}} % positiv

DANKE für deine Bewertung!
Top-Artikel in diesem Bereich
Wer einen schnellen Überblick über alle aktiven Geräte in einem Netzwerk bekommen will, kann dies mit der Netzwerkerkennung, mit Befehlen in der Eingabeaufforderung, in PowerShell oder mit speziellen IP-Scannern. Die zu Beginn dieses Beitrages zusammengestellten PowerShell-Befehle geben einen schnellen Überblick über alle Geräte im lokalen Netzwerk und machen spezielle Programme für das Scannen des Netzwerks eventuell überflüssig. Wer die Befehle gerne in Aktion sehen will, kann dies in meinem Y...
Mit dem Tool Ping kann bekanntlich der Zugriff zu einem bestimmten Netzwerkgerät und dessen Antwortzeit getestet werden. Nicht alle Geräte antworten auf einen Ping, möglicherweise aber auf einen bestimmten TCP-Port, vorausgesetzt, es wird darüber ein bestimmter Netzwerkservice zur Verfügung gestellt. Windows PowerShell ermöglicht es, einen bestimmten Port mit Windows Bordmitteln zu testen. Das Tool PSping kann zudem die Antwortzeit auf einen bestimmten Port messen. Wer die Befehle gerne in Aktio...
Mit einfachen Befehlen kann ein schneller Überblick über die aktuellen Netzwerkeinstellungen ausgelesen werden, eventuelle Verbindungsfehler gefunden, oder ein Überblick über andere Geräte im Netzwerk verschafft werden. Die hier beschriebenen Befehle sind cmd-Befehle. Die Eingabe erfolgt über die Eingabeaufforderung: cmd, siehe auch das zugehörige YouTube-Video.
Fragen / Kommentare
(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]