En primer lugar, si networksetup -getdnsservers <service name>
no muestra nada, no tiene nada listado en Preferencias del Sistema > Red en "Servidores DNS:".
En segundo lugar, es importante tener en cuenta que OS X no maneja el DNS como la mayoría de los sistemas. Según https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/resolver.5.html Esencialmente esto significa que OS X tiene múltiples clientes DNS dependiendo de su configuración. El resultado de estos múltiples servicios significa que hay situaciones en las que el uso de Safari para acceder a un sitio web ( http://www.example.com ) le llevará a una dirección IP que OS X ha recuperado del DNS (digamos 1.2.3.4) mientras que al mismo tiempo, realiza una excavación
$ dig www.example.com
devolverá resultados diferentes. (quizás 2.3.4.5)
La razón de esto radica en la forma en que OS X maneja el DNS.
Si se ejecuta $ man dig
se obtiene, entre otras cosas, lo siguiente:
AVISO sobre Mac OS X El comando dig no utiliza la resolución de nombres y direcciones de host o los mecanismos de enrutamiento de consultas DNS utilizados por otros procesos que se ejecutan en Mac OS X. Los resultados de las consultas de nombres o direcciones impresas por dig pueden diferir de los encontrados por otros procesos que utilizan los mecanismos nativos de resolución de nombres y direcciones de Mac OS X. nativos de Mac OS X. Los resultados de las consultas DNS también pueden diferir de las consultas que utilizan la biblioteca de enrutamiento DNS de Mac OS X.
También $man nslookup
devolverá algo similar
AVISO sobre Mac OS X El comando nslookup no utiliza la resolución de nombres y direcciones de host ni los mecanismos de enrutamiento de consultas DNS utilizados por otros procesos que se ejecutan en Mac OS X. Los resultados de las consultas de nombres o de nombres o direcciones impresos por nslookup pueden diferir de los encontrados por otros procesos que utilizan los mecanismos nativos de resolución de nombres y direcciones de Mac OS X. Los resultados de las consultas DNS también pueden diferir de las consultas que utilizan la biblioteca de enrutamiento DNS de Mac OS X.
Todo esto es una forma bastante larga de decir que la mejor manera de ver qué servidores DNS se están utilizando es mirar en Preferencias del Sistema > Red
Los datos "Servidor DNS:" suelen estar ahí, y "Buscar dominios:" le permitirá buscar direcciones incompletas.
Si "Servidor DNS:" no está presente, entonces OS X intentará usar la dirección en "Router:" para DNS.
Y, además de toda esta diversión, hay utilidades y otros procesos que no puede estarán usando la biblioteca de enrutamiento DNS de OS X, y estarán golpeando el contenido de /etc/resolv.conf directamente.
La respuesta corta es ésta:
- Si te guías por el contenido de Preferencias del Sistema > Red, estás viendo lo mismo que más procesos están utilizando.
- El contenido de Preferencias del Sistema > Red, debe rellenar /etc/resolv.conf, pero no siempre.
- Algunos otros procesos (como dig y nslookup) acceden directamente a /etc/resolv.conf.
Y, además de todo esto - Si no está utilizando los clientes VPN incorporados en OS X, es posible que se estén utilizando rutas y servidores DNS adicionales que networksetup -getdnsservers <service name>
no se mostrará. Tu cliente VPN puede tener la capacidad de mostrarte las rutas y los servidores DNS, sé que el mío lo hace.
Sé que esto no responde con precisión a tu pregunta, pero espero que te ayude a darte cuenta de que no siempre es fácil averiguar cuál es la "verdad" respecto a los DNS en un Mac. Por lo general, es seguro asumir que el contenido de Preferencias del Sistema > Red, o el contenido de networksetup -getdnsservers <service name>
es de donde obtienes tu DNS. Sin embargo, si las cosas parecen raras, ten en cuenta que también hay otras posibilidades. Usa dig para ayudar a determinar si hay diferencias en marcha.
Por último, para los lectores que se preguntan cómo conseguir el <service name>
en networksetup -getdnsservers <service name>
Intenta usar networksetup -listallnetworkservices
Bill