Ligne de commande pour regarder un port spécifique

265

Existe-t-il un moyen d'examiner l'état d'un port spécifique à partir de la ligne de commande Windows? Je sais que je peux utiliser netstat pour examiner tous les ports, mais netstat est lent et regarder un port spécifique ne l'est probablement pas.

user1580018
la source
6
netstatn'est lent que si vous n'utilisez pas le -ncommutateur, ce qui signifie qu'il doit effectuer de nombreuses recherches DNS.
Marquis de Lorne

Réponses:

284

Voici la solution simple de recherche de port ...

En cmd:

netstat -na | find "8080"

En bash:

netstat -na | grep "8080"

Dans PowerShell:

netstat -na | Select-String "8080"
Md. Naushad Alam
la source
3
Comment utiliser cette commande? Je veux savoir que ce numéro de port fonctionne ou non: - [link] (https: //.localhost: 9043 / ibm / console / login.do)
Mayur Ingle
8
Il convient également de mentionner le -odrapeau (c'est-à-dire -naoici) pour inclure le PID du processus utilisant le port.
Steve Chambers
104

Vous pouvez utiliser le netstatcombiné avec les -npindicateurs et un canal vers les commandes findou findstr.

L'utilisation de base est en tant que telle:

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

Ainsi, par exemple, pour vérifier le port 80 sur TCP, vous pouvez le faire: netstat -np TCP | find "80" Ce qui finit par donner le type de sortie suivant:

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

Comme vous pouvez le voir, cela ne montre que les connexions sur le port 80 pour le protocole TCP.

Rivasa
la source
73

J'utilise:

netstat –aon | find "<port number>"

ici o représente l'ID de processus. vous pouvez maintenant faire n'importe quoi avec l'ID de processus. Pour terminer le processus, par exemple, utilisez:

taskkill /F /pid <process ID>
Pantalon Himadri
la source
réponse simple et nette, merci
Mohit Singh
69

quand j'ai un problème avec WAMP apache, j'utilise ce code pour trouver quel programme utilise le port 80.

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

entrez la description de l'image ici

3068 est PID, donc je peux le trouver dans le gestionnaire de tâches et arrêter ce processus.

Mohsen Safari
la source
Très bien, merci beaucoup! Spécialement pour TCP j'utilise ce qui suit: netstat -o -nap TCP | findstr 0.0: 80
denyoha
20

Comme indiqué ailleurs: utilisez netstat, avec les commutateurs appropriés, puis filtrez les résultats avec find [str]

Le plus fondamental:

netstat -an | find ":N"

ou

netstat -a -n | find ":N"

Pour trouver un port étranger, vous pouvez utiliser:

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

Pour trouver un port local, vous pouvez utiliser:

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

N est le numéro de port qui vous intéresse.

-n garantit que tous les ports seront numériques, c'est-à-dire qu'ils ne seront pas retournés tels que traduits en noms de service.

-a vous assurera de rechercher toutes les connexions (TCP, UDP, écoute ...)

Dans la findchaîne, vous devez inclure les deux points, comme qualificatif de port, sinon le numéro peut correspondre à des adresses locales ou étrangères.

Vous pouvez affiner davantage la recherche en utilisant d'autres commutateurs netstat si nécessaire ...

Lectures complémentaires (^ 0 ^)

netstat /?

find /?

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

il vous donnera le nombre de sockets actives sur une IP et un port spécifiques (numéro de port du serveur)

Uday Singh
la source
3
Cela ne fonctionne pas pour Windows Power Shell sur Windows 2012 R2 et a reçu le résultat commeFIND: Parameter format not correct
Chaminda Bandara
6

Pour l'utilisateur Windows 8: Ouvrez l'invite de commandes, tapez netstat -an | trouver "votre numéro de port" , entrez.

Si la réponse vient comme ECOUTER, alors le port est utilisé, sinon il est libre.

Pratik Roy
la source
2

Pour améliorer la réponse de @ EndUzr :

Pour trouver un port étranger (IPv4 ou IPv6), vous pouvez utiliser:

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

Pour trouver un port local (IPv4 ou IPv6), vous pouvez utiliser:

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

Où N est le numéro de port qui vous intéresse. Le commutateur "/ r" lui dit de le traiter comme regexp. Le commutateur "/ c" permet à findstr d'inclure des espaces dans les chaînes de recherche au lieu de traiter un espace comme un délimiteur de chaîne de recherche. Cet espace supplémentaire empêche les ports plus longs d'être maltraités - par exemple, ": 80" vs ": 8080" et d'autres problèmes de connexion de port.

Pour répertorier les connexions distantes au serveur RDP local, par exemple:

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

Ou pour voir qui touche votre DNS:

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

Si vous souhaitez exclure les ports locaux uniquement, vous pouvez utiliser une série d'exceptions avec "/ v" et des caractères d'échappement avec une barre oblique inverse:

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

Pour le port 80, la commande serait: netstat -an | trouver "80" Pour le port n, la commande serait: netstat -an | trouver "n"

Ici, netstat est l'instruction pour votre machine

-a: affiche toutes les connexions et tous les ports d'écoute -n: affiche toutes les adresses et instructions au format numérique (ceci est nécessaire car la sortie de -a peut contenir des noms de machine)

Ensuite, une commande find pour "Pattern Match" la sortie de la commande précédente.

subodhkarwa
la source
0

Cela vous aidera

netstat -atn | grep <port no>          # For tcp
netstat -aun | grep <port no>           # For udp
netstat -atun | grep <port no>          # For both
jobin
la source
0

Dans RHEL 7, j'utilise cette commande pour filtrer plusieurs ports en LISTEN State:

sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'
Hernaldo Gonzalez
la source
-2

Cette commande affichera tous les ports et leur adresse de destination:

netstat -f 
Dharmajulian
la source
1
La demande était de savoir si un port spécifique était utilisé.
Ro Yo Mi
-5

Utilisez la commande lsof "lsof -i tcp: port #", voici un exemple.

$ 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)
pierres333
la source
4
Point négatif car il ne s'agit pas d'une commande Windows. S'il est disponible sur Windows, il n'y a pas de discussion sur la façon de l'acquérir.
Ro Yo Mi
1
Ne répond pas à la question d'OP. -1.
FractalSpace