> [!info] À savoir !<span style="font-weight: normal; color: var(--text-normal)"> Sous Linux tout est fichier ! Vous pouvez donc utiliser `lsof` en tant qu'alternative à `ss`.</span>
La commande **lsof**, qui signifie "**l**i**s**t **o**pen **f**iles". C’est un outil polyvalent qui peut afficher des informations détaillées sur les fichiers ouverts par les processus, y compris les connexions réseau. Il traite les sockets et les périphériques comme des fichiers, ce qui le rend utile pour diagnostiquer les problèmes de réseau et surveiller l’utilisation des fichiers.
> [!info] À savoir !<span style="font-weight: normal; color: var(--text-normal)"> Vous devez disposer des privilèges "*root*" avec `su` ou avec `sudo`.</span>
Ouvrir un terminal et exécuter la commande suivante :
```shell
sudo lsof -nP -sTCP:LISTEN -iTCP
```
Pour vérifier un port spécifique : `sudo lsof -nP -i:<numéro de port>`, par exemple pour le port 22 SSH :
```shell
sudo lsof -nP -sTCP:LISTEN -i:22
```
Voici la présentation des options utilisées et un exemple de sortie de commande :
- `-nP` : désactive la résolution des noms d’hôte et la traduction des noms de ports (affiche 22 au lieu de SSH).
- `-iTCP` : filtre les connexions réseau pour n’afficher que celles utilisant le protocole TCP.
- `-i:22` : filtre les connexions réseau pour n’afficher que celles utilisant le port 22.
- `-sTCP:LISTEN` : avec un état de connexion "**LISTEN** pour filtrer uniquement sur les ports en écoutes (sans afficher les connexions actives).
![[_png-kb-lnx-lister-ports-tcp-udp-lsof-1.png]]
Nous vous recommandons d'utiliser la commande `ss` (cf. [[kb-lnx-lister-ports-tcp-udp-ss|Lister les ports ouverts avec ss]]) car cette commande est l'approche la plus moderne. La commande `netstat` est encore utilisée, mais elle est dépréciée et à éviter (cf. [[kb-lnx-lister-ports-tcp-udp-netstat|Lister les ports ouverts avec netstat]]).