draft: lsof

This commit is contained in:
Cédrix
2026-05-16 23:09:56 +02:00
parent 3ae57083aa
commit ea8743762c
3 changed files with 38 additions and 28 deletions
@@ -1,4 +1,4 @@
{
"title": "lsof",
"_updated_at": "2026-05-16 21:08:51"
"_updated_at": "2026-05-16 21:09:56"
}
@@ -1,42 +1,52 @@
# 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.
`lsof` signifie **List Open Files**. C'est un outil en ligne de commande qui vous permet de voir les fichiers ouverts par les processus en cours d'exécution sur votre système Linux. Chaque processus utilise des fichiers pour communiquer avec le système, les autres processus et les périphériques, et lsof vous montre les fichiers qui sont utilisés par chaque processus.
Avec **lsof**, vous pouvez voir les fichiers de tout type, tels que les fichiers réguliers, les fichiers de sockets, les pipes nommées, les fichiers de blocs et les fichiers de caractères, qui sont utilisés par les processus en cours d'exécution sur votre système. Vous pouvez également utiliser **lsof** pour trouver les processus qui écoutent sur des ports réseau spécifiques, ce qui est utile pour déterminer les services en cours d'exécution sur votre système et qui utilisent un port donné.
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 installé par défaut sur toutes les distributions. Cependant, il est facilement disponible dans les dépôts officiels et peut être installé facilement.
Si vous essayez d'utiliser **lsof** et que le système ne le reconnaît pas, cela signifie probablement qu'il n'est pas installé.
`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 :
sudo apt update
sudo apt install lsof
```bash
sudo apt update
sudo apt install lsof
```
Une fois l'installation terminée, vous pouvez utiliser la commande `lsof` pour afficher les fichiers ouverts par les processus en cours d'exécution.
## Lister les connexions réseau actives
## Consulter les connexions TCP et UDP
L'option -i de la commande lsof permet de consulter les connexions TCP et UDP en cours d'utilisation sur votre système Linux.
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 :
Par exemple, la commande suivante affichera les processus qui écoutent sur le port 993 :
```bash
lsof -i
```
lsof -i :993
La sortie de cette commande vous montrera le nom du processus, le numéro de PID, le nom d'utilisateur et d'autres informations sur les processus qui écoutent sur le port 993.
L'option -i peut être combinée avec d'autres options de la commande lsof pour affiner les résultats, selon vos besoins. Par exemple, vous pouvez utiliser -i TCP pour afficher uniquement les processus qui utilisent des sockets TCP, ou -i UDP pour afficher uniquement les processus qui utilisent des sockets UDP.
--
La commande `lsof -i` permet d'afficher les fichiers ouverts par les processus qui utilisent des connexions réseau actives sur le système. Si vous utilisez la commande `lsof -i` sans spécifier de numéro de port, elle affichera toutes les connexions réseau actives sur le système, y compris les connexions TCP et UDP.
Cela peut être utile pour déterminer quels processus utilisent des connexions réseau, les adresses IP et les noms d'hôtes auxquels ils sont connectés, les ports locaux et distants utilisés pour la connexion, et d'autres informations sur les connexions réseau actives sur le système.
Notez que l'utilisation de `lsof` avec la commande `sudo` peut être nécessaire pour afficher toutes les connexions réseau, car certaines connexions peuvent être ouvertes par des processus qui n'appartiennent pas à votre utilisateur courant.
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)
## Différence entre netstat et lsof
**netstat -tulpn** et **lsof -i** sont tous les deux des outils qui permettent d'obtenir des informations sur les connexions réseau en cours sur un système Linux.
### Filtrer par port ou par protocole
Si vous souhaitez obtenir une vue complète des statistiques réseau sur votre système Linux, **netstat -tulpn** peut être la meilleure option. Si vous souhaitez obtenir des informations sur les fichiers ouverts par les processus en cours d'exécution, **lsof -i** peut être plus utile. Les deux outils peuvent être utiles selon les besoins, et vous pouvez utiliser celui qui vous convient le mieux en fonction de la tâche que vous souhaitez accomplir.
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.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB