Como funciona o localhost 127.0.0.1?

15

Encontrei alguns artigos relacionados a isso, mas eles não foram suficientes para mim. Eu quero saber como o localhost funciona e por que é o mesmo em muitas máquinas diferentes?

Como o localhost bloqueia o acesso ao site quando o usamos no arquivo host para bloquear o site?

    
por avirk 11.08.2011 / 08:52

5 respostas

23

Não vou falar sobre o caso do Windows aqui, porque é um pouco diferente, mas digamos assim: Em todos os sistemas operacionais * Unix-like, você tem dois dispositivos de rede:

  • Um dispositivo de loopback
  • Um dispositivo Ethernet

O primeiro é puramente "virtual". É como um plug Ethernet que você não consegue ver. O segundo tem a ver com o plug Ethernet no seu computador.

Oqueainterfacedeloopbackfaz?Todotráfegoquevocêenviarparaoloopbackretornará.

AssimcomoseudispositivoEthernetobtémumendereçoIP(porexemplo,192.168.1.20),odispositivodeloopbacktambémteráumendereçoIP,ouseja,127.0.0.1.Parafacilitar,vocêpodeacessá-lotambémemlocalhost.

SevocêderumaolhadaemumtípicoarquivoUnix/etc/hosts,veráque127.0.0.1estámapeadopara"localhost". Então, sempre que você digitar "localhost", seu computador saberá chamar 127.0.0.1.

E esta é a razão pela qual você pode "bloquear" os aplicativos. Digamos que você não queira que seu computador envie dados para a Microsoft. Então, você poderia simplesmente redirecionar todas as solicitações para microsoft.com para 127.0.0.1. Toda tentativa de contato com microsoft.com resultaria em uma falha.

* todos os sistemas que possuem uma porta Ethernet de hardware

    
por 11.08.2011 / 10:11
8

Os endereços do Protocolo da Internet (IP) se enquadram em uma das quatro categorias básicas.

  1. Endereços usados para se comunicar com outros computadores em todo o mundo,
  2. Endereços usados para se comunicar com computadores dentro de uma empresa ou rede específica,
  3. Endereços usados para transmitir informações entre computadores em uma rede,
  4. Endereços usados para permitir que um computador fale consigo mesmo.

Por acordo, 127.0.0.1 é um dos endereços que se enquadram na última dessas categorias.

Como seres humanos, não costumamos nos lembrar muito bem dos números IP, mas não temos problemas em lembrar nomes como superuser.com, www.google.com e outros nomes semelhantes. Quando a internet era pequena (muito pequena), os humanos compartilhavam um arquivo "hosts" com outras pessoas na internet, para que não precisassem se lembrar dos números. Esse arquivo hosts contém pares de um endereço IP e um ou mais nomes de host. Quando alguém tentava acessar um host pelo seu nome, o software do computador sabia o suficiente para procurá-lo no arquivo hosts. A Internet cresceu tanto desde então que agora usamos um sistema de nomes de domínio (DNS) para resolver nomes para números IP, além de usar o arquivo hosts de estilo antigo. A maioria dos computadores é configurada para procurar nomes primeiro no arquivo de hosts e, em seguida, no DNS, se isso falhar.

Agora que você tem o plano de fundo, veja como isso funciona (geralmente):

Quando você adiciona essa entrada ao seu arquivo de hosts, sempre que seu computador tentar procurar por www.foo.com, ele tentará acessar o site no endereço IP 127.0.0.1 porque você disse que é o endereço da Internet. para www.foo.com. Lembre-se que 127.0.0.1 permitirá que um computador fale consigo mesmo, então tentar ir para 127.0.0.1 em seu navegador tentará contatar um servidor web em seu computador. Se você tivesse colocado o 2.3.4.5 em vez de 127.0.0.1, ele teria tentado entrar em contato com o computador no endereço 2.3.4.5 ao abrir o site www.foo.com.

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

A coisa ruim sobre o uso do arquivo hosts para coisas como esta é uma vez que você adiciona uma entrada ao arquivo hosts, você está assumindo a responsabilidade de manter essas informações atualizadas. Se você não colocar a entrada em seu arquivo de hosts, o seu computador tentará usar o DNS para procurar o endereço IP e, em seguida, usar esse endereço IP para entrar em contato com o servidor.

A coisa boa é que se você nunca quiser permitir que alguém fale com o nome do host em www.foo.com apenas no seu computador, adicionar a entrada ao seu arquivo hosts pode (palavra-chave - maio) impedir que isso aconteça . Se o objetivo é evitar atingir um determinado site por qualquer meio (não apenas pelo nome do host), há outras maneiras melhores e mais confiáveis de evitar que isso aconteça, como o uso correto de um firewall.

    
por 11.08.2011 / 20:55
7

Localhost ou 127.0.0.1 é simplesmente um 'nome' para o seu computador local.

Ou seja, 127.0.0.1 é chamado de "loopback", porque é apenas um ponteiro que aponta de volta para sua máquina. É um endereço IP reservado que também pode ser gravado como localhost por definição.

O propósito disso é permitir que alguém fale com o computador enviando um sinal para fora e, em seguida, fazendo o loop de volta para que o sinal seja lido pelo mesmo computador.

Digamos que você esteja executando um servidor em sua máquina - para acessá-lo, é necessário enviar uma solicitação ao servidor (enviar um pacote para 127.0.0.1) e seu servidor deve lê-lo (o sistema faz um loop de volta o pacote para o seu sistema local em 127.0.0.1 que é então lido pelo seu software de servidor).

    
por 11.08.2011 / 09:03
5

Eu descobri uma apresentação no Guia TCP / IP que me pareceu muito esclarecedor:

Normally, when a TCP/IP application wants to send information, that information travels down the protocol layers to IP where it is encapsulated in an IP datagram.  That datagram then passes down to the data link layer of the device’s physical network for transmission to the next hop, on the way to the IP destination.

However, one special range of addresses is set aside for loopback functionality.  This is the range 127.0.0.0 to 127.255.255.255.  IP datagrams sent by a host to a 127.x.x.x loopback address are not passed down to the data link layer for transmission.  Instead, they “loop back” to the source device at the IP level.  In essence, this represents a “short-circuiting” of the normal protocol stack; data is sent by a device’s layer three IP implementation and then immediately received by it.

Além disso, a Rutgers tem um curso de Networking que inclui esta ilustração da comunicação normal entre hosts,

e este do fluxo de dados de loopback:

    
por 18.05.2013 / 01:35
4

Para a segunda parte da sua pergunta, se você colocar o nome de host de um site no arquivo hosts com o endereço 127.0.0.1, isso significa que, quando você digita o endereço no navegador, em vez de usar o DNS para encontrar o endereço correto ele encontra em seu arquivo hosts primeiro resolve-lo para localhost e em vez de ir para o endereço do site só começa a falar com sua máquina que faz com que o site não carregue.

    
por 11.08.2011 / 10:11