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.


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"

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.


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>

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.


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 /?

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)


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.


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 *[^ ]*:[^ ]*"

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.


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

0

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

sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'

-1

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

netstat -f 

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)

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.