networking show - Wie können Sie herausfinden, welcher Prozess auf einem Port unter Windows abhört?




is if (20)

Wie können Sie herausfinden, welcher Prozess auf einem Port unter Windows abhört?


Answers

Wenn Sie ein GUI-Tool dazu verwenden TCPView gibt es TCPView .


Für diejenigen, die Powershell verwenden, versuchen Sie Get-NetworkStatistics :

> Get-NetworkStatistics | where Localport -eq 8000


ComputerName  : DESKTOP-JL59SC6
Protocol      : TCP
LocalAddress  : 0.0.0.0
LocalPort     : 8000
RemoteAddress : 0.0.0.0
RemotePort    : 0
State         : LISTENING
ProcessName   : node
PID           : 11552

Wenn Sie unter Windows nach Geräten suchen möchten, die mit Port 1234 verbunden sind, führen Sie Folgendes an der Eingabeaufforderung "cmd" aus:

netstat -na | find "1234"

netstat -aon | findstr :DESIRED_PORT_NUMBER den folgenden Befehl ein: netstat -aon | findstr :DESIRED_PORT_NUMBER netstat -aon | findstr :DESIRED_PORT_NUMBER

Zum Beispiel, wenn ich Port 80 finden möchte: netstat -aon | findstr :80 netstat -aon | findstr :80

Diese Antwort wurde ursprünglich in diesem Thread gepostet.


C:\> netstat -a -b

(fügen Sie -n hinzu , um zu verhindern, dass Hostnamen aufgelöst werden, wodurch es viel schneller wird)

Hinweis TCPView Empfehlung für TCPView . Sieht sehr nützlich aus!

-a Zeigt alle Verbindungen und Überwachungsports an.

-b Zeigt die ausführbare Datei an, die beim Erstellen jeder Verbindung oder jedes empfangenden Ports beteiligt ist. In einigen Fällen enthalten bekannte ausführbare Dateien mehrere unabhängige Komponenten, und in diesen Fällen wird die Reihenfolge der Komponenten angezeigt, die an der Erstellung des Verbindungs- oder Überwachungsports beteiligt sind. In diesem Fall befindet sich der ausführbare Name unten in [], oben ist die aufgerufene Komponente und so weiter, bis TCP / IP erreicht wurde. Beachten Sie, dass diese Option zeitaufwändig sein kann und nur dann fehlschlägt, wenn Sie über ausreichende Berechtigungen verfügen.

-n Zeigt Adressen und Portnummern in numerischer Form an.

-o Zeigt die Eignerprozess-ID an, die jeder Verbindung zugeordnet ist.


Sie können weitere Informationen erhalten, 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" zeigt nur Ports an, die "Listening" sind. Beachten Sie, dass Sie / i ignorieren müssen. Andernfalls geben Sie "find" ein. | find "port" beschränkt die Ergebnisse nur auf diejenigen, die die spezifische Portnummer enthalten. Beachten Sie, dass in diesem Fall auch Ergebnisse gefiltert werden, deren Portnummer irgendwo in der Antwortzeichenfolge steht.


Wenn die Portänderung nicht funktioniert:

Schritt-1: Gehen Sie zu den Diensten, indem Sie in Windows nach "Diensten" suchen.

Schritt-2: Bestellen Sie alle Dienstleistungen in alphabetischer Reihenfolge (nicht notwendig)

Schritt 3: Stoppen Sie alle MYSQL-bezogenen Dienste.

Schritt-4: Starten Sie mysql von xampp.


Wenn Sie den Prozessnamen basierend auf der Portnummer suchen möchten.
Ich fand dieses mit etwas Surfen durch mehrere Seiten.
Öffnen Sie die Eingabeaufforderung als Administrator.
1. Finden Sie die PID des laufenden Prozesses in der Portnummer. Ex-8080
netstat -abon | findStr "8080"
2. Suchen Sie den Prozess Name nach PID
tasklist /fi "pid eq 13556"


Verwenden Sie TCPView wenn Sie eine GUI dafür möchten. Es ist die alte Sysinternals-App, die Microsoft gekauft hat.


netstat -ao und netstat -ab sagen Ihnen die Anwendung, aber wenn Sie nicht admin sind, erhalten Sie "Die angeforderte Operation erfordert Erhöhung".

Es ist nicht ideal, aber wenn Sie sysinternals Process Explorer verwenden, können Sie zu den Eigenschaften bestimmter Prozesse gehen und auf der Registerkarte TCP nachsehen, ob sie den Port verwenden, an dem Sie interessiert sind. Ein bisschen Nadel und Heuhaufen, aber vielleicht es wird jemandem helfen ....


Es gibt eine native GUI für Windows:

  • Start >> Alle Programme >> Zubehör >> System Tools >> Ressourcenmonitor

oder Führen Sie resmon.exe oder auf der TaskManager- Registerkarte Leistung aus


Zuerst finden wir die Prozess-ID dieser speziellen Aufgabe, die wir eliminieren müssen, um portfrei zu werden

Art
netstat -n -a -o

Nach dem Ausführen dieses Befehls in Windows-Eingabeaufforderung (cmd) wählen Sie die PID, die ich glaube, dass die letzte Spalte 3312 ist

Jetzt tippen

Taskkill / F / PID 3312

Sie können nun die Überprüfung überprüfen, indem Sie den Befehl netstat eingeben.

HINWEIS: Windows lässt es manchmal nicht zu, dass Sie diesen Befehl direkt in CMD ausführen, daher müssen Sie zuerst diese Schritte von der Start-> Eingabeaufforderung ausführen (Rechtsklick auf die Eingabeaufforderung und Ausführen als Administrator)


Powershell verwenden ...
... das wäre dein Freund (ersetze 8080 durch deine Portnummer):

 netstat -abno | Select-String -Context 0,1 -Pattern 8080

Beispielausgabe

>   TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING         2920
   [tnslsnr.exe]
>   TCP    [::]:8080              [::]:0                 LISTENING         2920
   [tnslsnr.exe]

In diesem Beispiel überwacht tnslsnr.exe (OracleXE-Datenbank) Port 8080.

Schnelle Erklärung
Select-String wird verwendet, um die lange Ausgabe von netstat für die relevanten Zeilen zu filtern.
-Pattern testet jede Zeile gegen einen regulären Ausdruck.
-Context 0,1 gibt für jede -Context 0,1 0 führende Zeilen und 1 -Context 0,1 Zeile aus.


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

Die Standardausgabe von Get-NetTCPConnection enthält keine Prozess-ID aus irgendeinem Grund und es ist ein wenig verwirrend. Sie können es jedoch immer erhalten, indem Sie die Ausgabe formatieren. Die Eigenschaft, nach der Sie suchen, ist OwningProcess .

  • Wenn Sie die ID des Prozesses ermitteln möchten, der Port 443 überwacht, führen Sie folgenden 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 einen Namen des Prozesses herausfinden möchten, 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
    

  1. Öffnen Sie ein Eingabeaufforderungsfenster (als Administrator) Von "Start \ Suchfeld" Geben Sie "cmd" ein, klicken Sie dann 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 Überwachungsports an.

    -b Zeigt die ausführbare Datei an, die beim Erstellen jeder Verbindung oder jedes empfangenden Ports beteiligt ist. In einigen Fällen enthalten bekannte ausführbare Dateien mehrere unabhängige Komponenten, und in diesen Fällen wird die Reihenfolge der Komponenten angezeigt, die an der Erstellung des Verbindungs- oder Überwachungsports beteiligt sind. In diesem Fall befindet sich der ausführbare Name unten in [], oben ist die aufgerufene Komponente und so weiter, bis TCP / IP erreicht wurde. Beachten Sie, dass diese Option zeitaufwändig sein kann und nur dann fehlschlägt, wenn Sie über ausreichende Berechtigungen verfügen.

    -n Zeigt Adressen und Portnummern in numerischer Form an.

    -o Zeigt die Eignerprozess-ID an, die jeder Verbindung zugeordnet ist.

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

  4. Sehen Sie sich den Prozessnamen direkt darunter an.

Hinweis: um den Prozess unter Task-Manager zu finden

  1. Notieren Sie die PID (Prozess-ID) neben dem Port, 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 beim Ausführen von netstat in Schritt 1 notiert haben.

    • Wenn Sie keine PID-Spalte sehen, klicken Sie auf View / Select Columns. Wählen Sie PID.

    • Stellen Sie sicher, dass "Prozesse von allen Benutzern anzeigen" ausgewählt ist.


Es ist sehr einfach, die Portnummer von PID in Windows zu erhalten.

Die folgenden sind die Schritte:

1) Gehe zu run -> gebe cmd ein -> drücke Enter.

2) schreibe den folgenden Befehl ...

netstat -aon | findstr [port number]

(Hinweis: keine eckigen Klammern enthalten.)

3) drücke Enter ...

4) Dann gibt cmd Ihnen die Details des Dienstes, der auf diesem Port läuft, zusammen mit pid.

5) Öffnen Sie den Task-Manager und klicken Sie auf den Service-Tab und passen Sie die PID mit der von der cmd und das ist es.


Öffnen Sie einfach eine Befehlsshell und geben Sie Folgendes ein: (Ihr Port ist 123456)

netstat -a -n -o | find "123456"

Sie werden alles sehen, was Sie brauchen

Die Header sind:

 Proto  Local Address          Foreign Address        State           PID
 TCP    0.0.0.0:37             0.0.0.0:0              LISTENING       1111

Dies ist wie here erwähnt


netstat -a -o Zeigt die PID des Prozesses an, der auf einem bestimmten Port ausgeführt wird.

Beachten Sie die Prozess-ID und gehen Sie zu Task-Manager und Services oder Details Registerkarte und beenden Sie den Prozess, der die gleiche PID hat.

So können Sie einen Prozess beenden, der auf einem bestimmten Port in Windows ausgeführt wird.


Um eine Liste aller Besitzprozess-IDs zu erhalten, die jeder Verbindung zugeordnet sind:

netstat -ao |find /i "listening"

Wenn Sie einen Prozess beenden möchten, müssen Sie die ID verwenden und diesen Befehl verwenden, damit der Port frei wird

Taskkill /F /IM pidof a process

Dies ist das Symptom für größere Probleme. Vor allem, dass Sie etwas Einstellung TERM = dumm haben. Andere Dinge, die nicht richtig funktionieren, sind der less Befehl, der besagt, dass Sie kein voll funktionsfähiges Terminal haben. Es scheint, dass dies am häufigsten dadurch verursacht wird, dass TERM in Ihren globalen Windows-Umgebungsvariablen auf etwas gesetzt ist. Für mich kam das Problem auf, als ich Strawberry Perl installiert habe. Einige Informationen dazu sind auf dem msysgit Bug für dieses Problem sowie auf verschiedenen Lösungen.

Die erste Lösung ist, es in Ihrem ~ / .bashrc zu beheben, indem Sie hinzufügen:

export TERM=msys

Sie können dies von der Git BASH-Eingabeaufforderung aus tun:

echo "export TERM=msys" >> ~/.bashrc

Die andere Lösung, die ich letztendlich getan habe, weil ich mich nicht um Strawberry Perls Gründe kümmere, TERM = dumm zu meinen Umgebungseinstellungen hinzuzufügen, ist TERM = doth zu entfernen, wie in diesem Kommentar zum msysgit-Fehlerbericht beschrieben .

Systemsteuerung / System / Erweitert / Umgebungsvariablen ... (oder ähnlich, abhängig von Ihrer Windows-Version) sind die Sticky-Umgebungsvariablen in Windows. Standardmäßig ist TERM nicht festgelegt. Wenn TERM dort eingestellt ist, haben Sie (oder eines der Programme, die Sie installiert haben - zB Strawberry Perl) es eingestellt. Löschen Sie diese Einstellung, und Sie sollten in Ordnung sein.

Ähnlich, wenn Sie Strawberry Perl verwenden und sich um den CPAN-Client oder etwas Ähnliches kümmern, können Sie TERM=dumb dum alleine lassen und in Ihrer ~ / .bashrc-Datei den nicht gesetzten unset TERM verwenden, was ähnliche Auswirkungen auf die Definition eines expliziten Begriffs wie oben hat.

Natürlich sind alle anderen Lösungen korrekt, dass Sie git config --global core.editor $MYFAVORITEEDITOR , um sicherzustellen, dass git Ihren bevorzugten Editor verwendet, wenn er einen für Sie starten muss.





windows networking port