[Debian] Erreur le port est déjà utilisé

Vous rencontrez l’erreur

Error: listen EADDRINUSE: address already in use :::3001

Lister les processus tournant sur ce port

root@dfs:~# lsof -i :3001

Vous pouvez arrêter ce process

root@dfs:~# kill -9 <PID>

❓ FAQ – Résoudre l’erreur « le port est déjà utilisé » sous Debian

Q1 : Comment identifier le processus bloquant un port sous Debian ?

Utilise la commande lsof -i :NUM_PORT pour afficher le PID du processus utilisant le port. Exemple : lsof -i :3001 te retourne le processus à terminer. Si tu préfères une commande plus simple : fuser NUM_PORT/tcp fonctionne aussi très bien.

Q2 : Comment libérer un port déjà utilisé sous Debian ?

Une fois le PID identifié, tu peux tuer le processus avec kill -9 PID. Si tu veux automatiser : sudo fuser -k NUM_PORT/tcp permet de libérer directement le port.

Q3 : Le port est indiqué comme utilisé, mais aucun processus n’apparaît dans netstat ou lsof : que faire ?

Parfois, les ports apparaissent comme “en écoute” sans qu’un processus soit visible — particulièrement si des sockets sont en TIMED_WAIT ou si des noms de services masquent les numéros. Utilise netstat -anp ou ss -ntl, et vérifie avec lsof -i :NUM_PORT pour une détection fiable.

Q4 : Pourquoi Debian me dit que le port 80 est « utilisé », alors qu’il ne l’est pas vraiment ?

Sous Linux, seuls les processus lancés en root peuvent écouter sur les ports inférieurs à 1024. Un programme lancé par un utilisateur standard peut provoquer ce message même si personne ne l’utilise réellement. Une solution consiste à rediriger le trafic via iptables, par exemple : iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080