Les modifications apportées au /etc/hosts
fichier semblent prendre effet immédiatement. Je suis curieux de la mise en œuvre. Quelle magie est utilisée pour réaliser cette fonctionnalité?
networking
hosts
Rudwna
la source
la source
Réponses:
La magie ouvre le
/etc/hosts
fichier et le lit:La
getaddrinfo(3)
fonction, qui est la seule interface de résolution de nom standard, s'ouvrira et lira/etc/hosts
chaque fois qu'elle sera appelée pour résoudre un nom d'hôte.Des applications plus sophistiquées qui n'utilisent pas la norme
getaddrinfo(3)
, mais qui continuent à s'ajouter/etc/hosts
au mélange (par exemple, lednsmasq
serveur DNS) peuvent être utiliséesinotify(7)
pour surveiller les modifications apportées au/etc/hosts
fichiers et les relire uniquement si nécessaire.Les navigateurs et autres applications de ce type ne le feront pas. Ils s'ouvriront et liront
/etc/hosts
chaque fois qu'ils auront besoin de résoudre un nom d'hôte, même s'ils n'utilisent pas directement le résolveur de libc, mais répliquent son fonctionnement par d'autres moyens.la source
La résolution de noms, entre autres, est gérée par
/etc/nsswitch.conf
. En voici un extrait:Noter la
hosts
ligne. Il dit: "Lors de la résolution d'un nom d'hôte, lisez d'abord/etc/hosts
fichier pour rechercher le nom d'hôte, s'il n'est pas trouvé, exécutez une requête DNS, s'il n'est pas trouvé, essayez le nom d'hôte du système configuré localement".Voici donc pourquoi c'est si rapide. Notez qu'il ne dépend pas des services réseau sur la machine, il n'y a donc pas de service pour redémarrer ou recharger.
la source
/etc/hosts
. Pourquoi n'utilise-t-il pas une version mise en cache?