Línea de comando para mirar puerto específico

264

¿Hay alguna manera de examinar el estado de un puerto específico desde la línea de comandos de Windows? Sé que puedo usar netstat para examinar todos los puertos, pero netstat es lento y probablemente no lo sea mirar un puerto específico.

usuario1580018
fuente
66
netstatsolo es lento si no usa el -ninterruptor, lo que significa que tiene que hacer muchas búsquedas de DNS.
Marqués de Lorne

Respuestas:

284

Aquí está la solución fácil de encontrar puertos ...

En cmd:

netstat -na | find "8080"

En bash:

netstat -na | grep "8080"

En PowerShell:

netstat -na | Select-String "8080"
MD Naushad Alam
fuente
3
¿Cómo usar este comando? Quiero saber si este número de puerto funciona o no enlace: - [enlace] (https: //.localhost: 9043 / ibm / console / login.do)
Mayur Ingle
8
También vale la pena mencionar la -obandera (es decir, -naoaquí) para incluir el PID del proceso utilizando el puerto.
Steve Chambers
104

Puede usar el netstatcombinado con las -npbanderas y una tubería a los comandos findo findstr.

El uso básico es como tal:

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

Entonces, por ejemplo, para verificar el puerto 80 en TCP, puede hacer esto: lo netstat -np TCP | find "80" que termina dando el siguiente tipo de salida:

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

Como puede ver, esto solo muestra las conexiones en el puerto 80 para el protocolo TCP.

Rivasa
fuente
73

Yo suelo:

netstat –aon | find "<port number>"

aquí o representa la identificación del proceso. ahora puede hacer lo que sea con la ID del proceso. Para finalizar el proceso, por ejemplo, use:

taskkill /F /pid <process ID>
Himadri Pant
fuente
respuesta simple y nítida, gracias
Mohit Singh
69

cuando tengo un problema con WAMP apache, uso este código para encontrar qué programa está usando el puerto 80.

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

ingrese la descripción de la imagen aquí

3068 es PID, por lo que puedo encontrarlo en el administrador de tareas y detener ese proceso.

Safari Mohsen
fuente
Muy bien, muchas gracias! Especialmente para TCP, uso lo siguiente: netstat -o -nap TCP | Findstr 0.0: 80
denyoha
20

Como se señaló en otra parte: use netstat, con los interruptores apropiados, y luego filtre los resultados con find [str]

Lo más básico:

netstat -an | find ":N"

o

netstat -a -n | find ":N"

Para encontrar un puerto extranjero puede usar:

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

Para encontrar un puerto local, puede usar:

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

Donde N es el número de puerto que le interesa.

-n garantiza que todos los puertos serán numéricos, es decir, no se devolverán como traducidos a los nombres de servicio.

-a asegurará que busque todas las conexiones (TCP, UDP, escucha ...)

En la findcadena debe incluir los dos puntos, como el calificador de puerto, de lo contrario, el número puede coincidir con direcciones locales o extranjeras.

Puede limitar aún más la búsqueda utilizando otros conmutadores netstat según sea necesario ...

Lectura adicional (^ 0 ^)

netstat /?

find /?

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

le dará un número de sockets activos en una IP y puerto específicos (número de puerto del servidor)

Uday Singh
fuente
3
Esto no funciona para Windows Power Shell en Windows 2012 R2 y recibió el resultado comoFIND: Parameter format not correct
Chaminda Bandara
6

Para usuarios de Windows 8: Abra el símbolo del sistema, escriba netstat -an | encuentra "tu número de puerto" , ingrese.

Si la respuesta llega como ESCUCHANDO, entonces el puerto está en uso, de lo contrario, es gratis.

Pratik Roy
fuente
2

Para mejorar la respuesta de @ EndUzr :

Para encontrar un puerto extranjero (IPv4 o IPv6) puede usar:

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

Para encontrar un puerto local (IPv4 o IPv6) puede usar:

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

Donde N es el número de puerto que le interesa. El modificador "/ r" le dice que lo procese como regexp. El modificador "/ c" permite a findtr incluir espacios dentro de las cadenas de búsqueda en lugar de tratar un espacio como un delimitador de cadena de búsqueda. Este espacio adicional evita que los puertos más largos sean maltratados, por ejemplo, ": 80" frente a ": 8080" y otros problemas de conexión de puertos.

Para enumerar conexiones remotas al servidor RDP local, por ejemplo:

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

O para ver quién está tocando tu DNS:

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

Si desea excluir puertos solo locales, puede usar una serie de excepciones con "/ v" y caracteres de escape con una barra diagonal inversa:

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

Para el puerto 80, el comando sería: netstat -an | encuentre "80" Para el puerto n, el comando sería: netstat -an | encontrar "n"

Aquí, netstat es la instrucción para su máquina

-a: muestra todas las conexiones y puertos de escucha -n: muestra todas las direcciones e instrucciones en formato numérico (esto es necesario porque la salida de -a puede contener nombres de máquinas)

Luego, un comando de búsqueda para "Coincidencia de patrones" la salida del comando anterior.

subodhkarwa
fuente
0

Esto te ayudara

netstat -atn | grep <port no>          # For tcp
netstat -aun | grep <port no>           # For udp
netstat -atun | grep <port no>          # For both
Jobin
fuente
0

En RHEL 7, uso este comando para filtrar varios puertos en estado ESCUCHAR:

sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'
Hernaldo González
fuente
-1

Este comando mostrará todos los puertos y su dirección de destino:

netstat -f 
Dharmajulian
fuente
1
La solicitud era averiguar si un puerto específico estaba en uso.
Ro Yo Mi
-5

Use el comando lsof "lsof -i tcp: port #", aquí hay un ejemplo.

$ 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)
piedras333
fuente
44
Punto negativo porque este no es un comando de Windows. Si está disponible en Windows, no hay discusión sobre cómo adquirirlo.
Ro Yo Mi
1
No responde la pregunta de OP. -1.
FractalSpace