Comment utiliser lsof pour identifier l’ID du processus utilisant un port spécifique sous Linux

novembre 17, 2025

comment Aucun commentaire

by Kévin Remy

Comment utiliser lsof pour identifier l’ID du processus utilisant un port spécifique sous Linux

novembre 17, 2025

comment Aucun commentaire

by Kévin Remy

🎯 Réponse rapide : Pour identifier l’ID d’un processus utilisant un port spécifique sous Linux, utilisez la commande lsof -i :numéro_port. Par exemple, lsof -i :80 affiche tous les processus utilisant le port 80.

📋 Exemple pratique immédiat

$ lsof -i :80
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   1234 www-data 6u  IPv4  12345      0t0  TCP *:http (LISTEN)

Ici, le processus nginx avec le PID 1234 utilise le port 80.

🔧 Installation de lsof selon votre distribution

Avant d’utiliser lsof, vérifiez s’il est déjà installé avec which lsof. Si aucun résultat n’apparaît, installez-le selon votre distribution :

Distribution Commande d’installation
Ubuntu/Debian sudo apt install lsof
RHEL/CentOS/Fedora sudo yum install lsof ou sudo dnf install lsof
Arch Linux sudo pacman -S lsof
OpenSUSE sudo zypper install lsof

⚡ Syntaxe de base et exemples concrets

La commande principale pour identifier un processus par port est simple :

lsof -i :numéro_port

Exemples d’usage courants :

  • Port SSH (22) : lsof -i :22
  • Port HTTP (80) : lsof -i :80
  • Port HTTPS (443) : lsof -i :443
  • Port personnalisé (8080) : lsof -i :8080

💡 Astuce

Pour spécifier le protocole, ajoutez TCP ou UDP : lsof -i tcp:80 ou lsof -i udp:53

📊 Comprendre la sortie de lsof

Chaque colonne de la sortie lsof fournit une information spécifique :

Colonne Description Exemple
COMMAND Nom du processus nginx, httpd, sshd
PID Identifiant unique du processus 1234, 5678
USER Utilisateur propriétaire root, www-data, apache
FD Descripteur de fichier 3u, 4u (u = lecture/écriture)
TYPE Type de connexion IPv4, IPv6
NAME Adresse réseau et état *:http (LISTEN), 192.168.1.10:22 (ESTABLISHED)

États de connexion importants :

  • LISTEN : Le processus attend des connexions entrantes
  • ESTABLISHED : Connexion active entre deux hôtes
  • TIME_WAIT : Connexion fermée en attente de nettoyage

🎛️ Options avancées pour des recherches précises

Combinez ces options pour affiner vos recherches :

Option Fonction Exemple d’utilisation
-P Afficher les numéros de ports lsof -P -i :80
-n Montrer les IP au lieu des noms lsof -n -i :22
-t Afficher uniquement les PID lsof -t -i :443
-u utilisateur Filtrer par utilisateur lsof -u apache -i :80

Combinaisons utiles :

# Obtenir uniquement le PID d'un processus sur le port 80
lsof -t -i :80

# Afficher toutes les informations sans résolution DNS
lsof -Pn -i :443

# Rechercher les processus d'un utilisateur spécifique
lsof -u www-data -i

🛠️ Cas pratiques et scripts d’automatisation

Identifier rapidement un service web :

# Vérifier les services web actifs
lsof -i :80,443

# Trouver qui utilise le port SSH
lsof -i :22

Script de surveillance automatique :

#!/bin/bash
# Script de surveillance des ports critiques
echo "=== Surveillance des ports critiques ==="
for port in 22 80 443 3306 5432; do
    echo "Port $port:"
    lsof -i :$port | grep LISTEN || echo "  Aucun processus en écoute"
    echo ""
done

🚨 Résolution des problèmes courants

⚠️ Problème : Aucun résultat affiché

Solutions :

  • Vérifiez que le port est bien utilisé avec netstat -tulpn | grep :port
  • Utilisez sudo pour voir tous les processus : sudo lsof -i :port
  • Le processus peut utiliser IPv6 : lsof -i 6:port

🔑 Alternative avec netstat

Si lsof n’est pas disponible, utilisez netstat :

netstat -tulpn | grep :80

⚡ Actions après identification du processus

Une fois le PID identifié, plusieurs actions sont possibles :

Arrêter un processus :

# Arrêt normal
kill PID

# Arrêt forcé (en dernier recours)
kill -9 PID

# Exemple pratique
sudo kill $(lsof -t -i :8080)

Redémarrer un service :

# Redémarrer nginx
sudo systemctl restart nginx

# Redémarrer Apache
sudo systemctl restart apache2

❓ FAQ – Questions fréquentes

Comment voir tous les ports utilisés par un processus spécifique ?

Utilisez lsof -p PID -i où PID est l’identifiant de votre processus. Par exemple : lsof -p 1234 -i

Peut-on utiliser lsof sans privilèges administrateur ?

Oui, mais vous ne verrez que les processus appartenant à votre utilisateur. Pour voir tous les processus système, utilisez sudo lsof.

Quelle est la différence entre lsof et netstat ?

lsof affiche plus d’informations sur les fichiers ouverts et les connexions réseau, tandis que netstat se concentre uniquement sur les statistiques réseau. lsof est plus moderne et détaillé.

Comment surveiller un port en temps réel ?

Utilisez watch -n 2 'lsof -i :80' pour actualiser l’affichage toutes les 2 secondes, ou combinez avec tail -f pour surveiller les logs.

Est-ce que lsof fonctionne avec IPv6 ?

Oui, utilisez lsof -i 6:port pour spécifiquement rechercher les connexions IPv6, ou lsof -i 4:port pour IPv4 uniquement.

Laisser un commentaire