localhost:3000 : ce que c'est et comment le réparer
localhost:3000
localhost:3000 : ce que c'est, connexion refusée ou port occupé | We.Inc
Ce que signifie localhost:3000, quels serveurs de développement utilisent le port 3000 par défaut, et les commandes Mac, Linux et Windows qui corrigent les erreurs de connexion refusée et d'adresse déjà utilisée.
localhost:3000 est un serveur web qui tourne sur votre propre ordinateur et écoute sur le port 3000. Next.js, l'exemple hello world d'Express et Rails utilisent tous ce port par défaut. Si la page refuse la connexion, rien n'écoute à cet endroit. Si le serveur ne démarre pas, un autre processus occupe déjà le port, et vous pouvez le trouver et l'arrêter.
Quelle erreur avez-vous ?
Ce que vous voyez
Signification
Première chose à essayer
Navigateur : localhost a refusé de se connecter
Rien n'écoute sur le port 3000
Lancez le serveur de dev et lisez l'URL qu'il affiche
Terminal : EADDRINUSE :::3000
Un autre processus utilise déjà le port 3000
Trouvez ce processus et arrêtez-le, ou utilisez un autre port
La page se charge, mais une ancienne application apparaît
Le serveur d'un autre projet tourne encore
Arrêtez-le, puis relancez le bon
localhost désigne toujours cette machine, et le nombre après les deux-points choisit le programme auquel vous vous adressez. La plupart des soucis avec le port 3000 viennent de deux problèmes opposés : aucun serveur n'y tourne, ou deux serveurs le veulent en même temps. Saisissez un port ci-dessous pour obtenir les commandes adaptées à votre système.
Saisissez le numéro de port qu'utilise votre application. Par défaut, c'est 3000.
Copiez la commande de recherche pour votre système et lancez-la dans un terminal pour voir quel processus écoute.
Arrêtez ce processus avec la seconde commande, ou lancez votre application sur un autre port.
Si rien n'écoute du tout, consultez le tableau des ports par défaut pour vous assurer que votre outil utilise vraiment 3000.
Lisez l'URL qu'affiche le serveur de dev au démarrage. Vite, par exemple, utilise 5173 et passe au port libre suivant si celui-ci est pris.
Arrêtez les serveurs de dev avec Ctrl+C dans leur terminal au lieu de fermer la fenêtre, ce qui peut laisser le processus tourner.
Utilisez http, pas https, sauf si vous avez volontairement lancé le serveur en HTTPS ; Next.js ne sert du HTTPS en local qu'avec --experimental-https.
Dans Docker, l'application doit écouter sur 0.0.0.0 et le port doit être publié, sinon localhost sur la machine hôte refusera la connexion.
Questions fréquentes
Qu'est-ce que localhost:3000 ?
localhost est le nom de votre propre ordinateur, généralement 127.0.0.1 ou ::1, et 3000 est un numéro de port. Ensemble, ils désignent un serveur qui tourne en local, le plus souvent un serveur de développement pour une application web. Personne d'autre sur internet ne peut ouvrir votre URL localhost.
Pourquoi localhost:3000 indique-t-il une connexion refusée ?
Aucun programme n'accepte de connexions sur ce port. Le serveur de dev n'est peut-être pas lancé, a peut-être planté avec une erreur, ou écoute peut-être sur un autre port comme 5173. Vérifiez le terminal où vous l'avez lancé.
Comment corriger l'erreur port 3000 déjà utilisé ?
Trouvez le processus qui occupe le port avec lsof sur Mac ou Linux, ou netstat -ano sous Windows, puis arrêtez-le avec kill ou taskkill. Ou lancez votre application sur un autre port, par exemple next dev -p 3001.
Comment changer le port dans Next.js ?
Passez -p, comme dans next dev -p 4000, ou définissez la variable d'environnement PORT en lançant la commande. La documentation Next.js précise que PORT ne peut pas être défini dans un fichier .env, car le serveur démarre avant la lecture de ce fichier.
Pas via cette adresse, car localhost sur sa machine désigne son propre ordinateur. Pour le partager sur votre réseau, le serveur doit écouter sur toutes les interfaces et les autres utilisent l'adresse IP locale de votre machine et le port.
Les ports en un paragraphe
Un ordinateur peut faire tourner de nombreux serveurs à la fois, chacun écoute donc sur un port numéroté. Un seul programme peut écouter sur un port et une adresse donnés à un instant donné, c'est pourquoi lancer un second serveur sur 3000 échoue avec EADDRINUSE.
Le port 3000 n'a aucune signification officielle. C'est devenu une habitude parce que des outils populaires l'ont choisi par défaut, c'est donc aussi le port le plus susceptible d'être occupé par un serveur que vous avez oublié.
Connexion refusée, étape par étape
Confirmez d'abord qu'un serveur tourne : son terminal doit afficher un message indiquant qu'il est prêt et une URL. S'il s'est arrêté avec une erreur, corrigez d'abord cette erreur, car le navigateur ne peut pas se connecter à un serveur qui n'existe pas.
Comparez ensuite les ports. Si le terminal indique 5173 ou 4321 et que vous avez tapé 3000, le navigateur frappe à une porte vide. Enfin, essayez 127.0.0.1:3000 à la place de localhost:3000, ce qui écarte la résolution du nom vers l'adresse IPv6 quand le serveur n'écoute qu'en IPv4.
Ports par défaut des serveurs de dev
Valeurs par défaut tirées de la documentation de chaque outil, octobre 2026
Outil
Commande
URL par défaut
next dev / next start
Exemple hello world d'Express
Ruby on Rails
bin/rails server
Vite
Vite preview
vite preview
Astro
astro dev
Gérer un port occupé dans votre propre serveur
Lire le port depuis PORT et signaler clairement EADDRINUSE
Un petit serveur Express qui se rabat sur 3000 et affiche un message lisible quand le port est pris.
macOS et Linux
Listez le processus qui écoute sur le port, puis arrêtez-le par son PID (la deuxième colonne).
Windows (invite de commandes)
Affichez les connexions avec leurs identifiants de processus, filtrez par port, puis terminez ce PID.
Lancer plutôt sur un autre port
Laissez l'autre processus tranquille et lancez votre application sur un port libre.
Libérer un port
Port
Les ports vont de 1 à 65535. Affichage des commandes pour 3000.