Ping Terminal

¡Ayuda! Necesito actualizar los DNS en MacOS. ¿Cómo actualizar los DNS en MacOS?

Pre-requisitos

  • Equipo Mac con OSX 10.11 en adelante, OSX 10.9 y MacOS
  • Permisos de Administrador en el equipo

Si sueles trabajar en entornos corporativos en donde se definen DNS’s internos o externos (O ambos), y al igual que yo, migraste desde Windows a MacOS, es posible que cada vez que abras la consola y desees actualizar los DNS’s coloques el famoso comando:

c:\> ipconfig /flushdns

A diferencia de Windows, MacOS viene de un entorno UNIX y durante el paso de los años, los programas utilizados de manera común han cambiado según las versiones del Sistema Operativo.

Si deseas actualizar los DNS’s puedes utilizar el siguiente comando a través de la terminal de tu equipo:

user@localhost# sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder; say flushed

Si tienes curiosidad de entender que es la línea mágica que acabas de pegar en la terminal, aprovecho para explicarte:

  • Realmente no ejecutaste un solo comando, en esta línea ejecutaste tres comandos que combinados permiten completar el proceso de limpieza del cache del DNS. Puedes identificar cada comando si segmentas cada sentencia separada por punto y coma (;). Si los separas, verás que se definen las siguientes líneas:
    1. sudo dscacheutil -flushcache
    2. sudo killall -HUP mDNSResponder
    3. say flushed

El primer comando ejecutado sudo dscacheutil -flushcache se encarga de ejecutar el programa dscacheutil[1]. El flag “-flushcache” ordena al programa dscacheutil “limpiar” todo el caché del Directorio de Servicios (Service Directory).

La segunda línea ejecutada sudo killall -HUP mDNSResponder ejecuta el programa killall (Fácil de entender, ¿no?). Tal como el nombre indica es para “¡MATAR!” todos los procesos según el nombre definido, en este caso el proceso a eliminar es mDNSResponder. El flag -HUP, a diferencia de los comandos anteriores, no equivale a 3 flags independientes, sino a la señal que desea enviarse para identificar de qué forma se debe informar al kernel que elimine el/los procesos.

La tercera y última línea say flushed realmente no es necesaria (Pero si divertida). La misma ejecuta el programa say. MacOS incorpora este programa el cual permite que el equipo "HABLE" cualquier cosa que escribas después de ejecutarlo. En este caso el comando dirá la frase “flushed” (“Limpiado”, en buen español, “Limpieza completada”).

A continuación, dejo algunos comandos para ejecutar la misma acción en otras versiones de MacOS. Espero que sea de ayuda.

sudo discoveryutil udnsflushcaches (MacOS 10.10)
sudo killall -HUP mDNSResponder (OSX 10.7 & 10.8)
sudo dscacheutil – flushcache (OSX 10.5 & 10.6)

[1] dscacheutil es un programa que permite obtener información, estadísticas y consultas o llamadas al caché del Directorio de Servicios (Directory Service).

Artículos Relacionados

Artículos Relacionados - Externos