¿Cómo funciona localhost 127.0.0.1?

17

Encontré algunos artículos relacionados con esto, pero no fueron suficientes para mí. Quiero saber cómo localhostfunciona y por qué es lo mismo en muchas máquinas diferentes.

¿Cómo localhostbloquea el acceso al sitio web cuando lo usamos en el hostarchivo para bloquear el sitio web?

avirk
fuente
2
Lo siento, pero me tienes completamente perdido en la segunda línea de tu pregunta ... ¿qué quieres decir?
Windos
1
@Windos, cuando agrega una entrada al archivo de hosts como "127.0.0.1 www.blah.com", redirige ese sitio a localhost (de todos modos solía trabajar con IE8)
tzup
Consulte también ¿Cuál es la dirección de bucle invertido (es decir, 127.0.0.1)?
G-Man dice 'reinstalar a Monica' el

Respuestas:

23

No hablaré sobre el caso de Windows aquí, porque es un poco diferente, pero digamos esto: en cada sistema operativo tipo * Unix, tiene dos dispositivos de red:

  • Un dispositivo loopback
  • Un dispositivo Ethernet

El primero es puramente "virtual". Es como un enchufe Ethernet que no puedes ver. El segundo tiene que ver con el enchufe de Ethernet en su computadora.

ingrese la descripción de la imagen aquí

¿Qué hace la interfaz de bucle invertido? Cada tráfico que envíe a loopback volverá.

Al igual que su dispositivo Ethernet obtiene una dirección IP (por ejemplo 192.168.1.20), el dispositivo de bucle invertido también tendrá una dirección IP, concretamente 127.0.0.1. Para hacerlo más fácil, también puede acceder a él localhost.

Si observa un /etc/hostsarchivo Unix típico , verá que 127.0.0.1 está asignado a "localhost". Entonces, cada vez que escriba "localhost", su computadora sabrá llamar a 127.0.0.1.

Y esta es la razón por la que puede "bloquear" aplicaciones. Digamos que no desea que su computadora envíe datos a Microsoft. Entonces podría simplemente redirigir cada solicitud microsoft.coma 127.0.0.1 en su lugar. Cada intento de contacto microsoft.comresultaría en un fracaso.

* todos los sistemas que realmente tienen un puerto Ethernet de hardware

slhck
fuente
En 'dows, el subsistema DNS resolverá el host local a 127.0.0.1, y el tráfico a 127.0.0.1 ni siquiera va a una interfaz, la pila de red se repite directamente (es realmente exactamente de la misma manera que Unix, pero sin la interfaz virtual como manifestación del proceso).
jcrawfordor
Aunque puede instalar el adaptador de bucle invertido de Microsoft, no es exactamente lo mismo.
slhck
Hoy en día, muchos sistemas operativos admiten 0.0.0.0, así que utilícelo para bloquear sitios en su lugar. Evita el bucle ...
Tamara Wijsman
8

Las direcciones de Protocolo de Internet (IP) se encuentran en una de las cuatro categorías básicas.

  1. Direcciones utilizadas para comunicarse con otras computadoras alrededor del mundo,
  2. Direcciones utilizadas para comunicarse con computadoras solo dentro de una empresa o red específica,
  3. Direcciones utilizadas para transmitir información entre computadoras en una red,
  4. Direcciones utilizadas para permitir que una computadora se hable a sí misma.

Por acuerdo, 127.0.0.1 es una de esas direcciones que se encuentran en la última de esas categorías.

Como humanos, no tendemos a recordar muy bien los números de IP, pero no tenemos problemas para recordar nombres como superuser.com, www.google.com y otros nombres similares. Cuando Internet era pequeño (muy pequeño), los humanos compartían un archivo de "hosts" con otras personas en Internet para que no tuvieran que recordar los números. Ese archivo de hosts contenía pares de una dirección IP y uno o más nombres de host. Cuando alguien intentaba acceder a un host por su nombre, el software de la computadora sabía lo suficiente como para buscarlo en el archivo de hosts. Internet ha crecido tanto desde entonces que ahora usamos un sistema de nombres de dominio (DNS) para resolver nombres a números IP además de usar el antiguo archivo de hosts. La mayoría de las computadoras están configuradas para buscar nombres en el archivo de hosts primero, luego en DNS si eso falla.

Ahora que tiene los antecedentes, así es como funciona (generalmente):

Cuando agrega esta entrada a su archivo de hosts, cada vez que su computadora intenta buscar en www.foo.com, intentará llegar a ese sitio en la dirección IP 127.0.0.1 porque le dijo que esa es la dirección de Internet para www. foo.com. Recuerde que 127.0.0.1 permitirá que una computadora se comunique consigo misma, por lo que al intentar ir a 127.0.0.1 en su navegador intentará contactar a un servidor web en su computadora. Si hubiera ingresado 2.3.4.5 en lugar de 127.0.0.1, habría intentado comunicarse con la computadora en la dirección 2.3.4.5 al abrir www.foo.com.

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

Lo malo de usar el archivo de hosts para cosas como esta es que una vez que agrega una entrada al archivo de hosts, asume la responsabilidad de mantener esa información actualizada. Si no coloca la entrada en su archivo de hosts, su computadora intentará usar DNS para buscar la dirección IP, luego usará esa dirección IP para contactar al servidor.

Lo bueno de esto es que si nunca desea permitir que nadie hable con www.foo.com solo por el nombre de host en su computadora, agregar la entrada a su archivo de hosts puede (palabra clave - mayo) evitar que eso suceda. Si el objetivo es evitar llegar a un sitio en particular por cualquier medio (no solo por el nombre de host), hay otras formas mejores y más confiables para evitar que eso suceda, como usar un firewall correctamente.

KB CMDBA
fuente
Hoy en día, muchos sistemas operativos admiten 0.0.0.0, así que utilícelo para bloquear sitios en su lugar. Evita el bucle ...
Tamara Wijsman
7

Localhost o 127.0.0.1 es simplemente un "nombre" integrado para su computadora local.

Es decir, 127.0.0.1 se llama "loopback", porque es simplemente un puntero que apunta de nuevo a su máquina. Es una dirección IP reservada que también se puede escribir como localhost por definición.

El propósito de esto es permitir que uno hable con la computadora enviando una señal hacia afuera y luego haciendo un bucle para que la misma computadora también lea la señal.

Supongamos que está ejecutando un servidor en su máquina: para acceder a él, debe enviar una solicitud al servidor (enviar un paquete a 127.0.0.1) y su servidor debe leerlo (su sistema vuelve el paquete a su sistema local en 127.0.0.1 que luego es leído por el software de su servidor).

akseli
fuente
5

Descubrí una presentación en la Guía TCP / IP que me pareció muy esclarecedora:

Normalmente, cuando una aplicación TCP / IP desea enviar información, esa información viaja a través de las capas de protocolo a IP, donde se encapsula en un datagrama de IP . Ese datagrama luego pasa a la capa de enlace de datos de la red física del dispositivo para su transmisión al siguiente salto, en el camino hacia el destino IP.

Sin embargo, se reserva un rango especial de direcciones para la funcionalidad de bucle invertido . Este es el rango 127.0.0.0 a 127.255.255.255. Datagramas IP enviados por un host a un 127. x . x . La dirección x loopback no se pasa a la capa de enlace de datos para su transmisión. En cambio, "regresan" al dispositivo fuente en el nivel de IP. En esencia, esto representa un "cortocircuito" de la pila de protocolos normal; los datos se envían mediante la implementación de IP de la capa tres de un dispositivo y luego los recibe de inmediato.


Además, Rutgers tiene un curso de Networking que incluye esta ilustración de la comunicación normal entre hosts,

comunicación normal entre hosts

y este del flujo de datos de bucle invertido:

                                                    flujo de datos de bucle invertido

Scott
fuente
4

Para la segunda parte de su pregunta, si coloca el nombre de host de un sitio web en su archivo de hosts con la dirección 127.0.0.1, significa que cuando escribe la dirección en su navegador en lugar de utilizar DNS para encontrar la dirección correcta, la encuentra en su archivo de hosts primero lo resuelve en localhost y, en lugar de ir a la dirección del sitio web, simplemente comienza a hablar con su máquina, lo que hace que el sitio web no se cargue.

Columna
fuente
Hoy en día, muchos sistemas operativos admiten 0.0.0.0, así que utilícelo para bloquear sitios en su lugar. Evita el bucle ...
Tamara Wijsman