Efficace de tester si un port est ouvert sur Linux?

À partir d'un script bash comment puis-je savoir rapidement si un port 445 est ouvert/à l'écoute sur un serveur.

J'ai essayé un couple d'options, mais je veux quelque chose de rapide:

1. lsof -i :445 (Prend que quelques secondes)

2. netstat -an |grep 445 |grep LISTEN (Prend que quelques secondes)

3. telnet (il n'a pas de retour)

4. nmap, netcat ne sont pas disponibles sur le serveur

Il sera bon de connaître d'une manière qui n'a pas d'énumérer d'abord et grep après.

  • Est-ce que netcat disponible? Il a rapide de l'échec chemin de l'IIRC. netcat.sourceforge.net
  • netstat -lnt (avec -t et sans -a) limite la sortie à l'écoute des connexions TCP uniquement. Il peut accélérer un peu. Vous pouvez ajouter -4 pour IPv4 uniquement si vous n'avez pas besoin d'IPv6.
  • lsof -i est un favori personnel.
  • netstat -an | grep PORTNUMBER | grep -i listen Si la sortie est vide, le port n'est pas en cours d'utilisation.
  • Je ne sais pas pourquoi lsof est lent pour vous, mais normalement c'est la meilleure des solutions que vous avez énumérés. Votre netstat solution n'est pas très fiable (vous pouvez le deviner à chaque fois que vous utilisez grep; de toute façon il retourne true si quelqu'un est à l'écoute sur, par exemple, 4450). telnet et netcat réellement tenter de créer une connexion, qui peut ne pas toujours être ce que vous voulez.
  • essayez en ligne des outils pour le port de détails dans la manière la plus rapide - yougetsignal.com/tools/open-ports

InformationsquelleAutor Aman Jain | 2012-03-07