Le fichier /etc/hosts
et le DNS ne fonctionnent pas ensemble. Ils fournissent des résolutions de noms indépendantes (noms de réseau).
La colle qui les relie est à l' intérieur /etc/nsswitch.conf
pour les systèmes Linux . Dans les /etc/netsvc.conf
serveurs AIX, dans le système pour Windows et peut être répertorié avec lookupd -configuration
(recherchez LookupOrder, similaire à:) Cache FF DNS NI DS
dans les systèmes MacOS.
L'ordre réel devient complexe et généralement alambiqué car chaque service de résolution de noms peut (et souvent le fait) regarder à l'intérieur d'autres niveaux de résolution. Comme dnsmasq
(un serveur DNS léger généralement à 127.0.0.1:53
, ou ::1:53
(ou les deux)) lit et inclut généralement le /etc/hosts
contenu du fichier. Ou comme systemd.resolver
(un résolveur de base qui ne devrait résoudre que les noms non pointés comme mycomputer
) appelle directement les résolutions DNS pour les noms pointés ( mycomputer.here.dev.
) sous certaines conditions.
En général, les services sont appelés dans l'ordre et le premier qui n'échoue pas gagne et est accepté comme la bonne adresse. L'ordre de base général est le suivant: /etc/hosts
(fichier), mDNS (noms sans point), DNS, NIS, NIS +, LDAP. Dans certains systèmes Linux, il existe une résolution de dernier recours pour l'ordinateur hostname
du servicemyhostname
Par exemple, dans ce système (à partir de cat /etc/nsswitch
):
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
Notez que l' order
entrée très ancienne (glibc 2.4 et versions antérieures) est définie/etc/host.conf
comme:
order hosts,bind,nis
Appliquer uniquement au /etc/hosts
service de noms de fichiers (fichier ).
Les effets sur cet ordinateur client (Linux) liés à NIS et LDAP sont (généralement) contrôlés par le serveur DNS utilisé (bind, unbound, etc.).
donc:
- Si un nom d'hôte peut être résolu dans / etc / hosts, le DNS s'applique-t-il après / etc / hosts pour résoudre le nom d'hôte ou traite-t-il l'adresse IP résolue par / etc / hosts comme un "nom d'hôte" à résoudre récursivement?
Aucun.
Si un nom d'hôte peut être résolu dans /etc/hosts
, le DNS
ne s'applique pas (si les fichiers se trouvent avant DNS).
l'adresse IP résolue n'est pas non plus traitée comme un "nom d'hôte".
C'est simplement: l'adresse résolue.
navigateur
Un navigateur peut utiliser n'importe quelle méthode pour résoudre un nom (après avoir vérifié son cache de noms résolus). Ce n'est que s'il utilise une méthode fournie par le système que l'ordre donné ci-dessus s'applique. Le navigateur, comme tout programme, peut choisir de contacter directement n'importe quel serveur DNS.
Si l'ordre du système est /etc/hosts
antérieur DNS
, cela signifie qu'une entrée dans ce fichier aura priorité sur le DNS
service de résolution.
Donc:
- ... Cela signifie-t-il que / etc / hosts remplace DNS pour résoudre les noms d'hôtes?
Oui (si le navigateur utilise la résolution fournie par le système).
Pourquoi ne postule-t-il pas de /etc/hosts
nouveau, pour que je ne puisse pas me connecter au site Web?
Ce n'est que jusqu'à ce que le cache interne du navigateur soit effacé (ou qu'il expire) pour ce nom spécifique que ce nom soit à nouveau recherché en dehors du navigateur.
Si le navigateur a un nom résolu dans son cache, le navigateur l'utilise à nouveau.
Utilisez ceci pour vider le cache .
Ou fermez simplement (attendez un moment) et redémarrez le navigateur.
/etc/hosts
les serveurs de noms définis localement. C'est assez déroutant d'être témoin la première fois. (En vous regardant, navigateurs à base de chrome!)