3307 Stimmen

Wie können Sie herausfinden, welcher Prozess auf einem TCP- oder UDP-Port unter Windows lauscht?

Wie können Sie herausfinden, welcher Prozess auf einem TCP- oder UDP-Port unter Windows lauscht?

9 Stimmen

Currports ist ein Tool, das auch beim Suchen und Filtern hilft nirsoft.net/utils/cports.html

3 Stimmen

Ich bin auf dieses Problem gestoßen, als ich versucht habe, Tomcat unter IntelliJ im Debug-Modus laufen zu lassen. Die beste Lösung für mich bestand darin, die Konfiguration des Debug-Transports (File->Settings->Build/exe/deploy->Debugger) von "socket" auf "shared memory" zu ändern.

113 Stimmen

netstat -aof | findstr :8080 (Ändern Sie 8080 für einen beliebigen Port)

102voto

Nathan24 Punkte 1350

Weitere Informationen erhalten Sie, wenn Sie den folgenden Befehl ausführen:

netstat -aon | find /i "listening" |find "port"

Mit dem Befehl "Suchen" können Sie die Ergebnisse filtern. find /i "listening" werden nur die Ports angezeigt, die 'Listening' sind. Beachten Sie, dass Sie die /i um die Groß- und Kleinschreibung zu ignorieren, sonst würde man "LISTENING" finden. | find "port" schränkt die Ergebnisse auf diejenigen ein, die die spezifische Portnummer enthalten. Beachten Sie, dass dabei auch Ergebnisse herausgefiltert werden, die die Portnummer irgendwo im Antwortstring enthalten.

10 Stimmen

FWIW Versuch, dies in PowerShell v2.0 auszuführen, ergibt Fehler FIND: Parameter format not correct . Nach den Suchkriterien müssen Sie ein Leerzeichen einfügen. Dadurch erhalten Sie netstat -aon | find /i "listening" | find "1234 " .

3 Stimmen

Ersetzen Sie "port" oben durch Ihren Port, z. B. "5000".

1 Stimmen

@self. Mit PS 5.1 erhalte ich diesen Fehler immer noch, auch nachdem ich das Leerzeichen nach der Pipe hinzugefügt habe. Wissen Sie, was los ist?

88voto

Cyborg Punkte 1244
  1. Öffnen Sie ein Eingabeaufforderungsfenster (als Administrator) von "Start \Search Box" Geben Sie "cmd" ein, klicken Sie mit der rechten Maustaste auf "cmd.exe" und wählen Sie "Als Administrator ausführen".

  2. Geben Sie den folgenden Text ein und drücken Sie die Eingabetaste.

    netstat -abno

    -a Zeigt alle Verbindungen und lauschenden Ports an.

    -b Zeigt die ausführbare Datei an, die an der Erstellung jeder Verbindung oder jedes lauschenden Anschluss. In einigen Fällen hosten bekannte ausführbare Programme mehrere unabhängige Komponenten, und in diesen Fällen wird die Reihenfolge der Komponenten, die an der Erstellung der Verbindung oder des überwachenden Anschlusses beteiligt sind, angezeigt. In diesem Fall steht der Name der ausführbaren Datei In diesem Fall steht der Name der ausführbaren Datei unten in [], oben steht die Komponente, die sie aufgerufen hat, und so weiter, bis TCP/IP erreicht wurde. Beachten Sie, dass diese Option zeitaufwendig sein kann und fehlschlägt, wenn Sie nicht über ausreichende Berechtigungen.

    -n Zeigt Adressen und Portnummern in numerischer Form an.

    -o Zeigt die eigene Prozess-ID an, die mit jeder Verbindung verbunden ist.

  3. Suchen Sie den Port, den Sie abhören, unter "Lokale Adresse".

  4. Sehen Sie sich den Prozessnamen direkt darunter an.

HINWEIS: Um den Prozess im Task-Manager zu finden

  1. Notieren Sie sich die PID (Prozesskennung) neben dem Anschluss, den Sie betrachten.

  2. Öffnen Sie den Windows Task-Manager.

  3. Wählen Sie die Registerkarte Prozesse.

  4. Suchen Sie nach der PID, die Sie bei der Durchführung von netstat in Schritt 1 notiert haben.

    • Wenn Sie keine PID-Spalte sehen, klicken Sie auf Ansicht / Spalten auswählen. Wählen Sie PID.

    • Vergewissern Sie sich, dass "Prozesse von allen Benutzern anzeigen" ausgewählt ist.

67voto

ROMANIA_engineer Punkte 50874

PID und Bildname abrufen

Verwenden Sie nur einen Befehl:

for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /FI "PID eq %a"

wobei 9000 sollte durch Ihre Portnummer ersetzt werden.

El Ausgabe wird etwa Folgendes enthalten:

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
java.exe                      5312 Services                   0    130,768 K

Erläuterung:

  • durchläuft er jede Zeile der Ausgabe des folgenden Befehls:

    netstat -aon | findstr 9000
  • aus jeder Zeile, die PID ( %a - der Name ist hier nicht wichtig) wird extrahiert (PID ist die 5 th Element in dieser Zeile) und an den folgenden Befehl übergeben

    tasklist /FI "PID eq 5312"

Wenn Sie möchten, dass überspringen die Kopfzeile und die Rückkehr der Eingabeaufforderung können Sie verwenden:

echo off & (for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /NH /FI "PID eq %a") & echo on

Ausgabe:

java.exe                      5312 Services                   0    130,768 K

2 Stimmen

Gute Antwort, aber Sie sollten sie ändern in findstr :9000 Wenn nicht, würden Sie sogar Anwendungen finden, die die Nummer enthalten (wenn Sie z. B. nach "80" suchen, würden Sie auch Anwendungen für Port 80, 800 und 8000 finden).

63voto

Pankaj Pateriya Punkte 601

Zuerst finden wir die Prozess-ID der bestimmten Aufgabe, die wir eliminieren müssen, um den Anschluss frei zu bekommen:

Typ

netstat -n -a -o

Nachdem Sie diesen Befehl in der Windows-Eingabeaufforderung (cmd) ausgeführt haben, wählen Sie die pid aus, die ich für die letzte Spalte halte. Nehmen wir an, dies ist 3312.

Jetzt tippen

taskkill /F /PID 3312

Sie können nun eine Gegenprobe machen, indem Sie die netstat Befehl.

HINWEIS: Manchmal erlaubt es Windows nicht, diesen Befehl direkt über CMD auszuführen, daher müssen Sie zuerst diese Schritte ausführen:

Über das Startmenü -> Eingabeaufforderung (klicken Sie mit der rechten Maustaste auf die Eingabeaufforderung, und führen Sie sie als Administrator aus)

62voto

bahrep Punkte 27861

Führen Sie mit PowerShell 5 unter Windows 10 oder Windows Server 2016 Folgendes aus Get-NetTCPConnection cmdlet. Ich vermute, dass es auch auf älteren Windows-Versionen funktionieren sollte.

Die Standardausgabe von Get-NetTCPConnection enthält aus irgendeinem Grund keine Prozess-ID, was ein wenig verwirrend ist. Sie können sie jedoch jederzeit durch Formatierung der Ausgabe ermitteln. Die Eigenschaft, nach der Sie suchen, lautet OwningProcess .

  • Wenn Sie die ID des Prozesses herausfinden wollen, der den Port 443 abhört, führen Sie diesen Befehl aus:

      PS C:\> Get-NetTCPConnection -LocalPort 443 | Format-List
    
      LocalAddress   : ::
      LocalPort      : 443
      RemoteAddress  : ::
      RemotePort     : 0
      State          : Listen
      AppliedSetting :
      OwningProcess  : 4572
      CreationTime   : 02.11.2016 21:55:43
      OffloadState   : InHost
  • Formatieren Sie die Ausgabe in eine Tabelle mit den gesuchten Eigenschaften:

      PS C:\> Get-NetTCPConnection -LocalPort 443 | Format-Table -Property LocalAddress, LocalPort, State, OwningProcess
    
      LocalAddress LocalPort  State OwningProcess
      ------------ ---------  ----- -------------
      ::                 443 Listen          4572
      0.0.0.0            443 Listen          4572
  • Wenn Sie den Namen des Prozesses herausfinden wollen, führen Sie diesen Befehl aus:

      PS C:\> Get-Process -Id (Get-NetTCPConnection -LocalPort 443).OwningProcess
    
      Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
      -------  ------    -----      -----     ------     --  -- -----------
      143      15     3448      11024              4572   0 VisualSVNServer

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X