GNU/Linux >> Tutoriels Linux >  >> Linux

La commande Linux obtient le port inutilisé

netstat -lat donne la liste complète des écoutes et établi ports.

Lorsqu'un port n'est sur aucun de ces états n'existe pas pour le système, vous ne trouverez donc pas de commande affichant la liste des ports inutilisés.

Gardez à l'esprit qu'il y a 65535 ports, donc tout ce qui n'est pas sur netstat -lat est un port inutilisé.

Le script bash suivant effectuera une simple analyse de tcp ports, et vous indiquer lesquels sont ouverts et qui sont fermés :

#!/bin/bash
IP=$1
first_port=$2
last_port=$3
function scanner

{
for ((port=$first_port; port<=$last_port; port++))
        do
                (echo >/dev/tcp/$IP/$port)> /dev/null 2>&1 && echo $port open || echo "$port closed"
        done
}

scanner

Si vous l'enregistrez sous portscan.sh alors il doit être exécuté en tant que ./portscan.sh IP first_port last_port , par exemple :./portscan 127.0.0.1 20 135 analysera l'équipement local des ports 20 à 135


Ruby 2.x (une ligne) :

ruby -e 'require "socket"; puts Addrinfo.tcp("", 0).bind {|s| s.local_address.ip_port }'

Sur ma machine en ce moment qui a imprimé :

42644

Une invocation ultérieure a imprimé :

36168

Cette technique amène l'utilisateur actuel à demander un port inutilisé (lié au port "0"), puis imprime le numéro de port fourni par le système d'exploitation. Et puisque l'utilisateur actuel est celui qui demande, les ports inférieurs à 1024 ne seront pas renvoyés (sauf si l'utilisateur actuel =root).

Crédit où le crédit est dû - cette solution provient d'un commentaire de Franklin Yu sur unix.stackexchange.com Quel est le moyen le plus simple de trouver un port local inutilisé ?


Script bash court qui génère aléatoirement un nombre entre 1025 et 60000 et boucle jusqu'à ce que ce nombre ne soit pas trouvé dans la liste des ports utilisés. Il s'agit d'une solution rapide et sale qui privilégie les ports plus grands :

CHECK="do while"

while [[ ! -z $CHECK ]]; do
    PORT=$(( ( RANDOM % 60000 )  + 1025 ))
    CHECK=$(sudo netstat -ap | grep $PORT)
done

echo $PORT

Linux
  1. Commande Linux mv

  2. Linux du command

  3. Commande IP Linux

  4. Commande cd Linux

  5. Vérifier l'utilisation du port sous Linux

À la commande sous Linux

Comment faire une analyse de port sous Linux

Obtenir des informations sur une commande avec une commande de type sous Linux

Comment vérifier les ports ouverts sous Linux ?

Ouvrir un port sous Linux

5 méthodes pour obtenir une aide rapide sur les commandes Linux