127.0.0.1 est probablement l’adresse IP la plus particulière qui existe. Connue sous le nom de localhost, elle désigne toujours et uniquement l’appareil qui l’utilise — votre propre ordinateur. Aucune connexion réseau réelle n’est nécessaire : tout reste à l’intérieur de la machine. Ce guide explique son fonctionnement, ses usages en développement, sa sécurité et son équivalent IPv6.
Qu’est-ce que 127.0.0.1 (localhost)
127.0.0.1 est une adresse de bouclage (loopback). Quand votre ordinateur envoie une requête vers cette IP, la requête ne sort jamais de la carte réseau virtuelle : elle est immédiatement renvoyée vers l’ordinateur lui-même.
Concrètement : si vous tapez http://127.0.0.1 dans votre navigateur, vous demandez à votre ordinateur de visiter… votre propre ordinateur. C’est utilisé pour tester des serveurs locaux sans avoir besoin d’internet ni d’un réseau configuré.
L’alias localhost est un nom de domaine spécial qui résout systématiquement vers 127.0.0.1 (et vers ::1 en IPv6). Les deux sont strictement équivalents en usage courant.
Plage complète : 127.0.0.0/8
Toute la plage 127.0.0.0 à 127.255.255.255 (soit 16,7 millions d’adresses) est réservée au loopback par la RFC 6890. Chaque IP de cette plage pointe vers l’appareil local, mais en pratique seule 127.0.0.1 est universellement utilisée.
Particularité historique : c’est une plage de classe A complète (16,7 millions d’IP gaspillées pour du loopback), héritage des premières conceptions d’IPv4 quand on pensait que 4 milliards d’IP étaient surdimensionnées.
Équivalent IPv6 : ::1
En IPv6, l’adresse de loopback est ::1 (sept groupes de zéros suivis du chiffre 1). Forme étendue : 0000:0000:0000:0000:0000:0000:0000:0001.
Quand vous accédez à http://[::1]/, vous atteignez le serveur local via IPv6 plutôt qu’IPv4. Strictement équivalent côté résultat, mais peut différer côté logs et configuration serveur (un service peut écouter sur 127.0.0.1 sans écouter sur ::1).
Cas d’usage en développement web
- Tester un site local : avec PHP intégré (
php -S 127.0.0.1:8000), Node.js, Python (python -m http.server), Apache local, Nginx local, etc. Le site est accessible uniquement depuis la machine de développement. - Base de données locale : MySQL, PostgreSQL, MongoDB écoutent par défaut sur 127.0.0.1, ce qui empêche tout accès distant non autorisé.
- API locale : développer et tester un backend sans le mettre en production.
- Frameworks modernes : create-react-app, vite, Next.js dev server, Vue CLI lancent un serveur sur 127.0.0.1:3000, :5173, :8080 selon les conventions.
- Conteneurs Docker : Docker expose par défaut les conteneurs sur 127.0.0.1, isolant ainsi le développement de l’extérieur.
Cas d’usage système et administration
- Service de tunneling local : ngrok, localtunnel, Cloudflare Tunnel permettent de rendre un service local accessible depuis internet via une URL publique sans exposer 127.0.0.1.
- Proxy local : applications de capture HTTP (Charles, Fiddler, mitmproxy) écoutent sur 127.0.0.1 pour intercepter le trafic du navigateur.
- DNS local : Pi-hole, AdGuard Home, DNS over HTTPS via cloudflared écoutent sur 127.0.0.1 pour filtrer les requêtes DNS de la machine.
- Bases temporaires : Redis local, SQLite via TCP, conteneurs de test.
Différence entre 127.0.0.1 et 0.0.0.0
Deux IP souvent confondues, surtout en configuration serveur :
- 127.0.0.1 : écouter uniquement sur l’interface loopback. Le service n’est accessible que depuis la machine elle-même.
- 0.0.0.0 : écouter sur toutes les interfaces réseau de la machine (loopback + Wi-Fi + Ethernet). Le service est accessible depuis n’importe où sur le réseau (et potentiellement internet si exposé).
En développement local, 127.0.0.1 est plus sécurisé. En production, 0.0.0.0 derrière un reverse proxy (Nginx, Cloudflare) est l’approche standard.
Sécurité et localhost
127.0.0.1 est considéré comme la zone la plus sécurisée d’une machine, car par construction inaccessible depuis l’extérieur. Mais quelques pièges :
- Services en écoute par erreur sur 0.0.0.0 : un développeur qui configure son service sur 0.0.0.0 au lieu de 127.0.0.1 expose involontairement son code au réseau local. Vérifier avec
netstat -tlnp(Linux) ounetstat -an(Windows). - Malware qui exploite localhost : certains malware utilisent 127.0.0.1 pour rediriger les requêtes vers des serveurs malveillants (modification du fichier hosts). Une IP étrange dans
/etc/hostsest un signal d’alerte. - Attaques SSRF : une application web mal codée peut être trompée pour faire des requêtes vers 127.0.0.1 et accéder à des services internes (base de données, métadonnées cloud).
Fichier hosts et 127.0.0.1
Le fichier hosts de votre système d’exploitation contient toujours au minimum ces deux lignes :
127.0.0.1 localhost::1 localhost
Vous pouvez modifier ce fichier pour faire pointer un nom de domaine vers localhost (par exemple bloquer un site en faisant 127.0.0.1 facebook.com). Localisations :
- Windows :
C:\Windows\System32\drivers\etc\hosts - macOS / Linux :
/etc/hosts
Pinger localhost
Pour tester que la pile réseau de votre machine fonctionne, le réflexe est de pinger 127.0.0.1 :
ping 127.0.0.1: doit répondre instantanément (< 1 ms).ping ::1: équivalent IPv6.ping localhost: utilise le fichier hosts pour résoudre.
Si le ping vers 127.0.0.1 échoue, c’est que la pile TCP/IP de votre OS est corrompue (très rare). Réinstaller les pilotes réseau ou réparer la pile.
FAQ : 127.0.0.1 et localhost
Quelle différence entre 127.0.0.1 et 192.168.1.1 ?
127.0.0.1 désigne toujours votre propre ordinateur. 192.168.1.1 désigne généralement le routeur de votre réseau local. Deux machines totalement différentes, deux fonctions différentes.
Peut-on utiliser 127.0.0.2 ?
Oui, mais peu courant. Toute la plage 127.0.0.0/8 pointe vers la machine locale. Sur Linux, on peut faire écouter un service sur 127.0.0.2 spécifiquement pour le distinguer des autres services qui écoutent sur 127.0.0.1.
Pourquoi mon site visite 127.0.0.1 quand je clique sur des liens ?
Soit votre fichier hosts a été modifié (vérifier), soit votre serveur web local intercepte les requêtes (configuration WAMP, MAMP, Laragon). Une URL relative sans domaine résout aussi vers le serveur local de la page.
127.0.0.1 fonctionne-t-il sans connexion internet ?
Oui, c’est même son intérêt principal. La pile loopback fonctionne uniquement en interne, sans aucune dépendance à un réseau externe.
Mon site rank sur « 127.0.0.1 » ?
Non, 127.0.0.1 n’est ni un site, ni un domaine. Aucun nom de domaine ne peut pointer publiquement vers 127.0.0.1 (la plage est non routable). Les recherches sur « 127.0.0.1 » amènent vers des pages éditoriales (comme celle-ci) qui expliquent le concept.