
El archivo hosts es un archivo que se guarda localmente en tu ordenador, ya tengas Windows, Linux o macOS como sistema operativo, y que proporciona una serie de entradas para la búsqueda local de DNS.
Cuando se intenta resolver un nombre de dominio, se consulta a un servidor de DNS configurado en la conexión de red y que nos proporcionará la dirección IP de dicha dirección o dominio. Con el archivo hosts se pueden falsear los datos de DNS y hacer que los dominios deseados se resuelvan a las IPs que nosotros deseemos. Todo ello, claro está, de forma local a nuestro ordenador.
Esto puede ser útil cuando necesitamos que un cierto dominio resuelva a una dirección IP y, tras haber actualizado los servidores DNS, los cambios aún no han sido propagados debido a TTL (Time To Live) grandes de los mismos. De esta forma, podemos simular que dichos cambios han sido efectuados, siempre de forma local, para realizar lo que necesitemos hacer.
El archivo hosts es un archivo plano de texto que, según el sistema operativo que estés usando, se encuentra en ciertas rutas del sistema:
Windows
1 | C:\Windows\System32\drivers\etc\hosts |
Linux
1 | /etc/hosts |
macOS
1 | /private/etc/hosts |
Una vez abierto el archivo, podemos ver que su estructura es parecida a la siguiente:
1 2 3 4 5 6 7 8 9 10 | ## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost |
Donde la primera columna, indica la IP a la que se resuelve, y la segunda columna indica el nombre del dominio a resolver.
Por tanto, si quisiéramos que un dominio resolviera a una IP específica, simplemente añadiríamos una nueva línea a este archivo y guardaríamos los cambios efectuados en el mismo.
1 | 192.168.101.1 mi-dominio.es |
Esto haría que al introducir en cualquier navegador la URL http://mi-dominio.es, ésta resuelva hacia la IP 192.168.101.1, en este caso, la propia de la máquina.
Una vez guardado el archivo, deberemos refrescar la caché de DNS para que se eliminen los datos anteriores y se carguen los nuevos valores. Para ello, dependiendo del sistema operativo, ejecutaremos los siguientes comandos, los cuales necesitarán privilegios de administrador:
Windows
1 | ipconfig / flushdns |
Linux
1 | /etc/rc.d/init.d/nscd restart |
macOS
1 2 3 4 5 | dscacheutil -flushcache (macOS 10.5 - Leopard en adelante) ó lookupd -flushcache (versiones anteriores) |
De esta forma, puedes utilizar el archivo hosts para hacer que tu máquina local u ordenador resuelva el dominio deseado a la IP que prefieras. Tal como te comentamos anteriormente, esto es bastante útil, sobre todo a los desarrolladores web, para poder apuntar a ciertos servidores cuyas IPs aún no han sido actualizadas debido a tiempos de espera grandes en propagación de DNS.
