À partir d'un script bash, comment savoir rapidement si un port 445
est ouvert / à l'écoute sur un serveur.
J'ai essayé quelques options, mais je veux quelque chose de rapide:
1. lsof -i :445
(prend quelques secondes)
2. netstat -an |grep 445 |grep LISTEN
(prend des secondes)
3. telnet
(il ne revient pas)
4. nmap
, netcat
ne sont pas disponibles sur le serveur
Ce sera bien de connaître un moyen qui ne fait pas d'énumération en premier et qui fait ensuite la greps.
netstat -lnt
(avec -t
et sans -a
) limitera la sortie à l'écoute des connexions TCP uniquement. Cela peut accélérer un peu. Vous pouvez ajouter -4
pour IPv4 uniquement si vous n'avez pas besoin d'IPv6.
netstat -an | grep PORTNUMBER | grep -i listen
Si la sortie est vide, le port n'est pas utilisé.
lsof
est lent pour vous, mais normalement c'est la meilleure des solutions que vous avez énumérées. Votre netstat
solution n'est pas très fiable (vous pouvez la deviner à chaque fois que vous l'utilisez grep
; de toute façon elle revient vraie si quelqu'un écoute par exemple sur 4450). telnet
et netcat
essayez de créer une connexion, ce qui n'est pas toujours ce que vous voulez.