aktive Netzwerkverbindungen und Prozesse anzeigen | Windows

This page is also available in English

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

  • Für ausgehend ist die Remote-Adresse und der RemotePort sowie der ProzessName interessant. (LocalPort: HighPort)
  • Für eingehende Verbindungen, z. B. ein Webservice auf dem lokalen PC mit Port 80:
    LocalAddress: IP des lokalen Gerätes; LocalPort: 80, RemoteAddress: IP-Adresse des Remote-Gerätes, RemotePort: HighPort 
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 

netstat -ano | find "FILTER"

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.

 

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!

Aktualisiert: 12.04.2022 von Bernhard


Top-Artikel in diesem Bereich


IP Adressen im Netzwerk finden, auch wenn deren Firewall aktiviert ist
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...

PING mit Port - Windows cmd | PowerShell: Test-Netconnection
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...

cmd Befehle für die Netzwerkanalyse
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)]

✍anonym
14.05.2017 06:13
User: Johannes.hauswaldt@med.uni-Goettingen.de 
Netzwerke werden nicht angezeigt, obwohl die Verbindungen stehen
Was tun?

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details