Qual é o propósito de / etc / hosts?

17

Pelo que entendi, o arquivo hosts é um dos vários recursos do sistema que auxiliam no endereçamento de nós de rede em uma rede de computadores. Mas o que deveria estar dentro dele? Quando eu instalar o Ubuntu por padrão

127.0.0.1 localhost 

estará lá. Por quê?

  • Como o /etc/hosts funciona no caso de sistemas de JVM como o Cassandra?
  • Quando o DNS é alternativo, acho que não em um único computador?
por MikiBelavista 02.02.2018 / 18:52

3 respostas

42

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

No entanto, como um arquivo único, não dimensiona bem: o tamanho do arquivo se torna grande demais 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 algum outro host de maneira eficiente.

O conceito antigo muito do arquivo /etc/hosts é 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 é contornar a resolução de DNS. Uma correspondência encontrada no arquivo /etc/hosts será usada antes de qualquer entrada de DNS. De fato, se o nome pesquisado (como localhost ) for encontrado no arquivo, nenhuma resolução de DNS será executada.

1 Bem, a ordem da resolução de nomes está realmente definida em /etc/nsswitch.conf , que geralmente tem esta entrada:

hosts:          files dns

que significa "tente arquivos ( /etc/hosts ); e se falhar, tente DNS."

Mas esse pedido pode ser alterado ou expandido.

2 (nos dias atuais) 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 motivos históricos, mas espaços também são usados. Linhas de comentário podem ser incluídas; eles são indicados por um octothorpe (#) na primeira posição de tais linhas. Linhas totalmente em branco no arquivo são ignoradas. Por exemplo, um arquivo de hosts típico 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 tem 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 (localhost e loopback) e que um nome de host pode ser mapeado para os endereços IP IPv4 e IPv6, conforme mostrado nas primeira e 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 para relatar uma lista de endereços para um determinado nome.

    
por 02.02.2018 / 19:16
5

Usar o arquivo / etc / hosts para fornecer um nome legível a um sistema local em um ambiente de área de trabalho é perfeitamente razoável. O arquivo hosts é ótimo para usar em uma rede doméstica ou mesmo em um ambiente de pequena empresa. Isso não pode ser o lado público, como endereçamento de internet - então você precisa de DNS. Se a rede local for grande o suficiente, ou simplesmente cortar diferentes sub-redes, ou qualquer outra razão útil, o DNS é o preferido.

O arquivo de hosts locais & O DNS é gerenciado com prioridade diferente, portanto, nunca há conflitos.

    
por 02.02.2018 / 18:58
3

no linux, ouso dizer que deve sempre haver pelo menos 127.0.0.1 localhost no arquivo /etc/hosts bem como o endereço IPv6 correspondente para localhost .

É simplesmente a resolução do nome do host para um endereço numérico IPv4 ou IPv6. Quando você tenta estabelecer uma rede para (a) unix.stackexchange.com em algum lugar na Terra que provavelmente não está perto de você, ou (b) myotherpc na rede local em seu em casa, é /etc/hosts ou algum servidor de nome de domínio (DNS) que está fazendo a resolução do host, então quando você digita unix.stackexchage.com , como um ser humano é o que você gosta, você não Não é preciso lembrar 185.53.179.7 para isso, que é o que o computador realmente precisa saber.

Como foi apontado, no linux normalmente há /etc/nsswitch que define a ordem de resolução do nome do host, ou seja, verifique DNS primeiro antes de verificar o NIS e verifique o arquivo /etc/hosts caso contrário host não encontrado

Como você gerencia a verificação de pedidos e o que / onde / quem gerencia o serviço DNS ou NIS depende de você, ou pode modificar tudo modificando / etc / nsswitch para fazer check-in /etc/hosts e nunca verifique com DNS ou NIS ou ...

Para uma rede doméstica simples de poucos computadores, digamos de 2 a N, um administrador simplesmente editaria /etc/hosts em cada computador para estar correto, seria mais fácil, mais rápido, mais barato do que configurar um Servidor de Nomes de Domínio ou algum outro serviço ter um local mestre ou autoridade para fazer a resolução do nome do host para o endereço IP.

para o linux web search o histórico & razão por trás de localhost . Muitas coisas no linux dependem do nome localhost resolvendo para 127.0.0.1 e, se isso não acontecer, causarão problemas, e essa definição de localhost deve / deve acontecer em um arquivo de sistema local, como / etc / hosts.

/etc/hosts é, por padrão, geralmente a última palavra e última coisa para o sistema operacional linux retornar para a resolução do nome do host. no Windows XP e 7 o arquivo correspondente é C:\Windows\System32\drivers\etc\lmhosts não sei sobre o windows 8 ou 10.

    
por 02.02.2018 / 19:43

Tags