Comment identifier un processus Linux écoutant sur un port spécifique

Identifier le processus qui monopolise un port sous Linux peut s’avérer crucial, surtout en cas de dysfonctionnement (serveur qui ne démarre pas, conflit de ports, etc.).Trouver le processus en cours d’exécution et l’arrêter peut parfois sembler complexe, mais une fois la technique maîtrisée, c’est assez simple. De plus, connaître les commandes permet d’éviter d’arrêter des processus par erreur. Ce guide présente les meilleures commandes et les étapes pour identifier et gérer les processus écoutant sur des ports spécifiques, avec des exemples pratiques.

Comment trouver et gérer les processus écoutant sur des ports sous Linux

Trouver un processus écoutant sur un port spécifique

Si un port est occupé ou si une application ne fonctionne pas, il faut d’abord identifier le processus qui écoute sur ce port. Par exemple, pour vérifier le port 8000, utilisez sudo lsof -i :8000la commande `ls` pour afficher le processus qui l’utilise. L’information essentielle est le nom du processus, mais surtout son PID (identifiant du processus).Une fois ces informations obtenues, la gestion du processus devient plus simple.

Cette méthode s’avère particulièrement efficace pour le dépannage, par exemple lorsqu’un serveur web ou un serveur de développement local rencontre des problèmes. Sur certaines configurations, la commande peut échouer si elle n’est pas exécutée avec les privilèges d’administrateur (sudo). Il est donc important de l’exécuter en tant que superutilisateur (root) ou avec des privilèges élevés.

Liste de tous les ports TCP et UDP en écoute

Si vous souhaitez une vue d’ensemble des processus en écoute sur n’importe quel port réseau, sudo netstat -lntup| grep LISTENnetstat est votre meilleur allié. Certes, son interface peut paraître un peu désuète, mais il reste fiable et utile, notamment parce qu’il affiche simultanément tous les processus TCP et UDP, avec leurs identifiants et noms si vous ajoutez les options appropriées.

Voici le rôle de chaque partie :

  • -l– Filtrer pour n’afficher que les sockets en écoute
  • -n– évite les requêtes DNS, affiche uniquement l’adresse IP et le numéro de port, ce qui permet de gagner du temps.
  • -t– se concentrer sur TCP
  • -u– UDP
  • -p– Inclut l’identifiant et le nom du processus, très utile pour identifier précisément qui écoute.

Parfois, vous voudrez peut-être simplement rechercher quelque chose de spécifique, comme « LISTEN » ou un certain numéro de port, afin que la sortie ne soit pas noyée sous les informations.

Vérifier quel processus écoute sur un port connu

Si vous connaissez déjà le numéro de port et souhaitez consulter les détails du processus, la commande `ls` est une méthode classique. Par exemple, si vous trouvez le processus 72005 en écoute sur le port 8000, exécutez `ls`.Cela affichera qui a lancé le processus et avec quelle commande, ce qui vous permettra de déterminer s’il est possible de l’arrêter ou de le redémarrer sans risque.ps -aux | grep ps -aux | grep 72005

Petit conseil : certains processus sont lancés par root ou des utilisateurs spécifiques ; les informations contenues dans psla sortie peuvent donc vous en apprendre beaucoup sur vos autorisations ou sur le fait qu’il s’agisse d’un service appartenant à root.

Supprimer le processus pour libérer le port

Si vous avez identifié le processus (par exemple, PID 72005) et souhaitez l’arrêter, exécutez la commande `stop` sudo kill -9 72005. Cette -9commande garantit un arrêt immédiat, mais utilisez-la avec précaution : elle ne laisse pas au processus le temps de se nettoyer. Parfois, un arrêt propre avec `stop` (sans `stop` ) suffit.kill -9

Après avoir tué le processus, vérifiez que le port est libre avec la commande d’origine :

$ sudo lsof -i :8000

Si aucune sortie ne s’affiche, le port est de nouveau libre. Cette méthode est plus efficace que de redémarrer le serveur ou la machine à l’aveuglette en espérant que cela résolve le problème.

Certaines configurations peuvent comporter des pare-feu ou d’autres configurations réseau qui affectent cela, mais ces commandes couvrent les aspects essentiels de la gestion directe des ports et des processus.

Et au fait, si ça vous intéresse, il existe aussi un petit projet GitHub : Winhance, qui facilite la gestion des processus et des ports sous Windows, mais pour Linux, ces commandes de base suffisent généralement.