Befehlszeile zum Anzeigen eines bestimmten Ports

263

Gibt es eine Möglichkeit, den Status eines bestimmten Ports über die Windows-Befehlszeile zu überprüfen? Ich weiß, dass ich mit netstat alle Ports untersuchen kann, aber netstat ist langsam und das Betrachten eines bestimmten Ports wahrscheinlich nicht.

user1580018
quelle
6
netstatist nur langsam, wenn Sie den -nSwitch nicht verwenden , was bedeutet, dass viele DNS-Suchvorgänge durchgeführt werden müssen.
Marquis von Lorne

Antworten:

282

Hier ist die einfache Lösung für die Portfindung ...

In cmd:

netstat -na | find "8080"

In Bash:

netstat -na | grep "8080"

In PowerShell:

netstat -na | Select-String "8080"
Md. Naushad Alam
quelle
3
Wie benutze ich diesen Befehl? Ich möchte wissen, dass diese Portnummer funktioniert oder nicht. Link: - [Link] (https: //.localhost: 9043 / ibm / console / login.do)
Mayur Ingle
8
Erwähnenswert ist auch das -oFlag (dh -naohier), das die PID des Prozesses enthält, der den Port verwendet.
Steve Chambers
104

Sie können die netstatmit den -npFlags kombinierten und eine Pipe zu den findoder findstrBefehlen verwenden.

Grundlegende Verwendung ist als solche:

netstat -np <protocol> | find "port #"

Um beispielsweise Port 80 auf TCP zu überprüfen, können Sie netstat -np TCP | find "80" Folgendes tun: Dies führt zu der folgenden Art von Ausgabe:

TCP    192.168.0.105:50466    64.34.119.101:80       ESTABLISHED
TCP    192.168.0.105:50496    64.34.119.101:80       ESTABLISHED

Wie Sie sehen, werden hier nur die Verbindungen an Port 80 für das TCP-Protokoll angezeigt.

Rivasa
quelle
73

Ich benutze:

netstat –aon | find "<port number>"

Hier steht o für die Prozess-ID. Jetzt können Sie mit der Prozess-ID alles machen. Um den Prozess zu beenden, verwenden Sie beispielsweise:

taskkill /F /pid <process ID>
Himadri Pant
quelle
einfache und klare Antwort, Danke
Mohit Singh
69

Wenn ich ein Problem mit WAMP-Apache habe, verwende ich diesen Code, um herauszufinden, welches Programm Port 80 verwendet.

netstat -o -n -a | findstr 0.0:80

Geben Sie hier die Bildbeschreibung ein

3068 ist PID, also kann ich es vom Task-Manager finden und diesen Prozess stoppen.

Mohsen Safari
quelle
Sehr schön, vielen Dank! Speziell für TCP verwende ich Folgendes: netstat -o -nap TCP | findstr 0.0: 80
denyoha
20

Wie an anderer Stelle erwähnt: Verwenden Sie netstat mit geeigneten Schaltern und filtern Sie die Ergebnisse mit find [str].

Am grundlegendsten:

netstat -an | find ":N"

oder

netstat -a -n | find ":N"

Um einen ausländischen Hafen zu finden, können Sie Folgendes verwenden:

netstat -an | findstr ":N[^:]*$"

So finden Sie einen lokalen Port:

netstat -an | findstr ":N.*:[^:]*$"

Wobei N die Portnummer ist, an der Sie interessiert sind.

-n stellt sicher, dass alle Ports numerisch sind, dh nicht als in Dienstnamen übersetzt zurückgegeben werden.

-a stellt sicher, dass Sie alle Verbindungen durchsuchen (TCP, UDP, Abhören ...)

In die findZeichenfolge müssen Sie den Doppelpunkt als Portqualifizierer einfügen, andernfalls kann die Nummer entweder mit lokalen oder ausländischen Adressen übereinstimmen.

Sie können die Suche bei Bedarf mit anderen Netstat-Schaltern weiter eingrenzen ...

Weiterführende Literatur (^ 0 ^)

netstat /?

find /?

findstr /?
EndUzr
quelle
9
netstat -a -n | find /c "10.240.199.9:8080"

Sie erhalten die Anzahl der Sockets, die an einer bestimmten IP und einem bestimmten Port aktiv sind (Server-Portnummer).

Uday Singh
quelle
3
Dies funktioniert nicht für Windows Power Shell unter Windows 2012 R2 und erhielt das Ergebnis alsFIND: Parameter format not correct
Chaminda Bandara
6

Geben Sie für Windows 8-Benutzer: Öffnen Sie die Eingabeaufforderung netstat -an | ein Finden Sie "Ihre Portnummer" , geben Sie ein.

Wenn die Antwort wie HÖREN lautet, wird der Port verwendet, andernfalls ist er kostenlos.

Pratik Roy
quelle
2

So verbessern Sie die Antwort von @ EndUzr :

Um einen fremden Port (IPv4 oder IPv6) zu finden, können Sie Folgendes verwenden:

netstat -an | findstr /r /c:":N [^:]*$"

Um einen lokalen Port (IPv4 oder IPv6) zu finden, können Sie Folgendes verwenden:

netstat -an | findstr /r /c:":N *[^ ]*:[^ ]* "

Dabei ist N die Portnummer, an der Sie interessiert sind. Der Schalter "/ r" weist ihn an, sie als regulären Ausdruck zu verarbeiten. Mit dem Schalter "/ c" kann findstr Leerzeichen in Suchzeichenfolgen einfügen, anstatt ein Leerzeichen als Suchzeichenfolgenbegrenzer zu behandeln. Dieser zusätzliche Speicherplatz verhindert, dass längere Ports misshandelt werden, z. B. ": 80" vs ": 8080" und andere Probleme beim Munging von Ports.

So listen Sie Remoteverbindungen zum lokalen RDP-Server auf, zum Beispiel:

netstat -an | findstr /r /c:":3389 *[^ ]*:[^ ]*"

Oder um zu sehen, wer Ihr DNS berührt:

netstat -an | findstr /r /c:":53 *[^ ]*:[^ ]*"

Wenn Sie nur lokale Ports ausschließen möchten, können Sie eine Reihe von Ausnahmen mit "/ v" verwenden und Zeichen mit einem Backslash maskieren:

netstat -an | findstr /v "0.0.0.0 127.0.0.1 \[::\] \[::1\] \*\:\*" | findstr /r /c:":80 *[^ ]*:[^ ]*"
shawn
quelle
1

Für Port 80 wäre der Befehl: netstat -an | find "80" Für Port n wäre der Befehl: netstat -an | finde "n"

Hier ist netstat die Anweisung an Ihre Maschine

-a: Zeigt alle Verbindungen und Überwachungsports an. -n: Zeigt alle Adressen und Anweisungen im numerischen Format an (Dies ist erforderlich, da die Ausgabe von -a Computernamen enthalten kann.)

Dann ein Suchbefehl zum "Pattern Match" der Ausgabe des vorherigen Befehls.

Subodhkarwa
quelle
0

Das wird dir helfen

netstat -atn | grep <port no>          # For tcp
netstat -aun | grep <port no>           # For udp
netstat -atun | grep <port no>          # For both
Job in
quelle
0

In RHEL 7 verwende ich diesen Befehl, um mehrere Ports im LISTEN-Status zu filtern:

sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'
Hernaldo Gonzalez
quelle
-1

Dieser Befehl zeigt alle Ports und ihre Zieladresse an:

netstat -f 
Dharmajulian
quelle
1
Die Anfrage bestand darin herauszufinden, ob ein bestimmter Port verwendet wurde.
Ro Yo Mi
-5

Verwenden Sie den Befehl lsof "lsof -i tcp: port #". Hier ein Beispiel.

$ lsof -i tcp:1555 
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    27330 john  121u  IPv4 36028819      0t0  TCP 10.10.10.1:58615->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  201u  IPv4 36018833      0t0  TCP 10.10.10.1:58586->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  264u  IPv4 36020018      0t0  TCP 10.10.10.1:58598->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  312u  IPv4 36058194      0t0  TCP 10.10.10.1:58826->10.10.10.10:livelan (ESTABLISHED)
Steine333
quelle
4
Minuspunkt, da dies kein Windows-Befehl ist. Wenn es unter Windows verfügbar ist, gibt es keine Diskussion darüber, wie Sie es erwerben können.
Ro Yo Mi
1
Beantwortet die Frage von OP nicht. -1.
FractalSpace