A partir de un script bash, ¿cómo puedo averiguar rápidamente si un puerto 445
está abierto / escuchando en un servidor?
He probado un par de opciones, pero quiero algo rápido:
1. lsof -i :445
(Toma segundos)
2. netstat -an |grep 445 |grep LISTEN
(Toma segundos)
3. telnet
(no regresa)
4. nmap
, netcat
no están disponibles en el servidor
Será bueno saber de una manera que no enumere primero y greps después de eso.
netstat -lnt
(con -t
y sin -a
) limitará la salida a escuchar solo conexiones TCP. Puede acelerarse un poco. Puede agregar -4
para IPv4 solo si no necesita IPv6.
netstat -an | grep PORTNUMBER | grep -i listen
Si la salida está vacía, el puerto no está en uso.
lsof
es lento para usted, pero normalmente es la mejor de las soluciones que enumeró. Su netstat
solución no es muy confiable (puede adivinarla siempre que la use grep
; de todos modos, devuelve verdadero si alguien está escuchando, por ejemplo, 4450). telnet
e netcat
intenta crear una conexión, que no siempre es lo que quieres.