Cómo saber si un puerto está abierto en Windows.
Frecuentemente me encuentro con que tengo que comprobar si un puerto está abierto en Linux, pero no ha sido hasta hoy que he tenido que comprobar si un puerto estaba abierto en un Windows Server.
Tras investigar un poco y barajar varias opciones (PowerShell, cmd, programas externos) he optado por hacer las comprobaciones mediante cmd.
Para comprobar si un puerto está escuchando en Windows mediante cmd, podemos usar el comando netstat y concatenar el resultado hacia findstr del siguiente modo:
Si tras ejecutar el comando no vemos ningún resultado, significa que el puerto en cuestión (en este caso el puerto que estamos comprobando es el 8443) no está escuchando en la máquina.
Si tras ejecutar el comando vemos LISTENING en el resultado, significa que el puerto está escuchando:
Si queremos averiguar desde nuestro ordenador si el puerto 443 - por ejemplo - de un servidor remoto está abierto, podemos hacerlo mediante el comando telnet:
Si la pantalla de cmd se queda en negro o si aparece un banner con la versión de algún servicio como FTP o SSH, significa que el puerto está abierto y escuchando en el servidor remoto.
Frecuentemente me encuentro con que tengo que comprobar si un puerto está abierto en Linux, pero no ha sido hasta hoy que he tenido que comprobar si un puerto estaba abierto en un Windows Server.
Tras investigar un poco y barajar varias opciones (PowerShell, cmd, programas externos) he optado por hacer las comprobaciones mediante cmd.
Servidor
Para comprobar si un puerto está escuchando en Windows mediante cmd, podemos usar el comando netstat y concatenar el resultado hacia findstr del siguiente modo:
C:\Users\Administrator>netstat -a | findstr "8443"
Si tras ejecutar el comando no vemos ningún resultado, significa que el puerto en cuestión (en este caso el puerto que estamos comprobando es el 8443) no está escuchando en la máquina.
Si tras ejecutar el comando vemos LISTENING en el resultado, significa que el puerto está escuchando:
C:\Users\Administrator>netstat -a | findstr "9443"
TCP 0.0.0.0:9443 TEST103:0 LISTENING
TCP 10.252.3.121:9443 ip-10-252-3-58:42264 TIME_WAIT
TCP 10.252.3.121:9443 ip-10-252-3-58:42270 TIME_WAIT
Cliente
Si queremos averiguar desde nuestro ordenador si el puerto 443 - por ejemplo - de un servidor remoto está abierto, podemos hacerlo mediante el comando telnet:
C:\Users\Administrator>telnet 10.1.2.3 443
Si la pantalla de cmd se queda en negro o si aparece un banner con la versión de algún servicio como FTP o SSH, significa que el puerto está abierto y escuchando en el servidor remoto.