En OS X, ¿es posible anular los servidores DNS asignados por DHCP pero mantenerlos para la reserva?

9

De forma predeterminada, me gustaría usar los servidores DNS públicos de Google y recurrir a los servidores de intranet cuando estos fallan.

¿Es esto posible? ... Estoy buscando una configuración que no se rompa cuando muevo mi computadora portátil a ninguna otra red.

Sería aceptable si encontrara una solución específica para esta conexión de red wifi (para hacer el truco solo en este caso, y para usar los valores predeterminados para otros).

    
pregunta sorin 07.11.2013 - 13:32

4 respuestas

3

Puede usar ipconfig getpacket para encontrar el servidor DNS que DHCP recomienda:

$ ipconfig getpacket en0 
...
domain_name_server (ip_mult): {192.168.3.2, 192.168.42.1}
...

Entonces, suponiendo que está utilizando el adaptador Wi-Fi y su dispositivo es en0 , puede:

#!/bin/bash

default_servers=$( ipconfig getpacket en0 | \
   perl -ne'/domain_name_server.*: \{(.*)}/ && print join " ", split /,\s*/, $1' )
networksetup -setdnsservers Wi-Fi 127.0.0.1 $default_servers
    
respondido por el Mark Grimes 20.06.2017 - 16:03
2

Sí, puede agregar los servidores DNS de Google en la parte superior de la lista y seguirlos con los suyos (servidores de intranet).

  • Vaya a Preferencias del sistema > Red
  • Seleccione su interfaz de red de la lista a la izquierda
  • Haz clic en el botón Avanzado a la derecha
  • En la pestaña DNS del cuadro de diálogo, haga clic en "+" para agregar o "-" para eliminar las entradas (también puede editar las entradas haciendo doble clic o seleccionando y haciendo clic en la dirección)
  • Agregue las direcciones DNS de Google como las dos primeras entradas
  • Agregue sus servidores DNS de intranet debajo de esos
  • Haz clic en Aceptar
  • Haz clic en Aplicar
  • Cerrar Preferencias del sistema
respondido por el M K 07.11.2013 - 13:55
1

También hay una forma de hacerlo desde la línea de comandos si eres un administrador de red que busca una forma de hacerlo en un lote:

networksetup listallnetworkservices
# look for the correct network device here, probably "Wi-Fi"
sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4

Reemplace "Wi-Fi" con el dispositivo de red correcto. En su lugar, puede utilizar:

device='networksetup listallnetworkservices | grep Wi-Fi'
sudo networksetup -setdnsservers "$device" 8.8.8.8 8.8.4.4
    
respondido por el Cory 15.12.2014 - 21:48
1

Estoy tratando de hacer lo mismo. Voy a ejecutar manualmente un cachear el servidor dns localmente y haré que aprenda intranets cuando me una.

Estoy emocionado de que el servidor dns pueda incluso diferencia entre la intranet y los nombres de Internet antes de hacer la llamada recursiva.

Me preocupa que necesite un TTL corto o que tenga que escribir ganchos para que cada vez que cambie una interfaz considero vaciar el caché de dns, o similar.

Informaré si tengo éxito ...

El primer 50%

Después de ver la Comparación de los servidores DNS de Wikipedia , Dnsmasq está en la parte superior de mi lista.

Resulta que brew tiene un forumla para dnsmasq , e incluso tiene alguna sub-interfaz services escrita para brew ... genial, menos que pensar, solo hay que trabajar la configuración.

$ brew install dnsmasq  # [libidn] internation domain names
$ cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf
# To have launchd start dnsmasq now and restart at startup:
$ sudo brew services start dnsmasq 

( brew también tiene bind , pero el estado mínimo también es atractivo, no tengo que borrarlo al hacer la configuración de red).

Todo

  • Descubra la configuración de Red Preferencias para usar mis nuevos DNS, y
  • Configure dnsmasq para asegurarse de que puede usar la configuración de intranet. (el verdadero desafío)
respondido por el mcint 14.02.2017 - 13:19

Lea otras preguntas en las etiquetas