Ping equivalente para verificar si un puerto está abierto

9

¿Cómo verifico si un puerto está constantemente vivo? Por ejemplo, podría usar

ping 192.168.1.1 -t > results.txt

Esto hará ping 192.168.1.1 continuamente para que pueda monitorearlo.
¿Hay alguna herramienta o comando equivalente que pueda usar para esto?

Actualmente uso telnet pero a veces el host lo desconecta. Necesito una solución de Windows.

grassbl8d
fuente
¿Es un puerto específico que debe verificar, por ejemplo, el puerto 80 para http o el puerto 21 para ftp, o es una dirección IP específica que necesita verificar, es decir, para probar si el host es accesible? Lo último es lo que está haciendo su ejemplo anterior.
Chris
Quiero comprobar un puerto específico si está abierto.
grassbl8d
Dado que el ping "estándar" usa mensajes ICMP, y cuando habla de puertos probablemente piense en TCP / IP, tiene una discrepancia allí que no puede cerrar (ICMP e IP son protocolos muy diferentes). pinges la herramienta incorrecta para el monitoreo, debe usar algo que genere el tipo de tráfico que necesita para el servicio específico. Ejemplo: para monitorear un sitio web, envía una consulta HTTP, etc.
Patrick Mevzek

Respuestas:

13

Puede usar netcat si hay una versión de Windows; en Linux uso:

nc -z <host> <port>

Esto devuelve 0 si el puerto está abierto. Ejecute esto en un bucle para hacerlo continuo.

Si Powershell está disponible, consulte https://web.archive.org/web/20111102182913/http://poshcode.org/85 para ver un ejemplo.

Andrés
fuente
2
haga ping cada segundo a un host en un puerto y regrese 0si es exitoso, de lo 1contrario:while (:); do nc -z HOSTNAME_HERE PORT_HERE; echo $?; sleep 1; done
sjas
el enlace ya no funciona
Clinton Ward
@ClintonWard Actualizado con un enlace archivado :)
Andrew
5

O use nmap de http://nmap.org , hay una versión de Windows disponible.

nmap -p puerto host

o, para los hosts que no responden a las solicitudes de ICMP,

nmap -P0 -p puerto host

rems
fuente
5

Puede usar nping desde nmap como:

C:\>nping --tcp -p 80 192.168.1.1

donde -pespecifica el puerto a escanear (aquí: 80). Además, puede usar -Hpara ocultar paquetes enviados, a favor de mostrar solo respuestas.

Murmel
fuente
0

telnet <host> <port>verificará remotamente <host>si hay un escucha TCP activado <port>.

dmourati
fuente
0

Si quieres ir con utilidades de línea de comandos de valores, a continuación, TELNET se conecta a un puerto para usted. Por otro lado, si hay un servicio que responde, entonces TELNET puede 'colgarse' mientras espera que proporcione la secuencia de comando de escape.

Si está abierto a instalar nuevas utilidades de línea de comandos, entonces PaPing funciona como desee . Es multiplataforma, y ​​hay un instalador de Windows disponible.

Jesper M
fuente