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