O arquivo /etc/hosts
e o DNS não funcionam juntos. Eles fornecem resoluções independentes de nomes (nomes de rede).
A cola que os liga está dentro /etc/nsswitch.conf
dos sistemas Linux . Nos /etc/netsvc.conf
servidores AIX, no sistema para Windows e pode ser listado com lookupd -configuration
(procure LookupOrder, semelhante a:) Cache FF DNS NI DS
nos sistemas MacOS.
A ordem real se torna complexa e geralmente complicada, pois cada serviço de resolução de nomes pode (e muitas vezes o faz) procurar dentro de outros níveis de resolução. Like dnsmasq
(um servidor DNS leve geralmente em 127.0.0.1:53
, ou ::1:53
(ou ambos)) geralmente lê e inclui o /etc/hosts
conteúdo do arquivo. Ou like systemd.resolver
(um resolvedor básico que só deve resolver nomes não pontilhados como mycomputer
) chama diretamente resoluções DNS para nomes pontilhados ( mycomputer.here.dev.
) sob algumas condições.
Em geral, os serviços são chamados em ordem e o primeiro que não falha ganha e é aceito como o endereço correto. A ordem básica geral é: /etc/hosts
(arquivo), mDNS (nomes não pontilhados), DNS, NIS, NIS +, LDAP. Em alguns sistemas Linux, há uma resolução de último recurso para o computador hostname
no serviçomyhostname
Por exemplo, neste sistema (de cat /etc/nsswitch
):
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
Note-se que os muito idosos (glibc 2.4 e anteriores) order
entrada set em/etc/host.conf
como:
order hosts,bind,nis
Aplique apenas ao /etc/hosts
serviço de nomes de arquivos (arquivo ).
Os efeitos neste computador cliente (linux) relacionados ao NIS e LDAP são (geralmente) controlados pelo servidor DNS usado (ligação, não acoplada etc.).
tão:
- Se um nome de host puder ser resolvido em / etc / hosts, o DNS será aplicado após / etc / hosts para resolver o nome do host ou tratar o endereço IP resolvido por / etc / hosts como um "nome de host" para resolver recursivamente?
Nenhum.
Se um nome de host puder ser resolvido /etc/hosts
, DNS
ele não se aplicará (se os arquivos estiverem antes do DNS).
nem o endereço IP resolvido é tratado como um "nome de host".
Simplesmente é: o endereço resolvido.
navegador
Um navegador pode usar qualquer método para resolver um nome (depois de verificar seu cache de nomes resolvidos). Somente se ele usar um método fornecido pelo sistema, a ordem fornecida acima será aplicada. O navegador, como qualquer programa, pode optar por entrar em contato diretamente com qualquer servidor DNS.
Se a ordem do sistema já tiver sido feita /etc/hosts
anteriormente DNS
, isso significa que uma entrada nesse arquivo terá precedência no DNS
serviço de resolução.
Assim:
- ... Isso significa que / etc / hosts substitui o DNS para resolver nomes de host?
Sim (se o navegador usar o sistema fornecido com resolução).
Por que não se /etc/hosts
aplica novamente, para que eu não consiga me conectar ao site?
Somente até o cache interno do navegador ser limpo (ou atingir o tempo limite) para esse nome específico, esse nome será pesquisado fora do navegador novamente.
Se o navegador tiver um nome resolvido em seu cache, ele o utilizará novamente.
Use isso para limpar o cache .
Ou simplesmente feche (espere um pouco) e reinicie o navegador.
/etc/hosts
e os servidores de nomes definidos localmente. É bastante confuso testemunhar a primeira vez. (Olhando para você, navegadores baseados no Chromium!) #