Estou executando o Ubuntu 10.04.2 LTS Desktop. Sendo um desenvolvedor web, naturalmente criei um "me.com" no meu /etc/hosts
arquivo. Infelizmente, minha resolução de nome está saindo para o DNS antes de verificar primeiro a entrada dos hosts locais e não consigo descobrir o porquê.
O resultado final é que, se o meu /etc/resolv.conf contiver nameserver 127.0.0.1
primeiro, recebo uma resposta no meu navegador da web me.com (local) em menos de um segundo. Mas se eu não tiver essa entrada, minha resposta levará algumas vezes até 5 segundos se meu ISP estiver um pouco lento.
O problema era tão problemático que eu realmente tive que fazer uma pergunta aqui (e alguém a resolveu) sobre como inserir automaticamente essa entrada /etc/resolv.conf
. Mas um dos usuários (@shellholic) aqui altamente recomendado (e comentou comigo sobre isso) que eu deveria registrar esta pergunta.
Você sabe por que a resolução de nomes da minha estação de trabalho precisa atingir o servidor DNS primeiro antes de acessar minha /etc/hosts
entrada de arquivo? Por enquanto, estou usando o truque resolv.conf .
fonte
/etc/nsswitch.conf
. As entradas no meu sistema são um pouco óbvias, mas você pode testar as pesquisas apenasfiles
como uma opção e ver se isso fez alguma diferença.cat /etc/nsswitch.conf
ecat /etc/host.conf
? Além disso: como você está testando isso (através de ping, navegador, farejamento de pacotes etc.)?time getent hosts me.com; hostname --fqdn; grep 'me.com' /etc/hosts; grep hosts /etc/nsswitch.conf; netstat -uln | grep ':53'; cat /etc/host.conf; wc -l /etc/hosts
. Não hesite em ofuscar a racionalidade.Respostas:
O arquivo
/etc/nsswitch.conf
permitirá que você reconfigure a ordem da resolução de nomes. Por padrão, o arquivo host é o primeiro e, em seguida, o DNS configurado. Poderia haver mais opções.O arquivo
/etc/hosts
lista apenas endereços IP e nomes de host (vários nomes para um IP, se você desejar)O arquivo
/etc/resolv.conf
listará os domínios de pesquisa padrão e também listará em seqüência os servidores de nomes a serem usados.fonte
nscd
pode armazenar em cache consultas de resolução de nomes, mas não respeita ttl (e, portanto, o cache de hosts está desativado por padrão).systemd-resolved
também armazenará em cache as entradas. Se nenhum deles estiver configurado, os hosts Linux não armazenarão em cache as respostas DNS . (Navegadores provável fazer na camada de aplicação embora)