Localhost : ce que c’est, comment y accéder et que faire quand ça ne fonctionne pas

https://localhost:80

Vous tapez http://localhost dans votre navigateur et vous obtenez une page blanche – ou pire, une erreur de connexion refusée. Pourtant, votre serveur est bien démarré. Ce genre de situation arrive régulièrement en développement local, et la cause est presque toujours simple à identifier quand on comprend ce que localhost est vraiment.

Localhost, c’est quoi exactement?

Localhost est un hostname réservé qui désigne votre propre ordinateur. Quand vous l’utilisez, votre machine ne cherche pas un serveur distant : elle se parle à elle-même via ce qu’on appelle une interface de loopback. Ce nom se résout automatiquement en l’adresse IP 127.0.0.1, sans passer par votre box ni par aucun réseau externe.

L’adresse 127.0.0.1 fait partie d’un bloc réservé qui s’étend de 127.0.0.0 à 127.255.255.255, soit plus de 16 millions d’adresses dédiées au loopback. En IPv6, l’équivalent est ::1 (forme abrégée de 0:0:0:0:0:0:0:1). Les deux désignent la même chose : votre machine locale.

Ce mécanisme remonte à 1981. Le bloc 127 a été réservé dès cette époque pour éviter que des paquets destinés au loopback ne circulent sur les réseaux publics. Les règles actuelles sont formalisées dans la RFC 6761, qui liste localhost parmi les noms de domaine spéciaux réservés à un usage particulier.

Comment accéder à localhost depuis un navigateur?

La méthode la plus directe : saisir http://localhost dans la barre d’adresse et appuyer sur Entrée. Si un serveur web tourne sur votre machine (Apache, Nginx, ou un outil comme WAMP ou XAMPP), la page d’accueil s’affiche. Sans serveur actif, vous obtenez une erreur de connexion.

Quand vous ne précisez pas de port, le navigateur se connecte automatiquement au port 80, le port par défaut du protocole HTTP. Pour cibler un serveur qui écoute sur un autre port, la syntaxe est http://localhost:NUMERO_DU_PORT. Par exemple, http://localhost:8080 ou http://localhost:3000.

Depuis un smartphone ou une tablette connecté au même réseau Wi-Fi, localhost ne fonctionnera pas directement : l’appareil mobile ne connaît pas votre machine par ce nom. Utilisez l’adresse IP locale de votre ordinateur (du type 192.168.1.X) suivie du port. Vous trouvez cette adresse dans les paramètres réseau de votre machine, ou via la commande ipconfig sur Windows et ifconfig sur Mac/Linux.

Ports courants : à quoi servent localhost:8080 et localhost:3000?

comment accéder à mon localhost ?

Les numéros de port vont de 0 à 65 535. Les ports en dessous de 1024 sont dits « privilégiés » et nécessitent des droits administrateur pour être utilisés sur la plupart des systèmes. C’est pourquoi les outils de développement évitent le port 80 et se rabattent sur des alternatives comme le port 8080.

Le port 8080 est historiquement associé aux serveurs HTTP alternatifs et aux proxies. Apache Tomcat, le serveur d’applications Java, écoute sur ce port par défaut. WAMP et XAMPP peuvent aussi y basculer quand le port 80 est déjà pris. Vous accédez alors à votre environnement via http://localhost:8080.

Le port 3000 est devenu la convention implicite de l’écosystème JavaScript côté serveur. Node.js, React (via Create React App), Next.js en mode développement et Ruby on Rails démarrent tous sur ce port par défaut. Si vous lancez npm start dans un projet React, votre navigateur s’ouvre automatiquement sur http://localhost:3000.

Port Outils / frameworks associés Protocole
80 Apache, Nginx, WAMP, XAMPP HTTP
443 Apache/Nginx en HTTPS, mkcert HTTPS
3000 Node.js, React, Rails, Next.js HTTP
8080 Tomcat, WAMP alternatif, Jenkins HTTP
5173 Vite (depuis la v3) HTTP

Pourquoi localhost refuse-t-il la connexion?

Deux erreurs reviennent le plus souvent : ERR_CONNECTION_REFUSED et ERR_CONNECTION_TIMEOUT. La première signifie que quelque chose écoute bien sur le port mais rejette la connexion – ou que rien n’écoute du tout. La seconde indique que la requête reste sans réponse, souvent à cause d’un pare-feu.

La cause la plus fréquente d’un refus de connexion est simple : le serveur n’est pas démarré. Apache peut être arrêté, Node.js peut avoir planté silencieusement. Avant tout diagnostic avancé, vérifiez que votre processus tourne réellement.

Le mauvais port est la deuxième cause. Votre serveur écoute sur le port 3000, vous tapez http://localhost (port 80) – la connexion échoue. Vérifiez toujours le port exact dans la configuration ou les logs de démarrage de votre outil.

Skype, IIS et d’autres applications utilisent parfois le port 80 ou le port 443 sans le signaler clairement. Apache ne peut pas démarrer si ces ports sont déjà occupés. Sur Windows, la commande netstat -ano liste tous les ports actifs et les processus qui les occupent, ce qui permet d’identifier le conflit rapidement. Un cache DNS corrompu peut aussi bloquer la résolution de localhost, bien que ce cas soit moins courant que les deux précédents.

Comment résoudre le problème ‘ce site est inaccessible’ sur localhost?

Voici les étapes dans l’ordre logique, de la plus probable à la moins fréquente :

  • Vérifier que le serveur tourne : ouvrez le gestionnaire de tâches (Windows) ou utilisez ps aux | grep apache (Mac/Linux). Si le processus est absent, redémarrez votre serveur.
  • Confirmer le numéro de port : lisez les logs de démarrage. La plupart des frameworks affichent explicitement « Listening on port XXXX ».
  • Vider le cache DNS : sur Windows, ouvrez une invite de commandes en administrateur et tapez ipconfig /flushdns. Sur macOS Ventura et versions récentes, la commande est sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder.
  • Contrôler le pare-feu : certains logiciels de sécurité bloquent le trafic vers l’interface de loopback. Vérifiez les règles entrantes et sortantes pour l’adresse 127.0.0.1.
  • Libérer le port occupé : sur Windows, identifiez le PID avec netstat -ano | findstr :80, puis terminez le processus via le gestionnaire de tâches ou taskkill /PID [numéro] /F.

Localhost avec WordPress : fonctionnement et outils recommandés

c'est quoi localhost ?

WordPress nécessite PHP et MySQL pour fonctionner. En local, vous avez besoin d’un environnement qui fournit les deux. XAMPP (multiplateforme) et WAMP (Windows uniquement) regroupent Apache, MySQL et PHP dans un seul installeur. Une fois lancés, ils rendent votre installation WordPress accessible via http://localhost ou http://localhost/nom-du-dossier.

Local by Flywheel (rebaptisé simplement « Local ») a changé la donne pour les développeurs WordPress. L’outil crée un environnement isolé par site, gère automatiquement les versions de PHP et de MySQL, et propose une URL locale du type monsite.local plutôt que de passer par localhost avec un sous-répertoire. C’est plus propre pour gérer plusieurs projets en parallèle.

Travailler hors ligne avec WordPress présente des avantages concrets : vous testez des mises à jour de plugins sans risquer de casser un site en production, vous développez un thème sans que vos clients voient les travaux, et vous travaillez même sans connexion internet. Le seul écueil : les performances locales sont différentes de celles d’un hébergeur mutualisé ou d’un VPS, donc les temps de chargement mesurés en local ne sont pas représentatifs.

Localhost reste limité à la machine locale : ce qu’on ne peut pas en faire

Par définition, localhost ne sort jamais de votre machine. Aucun autre appareil sur internet – ni même sur votre réseau local si vous utilisez le nom « localhost » – ne peut y accéder. C’est à la fois sa force (sécurité par isolation) et sa limite principale pour les tests collaboratifs.

Quand vous devez montrer votre environnement local à un client ou tester sur un téléphone sans connaître votre IP locale, ngrok est l’outil le plus utilisé. Il crée un tunnel sécurisé entre votre machine et un sous-domaine public temporaire. Une commande suffit : ngrok http 3000 génère une URL publique qui pointe vers votre serveur local sur le port 3000.

Pour des besoins plus complexes – partage de fichiers ou exposition de services sur un réseau Debian par exemple – les options de partage avec accès extérieur sur Linux offrent des solutions plus durables que ngrok. Et si vos échanges réseau entre machines vous amènent à creuser le fonctionnement des paquets, la structure des trames Ethernet explique comment les données circulent à l’échelle du réseau local.

Localhost reste ce qu’il a toujours été depuis 1981 : un espace protégé où votre machine se parle à elle-même. Efficace, rapide, isolé – à condition de ne pas lui demander ce qu’il n’a jamais été conçu pour faire.