¿Cómo puedo determinar si un puerto está abierto en un servidor Windows? [cerrado]

Resuelto Jason asked hace 16 años • 13 respuestas

Estoy intentando instalar un sitio en un puerto alternativo en un servidor, pero es posible que un firewall cierre el puerto. ¿Hay alguna forma de hacer ping hacia afuera o hacia adentro en un puerto específico para ver si está abierto?

Jason avatar Nov 08 '08 01:11 Jason
Aceptado

Suponiendo que lo que estás intentando utilizar es un puerto TCP (en lugar de UDP):

  1. En el servidor mismo, use netstat -anpara verificar qué puertos están escuchando.

  2. Desde afuera, simplemente use telnet host port(o telnet host:porten sistemas Unix) para ver si la conexión se rechaza, se acepta o se agota el tiempo de espera.

En esa última prueba, entonces en general:

  • conexión rechazada significa que no se está ejecutando nada en ese puerto
  • aceptado significa que algo se está ejecutando en ese puerto
  • El tiempo de espera significa que un firewall está bloqueando el acceso.

En Windows 7 o Windows Vista, la opción predeterminada 'telnet' no se reconoce como un comando interno o externo, programa ejecutable o archivo por lotes. Para resolver esto, simplemente habilítelo: Haga clic en *Inicio** → Panel de controlProgramasActivar o desactivar las características de Windows . En la lista, desplácese hacia abajo, seleccione Cliente Telnet y haga clic en OK.

Alnitak avatar Nov 07 '2008 18:11 Alnitak

En Windows puedes usar

netstat -na | findstr "your_port"

para limitar los resultados. También puede filtrar por LISTENING, ESTABLISHEDy TCPdemás. Sin embargo, tenga en cuenta que distingue entre mayúsculas y minúsculas.

J.Celmer avatar Apr 11 '2013 15:04 J.Celmer

Si estás comprobando desde fuera, no desde el servidor en sí, y no quieres molestarte en instalar telnet (ya que no viene con las últimas versiones de Windows) o cualquier otro software, entonces tienes PowerShell nativo:

Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed

(Desafortunadamente, esto solo funciona con PowerShell 4.0 o posterior. Para verificar su versión de PowerShell, escriba $PSVersionTable).

PD: Tenga en cuenta que en estos días hay algunas afirmaciones en Twitter que insinúan que esta respuesta podría mejorarse mencionando "Test-Connection" de PowerShell Core o el acceso directo "tnc". Consulte https://twitter.com/david_obrien/status/1214082339203993600 y ayúdeme a editar esta respuesta para mejorarla, ¡por favor!


(Si tienes una versión de PS <4.0, no tienes suerte. Consulta esta tabla:

Ingrese la descripción de la imagen aquí

Aunque puede actualizar su versión de PowerShell instalando Windows Management Framework 4.0 , no funcionó para mí, el cmdlet Test-NetConnection aún no está disponible).

knocte avatar Feb 25 '2016 10:02 knocte