Alguns serviços estão configurados para escutar apenas no endereço IP do host local.
Um exemplo seria um banco de dados MySQL - você deseja que seu aplicativo PHP em execução no mesmo servidor se conecte a ele, mas não deseja que serviços externos ou mesmo hackers externos se conectem. Ao configurar o MySQL para aceitar apenas endereços de host local ( 127.0.0.1
por exemplo) e não o endereço IP real do seu servidor ( 10.x.x.x
por exemplo), você reduz a chance de ser comprometido.
Então, para responder sua pergunta - sim, eles são diferentes.
localhost
recebe um endereço IP na 127.0.0.0
rede e um dispositivo de rede de loopback virtual lo
. Este dispositivo está presente em todos os sistemas, independentemente de terem um dispositivo de rede físico instalado (WiFi ou Ethernet, por exemplo). Um sistema que não está conectado a nenhuma rede terá esse dispositivo de loopback e, portanto, um 127.0.0.0
endereço. O nome localhost
é simplesmente um nome que resolve para esse endereço IP e é configurado em /etc/hosts
.
Seu endereço IP real (10.xxx, por exemplo) é alocado para um dispositivo de rede. Geralmente, é um dispositivo de rede físico (WiFi ou Ethernet), embora configurações avançadas usando tun
ou tap
dispositivos também possam usá-los. Mais uma vez, a resolução de nomes (por exemplo, www.example.org
para 10.0.1.1
) pode ser configurada /etc/hosts
ou configurada para usar o DNS.
network is unreachable
algo semelhante. O truque é que (pelo menos com dhcp) é o roteador que fornece um IP da LAN em primeiro lugar. É possível que isso varie em alguns casos, se a rota persistir, mas, essencialmente, para LAN ip, você precisa de LAN e para ip externo, você precisa de uma conexão com o ISP.Quando você acessa
localhost
, o/etc/hosts
arquivo informa ao computador para não procurar mais e o redireciona para o seu próprio computador. Quando você acessa o endereço IP local, seu computador solicita que o roteador busque os dados e o roteador aponte para o computador.fonte