GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je vérifier quels ports sont occupés et quels ports sont libres sur ma machine Linux ?

La commande

netstat -antu

affichera tous les ports tcp et udp utilisés. La sortie ressemblera à ceci :

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:59753           0.0.0.0:*               LISTEN

Le nombre après les deux-points dans le champ Adresse locale indique le port utilisé. Si l'état est "LISTEN", cela signifie un port utilisé pour les connexions entrantes. Si l'adresse IP dans le Local Address le champ est 0.0.0.0 cela signifie que les connexions entrantes seront acceptées sur n'importe quelle adresse IP attribuée à une interface - donc cela signifie à partir de connexions provenant de l'extérieur de votre machine.

S'il disait localhost ou 127.0.0.1 il n'accepterait que les connexions de votre machine.

De plus, si vous ajoutez le -p et exécutez-le en tant que root, il affichera le processus qui a ouvert le port :

$ sudo netstat -antup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:59753           0.0.0.0:*               LISTEN      860/rpc.statd

Tout ce qui n'est pas indiqué comme étant utilisé est gratuit, mais les utilisateurs (comptes non privilégiés) ne peuvent ouvrir que des ports supérieurs à 1023.


J'ai compilé une petite liste moi-même.

Certains de mes favoris sont :

netstat -tulpn
lsof -i -n -P

Un bon moyen fiable de vérifier les ports ouverts consiste à utiliser ss (remplacement du netstat obsolète ), il est utilisable dans un script sans nécessiter de privilèges élevés (c'est-à-dire sudo ).

Utilisation :option -l pour les ports d'écoute, option -n pour contourner la résolution DNS, et le filtre sur le port source NN :src :NN (remplace NN par le port que vous souhaitez surveiller). Pour plus d'options, voir man ss

ss -ln src :NN

Exemples :

[[email protected] ~]# ss -ln src :80
State       Recv-Q Send-Q       Local Address:Port   Peer Address:Port
LISTEN      0      128                      *:80                *:*
[[email protected] ~]# ss -ln src :81
State       Recv-Q Send-Q       Local Address:Port   Peer Address:Port

Et dans un script, en utilisant grep, nous pouvons tester si la sortie contient le port que nous avons demandé.Exemple avec le port 80 utilisé (voir ci-dessus) :

myport=80
# count the number of occurrences of port $myport in output: 1= in use; 0 = not in use
result=$(ss -ln src :$myport | grep -Ec -e "\<$myport\>")
if [ "$result" -eq 1 ]; then
  echo "Port $myport is in use (result == $result) "
else
  echo "Port $myport is NOT in use (result == $result) "
fi

# output:
Port 80 is in use (result == 1)

Exemple avec le port 81 non utilisé (voir ci-dessus)

myport=81
result=$(ss -ln src :$myport | grep -Ec -e "\<$myport\>")
if [ "$result" -eq 1 ]; then
  echo "Port $myport is in use (result == $result) "
else
  echo "Port $myport is NOT in use (result == $result) "
fi

# output:
Port 81 is NOT in use (result == 0)

Linux
  1. Comment vérifier quels modules Apache sont activés/chargés sous Linux

  2. Comment vérifier les ports ouverts sous Linux avec netstat, lsof et nmap

  3. Comment vérifier la version du système d'exploitation et de Linux

  4. Comment vérifier quel fuseau horaire sous Linux ?

  5. Comment puis-je vérifier si les cgroups sont disponibles sur mon hôte Linux ?

Comment vérifier l'utilisation de la mémoire sous Linux

Comment faire une analyse de port sous Linux

Comment rechercher et fermer des ports ouverts sous Linux

Comment vérifier l'espace disque libre sur Linux [Méthodes Terminal et GUI]

Comment vérifier l'espace disque libre sur Linux

Comment vérifier les ports ouverts sous Linux ?