¿Cómo puedo determinar si un puerto está abierto en un servidor Windows? [cerrado]
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?
Suponiendo que lo que estás intentando utilizar es un puerto TCP (en lugar de UDP):
En el servidor mismo, use
netstat -an
para verificar qué puertos están escuchando.Desde afuera, simplemente use
telnet host port
(otelnet host:port
en 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 control → Programas → Activar o desactivar las características de Windows . En la lista, desplácese hacia abajo, seleccione Cliente Telnet y haga clic en OK.
En Windows puedes usar
netstat -na | findstr "your_port"
para limitar los resultados. También puede filtrar por LISTENING
, ESTABLISHED
y TCP
demás. Sin embargo, tenga en cuenta que distingue entre mayúsculas y minúsculas.
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:
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).