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.
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.
Réponses:
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"
-o
drapeau (c'est-à-dire -nao
ici) pour inclure le PID du processus utilisant le port.
Vous pouvez utiliser le netstat
combiné avec les -np
indicateurs et un canal vers les commandes find
ou 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.
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>
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
3068
est PID, donc je peux le trouver dans le gestionnaire de tâches et arrêter ce processus.
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.*:[^:]*$"
Où 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 find
chaî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 /?
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)
FIND: Parameter format not correct
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.
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 *[^ ]*:[^ ]*"
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.
Dans RHEL 7, j'utilise cette commande pour filtrer plusieurs ports en LISTEN State:
sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'
Cette commande affichera tous les ports et leur adresse de destination:
netstat -f
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)
netstat
n'est lent que si vous n'utilisez pas le-n
commutateur, ce qui signifie qu'il doit effectuer de nombreuses recherches DNS.