Comment fonctionne localhost 127.0.0.1?

17

J'ai trouvé quelques articles à ce sujet, mais ils ne me suffisaient pas. Je veux savoir comment ça localhostmarche et pourquoi est-ce la même chose sur de nombreuses machines différentes?

Comment localhostbloque-t-il l'accès au site Web lorsque nous l'utilisons dans le hostfichier pour bloquer le site Web?

avirk
la source
2
Je suis désolé mais vous m'avez complètement perdu sur la deuxième ligne de votre question ... que voulez-vous dire?
Windos
1
@Windos, lorsque vous ajoutez une entrée au fichier hosts comme "127.0.0.1 www.blah.com", il redirige ce site vers localhost (utilisé pour fonctionner avec IE8 de toute façon)
tzup
Voir aussi Qu'est - ce que est l'adresse de réalimentation (c. -à- 127.0.0.1)?
G-Man dit `` Réintègre Monica '' le

Réponses:

23

Je ne parlerai pas du cas Windows ici, car c'est un peu différent, mais disons ceci: dans chaque système d'exploitation de type Unix, vous avez deux périphériques réseau:

  • Un périphérique de bouclage
  • Un appareil Ethernet

Le premier est purement "virtuel". C'est comme une prise Ethernet que vous ne pouvez pas voir. La seconde concerne la prise Ethernet de votre ordinateur.

entrez la description de l'image ici

Que fait l'interface de bouclage? Chaque trafic que vous envoyez au bouclage reviendra.

Comme votre périphérique Ethernet obtient une adresse IP (par exemple 192.168.1.20), le périphérique de bouclage aura également une adresse IP, à savoir 127.0.0.1. Pour le rendre plus facile, vous pouvez également y accéder localhost.

Si vous regardez un /etc/hostsfichier Unix typique , vous verrez que 127.0.0.1 est mappé sur "localhost". Ainsi, chaque fois que vous tapez "localhost", votre ordinateur saura appeler 127.0.0.1.

Et c'est la raison pour laquelle vous pouvez "bloquer" les applications. Disons que vous ne voulez pas que votre ordinateur envoie des données à Microsoft. Ensuite, vous pouvez simplement rediriger chaque demande microsoft.comvers 127.0.0.1 à la place. Chaque tentative de contact microsoft.comentraînerait un échec.

* chaque système disposant en fait d'un port Ethernet matériel

slhck
la source
Dans 'dows, le sous-système DNS résoudra l'hôte local en 127.0.0.1, et le trafic vers 127.0.0.1 ne va même jamais vers une interface, la pile réseau boucle en boucle (c'est vraiment exactement la même manière qu'Unix, mais sans l'interface virtuelle comme manifestation du processus).
jcrawfordor
Bien que vous puissiez installer l'adaptateur de bouclage Microsoft, ce n'est pas tout à fait la même chose.
slhck
De nos jours, de nombreux systèmes d'exploitation prennent en charge la version 0.0.0.0, utilisez-le donc pour bloquer les sites à la place. Évite la boucle ...
Tamara Wijsman
8

Les adresses IP (Internet Protocol) appartiennent à l'une des quatre catégories de base.

  1. Adresses utilisées pour communiquer avec d'autres ordinateurs à travers le monde,
  2. Adresses utilisées pour communiquer avec des ordinateurs uniquement au sein d'une entreprise ou d'un réseau spécifique,
  3. Adresses utilisées pour diffuser des informations entre ordinateurs sur un réseau,
  4. Adresses utilisées pour permettre à un ordinateur de se parler à lui-même.

Par accord, 127.0.0.1 est l'une de ces adresses qui appartiennent à la dernière de ces catégories.

En tant qu'êtres humains, nous n'avons pas tendance à nous souvenir très bien des numéros IP, mais nous n'avons aucun problème à nous souvenir de noms comme superuser.com, www.google.com et d'autres noms similaires. Quand Internet était petit (très petit), les humains partageaient un fichier "hôtes" avec d'autres personnes sur Internet afin qu'ils n'aient pas à se souvenir des nombres. Ce fichier d'hôtes contenait des paires d'une adresse IP et un ou plusieurs noms d'hôtes. Lorsque quelqu'un tentait d'accéder à un hôte par son nom, le logiciel informatique en savait assez pour aller le chercher dans le fichier hosts. L'Internet s'est tellement développé depuis lors que nous utilisons maintenant un système de noms de domaine (DNS) afin de résoudre les noms en numéros IP en plus d'utiliser l'ancien fichier d'hôtes de style. La plupart des ordinateurs sont configurés pour rechercher d'abord les noms dans le fichier hosts, puis dans DNS si cela échoue.

Maintenant que vous avez le contexte, voici comment cela fonctionne (généralement):

Lorsque vous ajoutez cette entrée à votre fichier d'hôtes, chaque fois que votre ordinateur essaie de rechercher www.foo.com, il essaiera d'atteindre ce site sur l'adresse IP 127.0.0.1 car vous lui avez indiqué qu'il s'agit de l'adresse Internet de www. foo.com. N'oubliez pas que 127.0.0.1 permettra à un ordinateur de se parler à lui-même. Si vous tentez d'accéder à 127.0.0.1 dans votre navigateur, vous essayerez de contacter un serveur Web sur votre ordinateur. Si vous aviez mis en 2.3.4.5 au lieu de 127.0.0.1, il aurait essayé de contacter l'ordinateur à l'adresse 2.3.4.5 lors de l'ouverture de www.foo.com.

127.0.0.1 localhost
127.0.0.1 www.foo.com
127.0.0.1 foo.com

La mauvaise chose à propos de l'utilisation du fichier hosts pour des choses comme celle-ci est qu'une fois que vous avez ajouté une entrée au fichier hosts, vous assumez la responsabilité de maintenir ces informations à jour. Si vous ne placez pas l'entrée dans votre fichier d'hôtes, votre ordinateur essaiera d'utiliser DNS pour rechercher l'adresse IP, puis utilisera cette adresse IP pour contacter le serveur.

La bonne chose à ce sujet est que si vous ne voulez jamais permettre à quiconque de parler à www.foo.com par le nom d'hôte sur votre ordinateur uniquement, l'ajout de l'entrée à votre fichier hosts peut (mot-clé - peut) empêcher cela de se produire. Si l'objectif est d'empêcher d'atteindre un site particulier par quelque moyen que ce soit (pas seulement par le nom d'hôte), il existe d'autres moyens meilleurs et plus fiables d'empêcher que cela ne se produise, comme en utilisant correctement un pare-feu.

KB CMDBA
la source
De nos jours, de nombreux systèmes d'exploitation prennent en charge la version 0.0.0.0, utilisez-le donc pour bloquer les sites à la place. Évite la boucle ...
Tamara Wijsman
7

Localhost ou 127.0.0.1 est simplement un «nom» intégré pour votre ordinateur local.

Autrement dit, 127.0.0.1 est appelé "bouclage", car il s'agit simplement d'un pointeur qui pointe vers votre machine. Il s'agit d'une adresse IP réservée qui peut également être écrite comme hôte local par définition.

Le but de cela est de permettre à quelqu'un de parler à son ordinateur en envoyant un signal vers l'extérieur, puis en le bouclant afin que le signal soit également lu par votre même ordinateur.

Supposons que vous exécutez un serveur sur votre machine - pour y accéder, vous devez envoyer une demande au serveur (envoyer un paquet à 127.0.0.1) et votre serveur doit le lire (votre système boucle le paquet vers votre système local sur 127.0.0.1 qui est ensuite lu par votre logiciel serveur).

akseli
la source
5

J'ai découvert une présentation au Guide TCP / IP qui m'a paru très éclairante:

Normalement, lorsqu'une application TCP / IP veut envoyer des informations, ces informations descendent les couches de protocole vers IP où elles sont encapsulées dans un datagramme IP . Ce datagramme passe ensuite à la couche de liaison de données du réseau physique de l'appareil pour être transmis au saut suivant, en route vers la destination IP.

Cependant, une plage spéciale d'adresses est réservée à la fonctionnalité de bouclage . Il s'agit de la plage 127.0.0.0 à 127.255.255.255. Datagrammes IP envoyés par un hôte à un 127. x . x . Les adresses de bouclage x ne sont pas transmises à la couche liaison de données pour transmission. Au lieu de cela, ils «bouclent» vers le périphérique source au niveau IP. En substance, cela représente un «court-circuitage» de la pile de protocoles normale; les données sont envoyées par l'implémentation IP de la couche trois d'un appareil, puis immédiatement reçues par celui-ci.


En outre, Rutgers propose un cours de mise en réseau qui comprend cette illustration de la communication inter-hôtes normale,

communication normale entre hôtes

et celui-ci du flux de données de bouclage:

                                                    flux de données de bouclage

Scott
la source
4

Pour la deuxième partie de votre question, si vous mettez le nom d'hôte d'un site Web dans votre fichier hosts avec l'adresse 127.0.0.1, cela signifie que lorsque vous tapez l'adresse dans votre navigateur au lieu d'utiliser DNS pour trouver l'adresse correcte, il la trouve dans votre fichier d'hôtes le résout d'abord en localhost et au lieu d'aller à l'adresse du site Web, il commence simplement à parler à votre machine, ce qui provoque le chargement du site Web.

Col
la source
De nos jours, de nombreux systèmes d'exploitation prennent en charge la version 0.0.0.0, utilisez-le donc pour bloquer les sites à la place. Évite la boucle ...
Tamara Wijsman