Alguns serviços são configurados para escutar apenas o endereço IP do host local.
Um exemplo seria um banco de dados MySQL - você quer que seu aplicativo PHP seja executado no mesmo servidor para se conectar a ele, mas não quer que nenhum serviço externo ou até 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 de seu servidor ( 10.x.x.x
, por exemplo), você está reduzindo a chance de ser comprometido.
Então, para responder à sua pergunta - sim, eles são diferentes.
localhost
recebe um endereço IP na rede 127.0.0.0
e é atribuído a um dispositivo de rede de loopback virtual lo
. Este dispositivo está presente em todos os sistemas, independentemente de terem um dispositivo de rede física instalado (WiFi ou Ethernet, por exemplo). Um sistema que não está conectado a nenhuma rede terá esse dispositivo de loopback e, portanto, um endereço 127.0.0.0
. O nome localhost
é simplesmente um nome que resolve esse endereço IP e está configurado em /etc/hosts
.
Seu endereço IP real (10.x.x.x por exemplo) é alocado para um dispositivo de rede. Geralmente, esse é um dispositivo de rede física (WiFi ou Ethernet), embora configurações avançadas que usam dispositivos tun
ou tap
possam usá-las também. Novamente, a resolução de nomes (por exemplo www.example.org
to 10.0.1.1
) pode ser configurada em /etc/hosts
ou pode ser configurada para usar DNS.