J'utilise Ubuntu 10.04.2 LTS Desktop. En tant que développeur web, j'ai naturellement créé un "me.com" dans mon /etc/hosts
fichier. Malheureusement, ma résolution de nom va au DNS avant de vérifier d'abord mon entrée d'hôtes locaux et je ne peux pas comprendre pourquoi.
Le résultat final est que si mon /etc/resolv.conf en contient nameserver 127.0.0.1
d'abord, alors je reçois une réponse dans mon navigateur Web de me.com (local) en moins d'une seconde. Mais si je n'ai pas cette entrée, ma réponse prend parfois jusqu'à 5 secondes si mon FAI est un peu lent.
Le problème était tellement gênant que j'ai dû déposer une question ici (et quelqu'un l'a résolue) pour savoir comment insérer automatiquement cette entrée dans /etc/resolv.conf
. Mais l'un des utilisateurs (@shellholic) ici a fortement recommandé (et m'a fait des commentaires à ce sujet) de déposer cette question.
Savez-vous pourquoi la résolution de nom de mon poste de travail doit frapper le serveur DNS avant de frapper mon /etc/hosts
entrée de fichier? Pour l'instant, j'utilise l' astuce resolv.conf .
la source
/etc/nsswitch.conf
. Les entrées sur mon système ne sont pas évidentes, mais vous pouvez tester les recherches uniquementfiles
en option et voir si cela fait une différence.cat /etc/nsswitch.conf
etcat /etc/host.conf
? Aussi: comment testez-vous cela (par ping, navigateur, reniflage de paquets, 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'hésitez pas à masquer la rationalité.Réponses:
Le fichier
/etc/nsswitch.conf
vous permettra de reconfigurer l'ordre de résolution des noms. Par défaut, le fichier hôte est le premier, puis le DNS configuré. Il pourrait y avoir plus d'options.Le fichier
/etc/hosts
répertorie uniquement les adresses IP et les noms d'hôte (plusieurs noms pour une IP si vous le souhaitez)Le fichier
/etc/resolv.conf
répertorie les domaines de recherche par défaut et répertorie également dans l'ordre les serveurs de noms à utiliser.la source
nscd
peut mettre en cache les requêtes de résolution de noms, mais ne respecte pas ttl (et est donc la mise en cache des hôtes est désactivée par défaut).systemd-resolved
mettra également en cache les entrées. Si aucun d'entre eux n'est configuré, les hôtes Linux ne mettent pas en cache les réponses DNS . (Les navigateurs le font probablement au niveau de la couche application)