Si je cat mon resolv.conf, je vois ce message:
#
# Mac OS X Notice
#
# This file is not used by the Host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#
J'essaie d'ajouter une entrée DNS. J'ai modifié mon fichier d'hôtes et vidé le cache DNS, mais le nom ne se résout pas si j'utilise Host servername
. J'ai pensé que Host
n'était peut-être pas configuré pour regarder le fichier hosts
. Comment puis-je obtenir la résolution de ma nouvelle entrée, et qu'est-ce qu'OSX utilise sinon resolv.conf
?
L'outil Host ne fait pas simplement résoudre les noms (comme dans, en utilisant le résolveur de noms système) mais en fait interroge les serveurs DNS (comme dans, envoyer des paquets à udp/53 et éventuellement tcp/53): il ne connaît pas et n'utilise pas le fichier local hosts
.
Si vous souhaitez tester le résolveur du système d'exploitation (comme dans gethostbyname () et des fonctions libc similaires), vous pouvez essayer d'envoyer une requête ping au nom que vous avez ajouté à /etc/hosts
et il honorera ce que vous avez mis dans ce fichier.
De plus, comme vous l'avez déjà découvert, la recherche DNS sur Mac OSX n'utilise pas /etc/resolv.conf
, et la manière correcte de configurer les serveurs DNS interrogés se trouve dans l'interface utilisateur de configuration réseau et/ou networksetup
. Honnêtement, je ne sais pas si vous pouvez configurer l'ordre dans lequel les sources sont essayées, mais le comportement standard est d'essayer /etc/hosts
premiers serveurs DNS et après cela.
Les résolveurs DNS peuvent être ajoutés dans OS X via la commande networksetup
:
Sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4
Insérez le nom de la connexion réseau comme il convient. Ces résolveurs apparaîtront dans resolv.conf car ils sont générés automatiquement, mais les modifications directes apportées à resolv.conf n'entraîneront pas leur utilisation. Je suppose que les résolveurs sont stockés dans une liste quelque part; Je vais chercher et faire rapport.
Modifié pour ajouter: il semble que le fichier XML plist stockant les serveurs DNS soit /Library/Preferences/SystemConfiguration/preferences.plist
.
Le fichier Host dans/private/etc/hosts devrait fonctionner pour forcer la résolution de noms particuliers (/ etc est un lien symbolique vers/private/etc). Pouvez-vous vérifier votre syntaxe et que vous éditez le bon fichier?