Files
abonnel-www/1901a8ba-1b1c-42f7-9251-c7aee6cab604/index.md
T
2026-05-16 23:10:13 +02:00

52 lines
2.3 KiB
Markdown

# lsof
`lsof` signifie **List Open Files**. C'est un outil en ligne de commande qui affiche les fichiers ouverts par les processus en cours d'exécution sur un système Linux. Sous Linux, presque tout est un fichier : fichiers réguliers, sockets, pipes nommées, périphériques bloc et caractère. `lsof` permet donc d'inspecter aussi bien les fichiers classiques manipulés par une application que les connexions réseau ou les descripteurs ouverts par un démon.
C'est notamment l'outil de référence pour identifier le processus qui écoute sur un port donné ou qui retient un fichier verrouillé.
## Installer lsof
`lsof` n'est pas toujours présent par défaut, mais il figure dans les dépôts officiels de la plupart des distributions. Si la commande renvoie `command not found`, installez-la :
```bash
sudo apt update
sudo apt install lsof
```
## Lister les connexions réseau actives
L'option `-i` affiche les fichiers ouverts par les processus utilisant le réseau. Sans argument, elle liste toutes les connexions TCP et UDP en cours :
```bash
lsof -i
```
Vous obtenez le nom du processus, son PID, l'utilisateur propriétaire, le protocole, ainsi que les adresses et ports locaux et distants. Notez qu'un `sudo` est souvent nécessaire pour voir les connexions ouvertes par d'autres utilisateurs.
![](20230217-185748.png)
### Filtrer par port ou par protocole
Pour cibler un port précis :
```bash
lsof -i :993
```
Pour ne garder qu'un protocole :
```bash
lsof -i TCP
lsof -i UDP
```
Ces filtres se combinent (`lsof -i TCP:443`) et permettent rapidement d'identifier quel service occupe un port donné.
## Différence entre `netstat` et `lsof`
`netstat -tulpn` et `lsof -i` répondent à des besoins voisins, mais avec des angles différents :
- **`netstat -tulpn`** offre une vue synthétique des sockets en écoute et établies. C'est l'outil à privilégier pour un aperçu rapide de l'état réseau du système.
- **`lsof -i`** raisonne en termes de *fichiers ouverts* : il montre les connexions réseau, mais aussi le contexte du processus (utilisateur, descripteurs, fichiers associés). C'est le bon choix pour enquêter sur un processus précis ou diagnostiquer un port bloqué.
En pratique, les deux sont complémentaires : `netstat` (ou `ss`, son successeur moderne) pour l'inventaire, `lsof` pour l'investigation détaillée.