O arquivo /etc/hosts
começou nos velhos tempos da DARPA como o arquivo de resolução para todos os hosts conectados à Internet (antes da existência do DNS). Ele tem a prioridade máxima, o que significa que esse arquivo é preferido antes de qualquer outro sistema de nomes. 1 1
No entanto, como um único arquivo, ele não é dimensionado bem: o tamanho do arquivo se torna muito grande muito em breve. É por isso que o sistema DNS foi desenvolvido, um sistema hierárquico de nomes distribuídos. Ele permite que qualquer host encontre o endereço numérico de outro host com eficiência.
O conceito muito antigo do /etc/hosts
arquivo é muito simples, apenas um endereço e um nome de host:
127.0.0.1 localhost
para cada linha. Essa é uma lista simples de pares de endereço-host. 2
Seu principal uso atual é ignorar a resolução do DNS. Uma correspondência encontrada no /etc/hosts
arquivo será usada antes de qualquer entrada DNS. De fato, se o nome pesquisado (como localhost
) for encontrado no arquivo, nenhuma resolução DNS será executada.
1 Bem, a ordem da resolução de nomes é realmente definida em /etc/nsswitch.conf
, que geralmente possui esta entrada:
hosts: files dns
o que significa "tente arquivos ( /etc/hosts
); e se falhar, tente o DNS".
Mas essa ordem pode ser alterada ou expandida.
2 (atualmente) O arquivo hosts contém linhas de texto que consistem em um endereço IP no primeiro campo de texto seguido por um ou mais nomes de host. Cada campo é separado por espaços em branco - as guias geralmente são preferidas por razões históricas, mas também são usados espaços. Linhas de comentário podem ser incluídas; eles são indicados por um octóforo (#) na primeira posição dessas linhas. Linhas totalmente em branco no arquivo são ignoradas. Por exemplo, um arquivo típico de hosts pode conter o seguinte:
127.0.0.1 localhost loopback
::1 localhost localhost6 ipv6-localhost ipv6-loopback mycomputer.local
192.168.0.8 mycomputer.lan
10.0.0.27 mycomputer.lan
Este exemplo contém entradas para os endereços de loopback do sistema e seus nomes de host; a primeira linha é um conteúdo padrão típico do arquivo de hosts. A segunda linha possui vários nomes adicionais (provavelmente válidos apenas em sistemas locais). O exemplo ilustra que um endereço IP pode ter vários nomes de host (host local e loopback) e que um nome de host pode ser mapeado para os endereços IP IPv4 e IPv6, conforme mostrado na primeira e na segunda linhas, respectivamente. Um nome ( mycomputer.lan
) pode resolver para vários endereços ( 192.168.0.8 10.0.0.27
). No entanto, nesse caso, qual deles é usado depende das rotas (e suas prioridades) definidas para o computador.
Alguns sistemas operacionais mais antigos não tinham como relatar uma lista de endereços para um determinado nome.