Tout d'abord, si networksetup -getdnsservers <service name>
ne montre rien, vous n'avez rien répertorié dans Préférences Système> Netowrk sous "Serveurs DNS:".
Deuxièmement, il est important de noter que OS X ne gère pas le DNS comme la plupart des systèmes. Par https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/resolver.5.html Cela signifie essentiellement que OS X a plusieurs clients DNS en fonction de votre configuration. Le résultat de ces multiples services signifie qu'il existe des situations où l'utilisation de Safari pour accéder à un site Web ( http://www.example.com ) vous amènera à une adresse IP qu'OS X a récupérée du DNS (disons 1.2.3.4) tout en en même temps, effectuer une fouille
$ dig www.example.com
renverra des résultats différents. (peut-être 2.3.4.5)
La raison en est la façon dont OS X gère le DNS.
Si vous exécutez, $ man dig
vous obtenez entre autres les éléments suivants:
AVIS Mac OS X La commande dig n'utilise pas la résolution du nom d'hôte et de l'adresse ou les mécanismes de routage des requêtes DNS utilisés par d'autres processus exécutés sur Mac OS X. Les résultats des requêtes de nom ou d'adresse imprimées par dig peuvent différer de ceux trouvés par d'autres processus qui utilisent les mécanismes de résolution des noms et adresses natifs de Mac OS X. Les résultats des requêtes DNS peuvent également différer des requêtes qui utilisent la bibliothèque de routage DNS Mac OS X.
Aussi $man nslookup
retournera quelque chose de similaire
AVIS Mac OS X La commande nslookup n'utilise pas la résolution du nom d'hôte et de l'adresse ou les mécanismes de routage des requêtes DNS utilisés par d'autres processus exécutés sur Mac OS X. Les résultats des requêtes de nom ou d'adresse imprimées par nslookup peuvent différer de ceux trouvés par d'autres processus qui utilisent les mécanismes de résolution des noms et adresses natifs de Mac OS X. Les résultats des requêtes DNS peuvent également différer des requêtes qui utilisent la bibliothèque de routage DNS Mac OS X.
Tout cela est vraiment une façon assez longue de dire, la meilleure façon de voir quels serveurs DNS sont utilisés est de regarder les Préférences Système> Réseau
Les entrées "Serveur DNS:" sont généralement là, et "Domaines de recherche:" vous permettra de rechercher des adresses incomplètes.
Si "Serveur DNS:" n'est pas présent, OS X essaiera d'utiliser l'adresse dans "Routeur:" pour DNS.
ET, en plus de tout ce plaisir, il existe des utilitaires et d'autres processus qui n'utilisent peut- être pas la bibliothèque de routage DNS OS X, et ils toucheront directement le contenu de /etc/resolv.conf.
La réponse courte et courte est la suivante:
- Si vous vous fiez au contenu des Préférences Système> Réseau, vous regardez la même chose que la plupart des processus utilisent.
- Le contenu des Préférences Système> Réseau doit remplir /etc/resolv.conf, mais pas toujours.
- Certains autres processus (comme dig et nslookup) accèdent directement à /etc/resolv.conf.
Et, en plus de tout cela - Si vous n'utilisez pas les clients VPN intégrés à OS X, il est possible que des routes et des serveurs DNS supplémentaires soient utilisés qui networksetup -getdnsservers <service name>
ne s'afficheront pas. Votre client VPN peut avoir la possibilité de vous montrer les routes et les serveurs DNS, je sais que le mien le fait.
Je sais que cela ne répond pas précisément à votre question, mais j'espère que cela vous aidera à réaliser qu'il n'est pas toujours facile de découvrir quelle est la «vérité» concernant DNS sur un Mac. En règle générale, vous êtes sûr de supposer que le contenu de Préférences Système> Réseau, ou le contenu de, networksetup -getdnsservers <service name>
est l'endroit d'où vous obtenez votre DNS. Cependant, si les choses semblent étranges, gardez à l'esprit qu'il existe également d'autres possibilités. Utilisez creuser pour déterminer s'il y a des différences.
Enfin, pour les lecteurs qui se demandent comment obtenir le <service name>
dans networksetup -getdnsservers <service name>
, essayez d' utilisernetworksetup -listallnetworkservices
Facture