Cómo Simular Dominios Locales

En este corto tutorial te explico paso a paso cómo simular dominios locales para poder trabajar con tu servidor u otra máquina de tu red local usando nomenclatura de dominios y subdominios sin necesidad de tener un servidor DNS… ¡ni de haber comprado siquiera esos dominios!

Por qué simular dominios locales

El objetivo es poder utilizar dominios y subdominios para referirnos a nuestra máquina local o a otra máquina de nuestra red local, para no tener que memorizar direcciones IP, para probar servidores virtuales en prácticas, etc.

Si estamos probando un servidor en nuestra máquina local Windows, ya sabemos que podemos referirnos a la máquina como localhost o a través de la dirección IPv4 127.0.0.1 del adaptador loopback. Incluso si la máquina cuenta con adaptadores de red ethernet o wifi conectados a un router, podríamos usar la dirección IP local asignada (direcciones del tipo 192.168.0.x, 192.168.1.x, etc. dependiendo de la configuración del servidor DHCP del router).

Por ejemplo, si estuviésemos hablando de un servidor web local, usaríamos URLs como http://localhost, http://127.0.0.1, http://192.168.1.x, etc. Pero si quisiéramos trabajar con servidores virtuales, entonces necesitaríamos algo más.

Para conectar con otras máquinas de la red local sólo podríamos utilizar sus direcciones IP.

Aquí es donde entra en juego esta técnica que, mediante la modificación del archivo hosts, nos permitirá «bautizar» a todas las máquinas de nuestra red con nombres de dominio y subdominio para poder referirnos a ellas más fácilmente.

Cómo simular dominios locales en Windows

Abriremos el bloc de notas (o cualquier otro editor de texto que prefiramos) en modo administrador. Para ello localizaremos el icono en el menú de inicio y haciendo clic con el botón secundario del ratón, se nos desplegará una lista de opciones de la que elegiremos «Ejecutar como administrador».

El Control de cuentas de usuario nos pedirá confirmación para poder continuar.

A continuación, iremos a «Archivo», «Abrir» y navegaremos entre carpetas localizando la unidad de disco en la que se encuentra la instalación de Windows, entrando secuencialmente en las carpetas Windows, System32, drivers, y etc (la ruta en la mayoría de los casos será C:\Windows\System32\drivers\etc)

como simular dominios locales
Ubicación del archivo hosts… ¿pero dónde está?

El desplegable de tipos de archivo de este diálogo muestra por defecto «Documentos de texto (*.txt)». Como el archivo hosts no tiene extensión no aparece en pantalla, así que cambiaremos los tipos de archivo a «Todos los archivos (*.*)».

como simular dominio local
Ahora sí podemos abrir el archivo hosts

Aparecerán todos los archivos de la carpeta etc, entre ellos el archivo hosts que ya podemos abrir.

Una vez abierto examinamos su estructura.

Cómo simular dominios locales en Windows
Contenido del archivo hosts, abierto en el bloc de notas

Realmente, en un archivo hosts sin modificar desde la instalación de Windows únicamente hay un texto informativo marcado como comentarios (todas las líneas que empiezan por # no tienen relevancia, se utilizan como comentarios). Este texto ya nos da una pista de qué tenemos que hacer, que no es otra cosa que añadir líneas con pares dirección IP y nombre de máquina y dominio.

Insertaremos tantas líneas como dominios y subdominios necesitemos, para nuestra máquina local o para las máquinas de nuestra red local.

Archivo hosts modificado en notepad
Archivo hosts modificado con el bloc de notas

Insertando una línea como la siguiente estamos haciendo que Windows resuelva www.minuevodominio.com como la dirección 127.0.0.1, que es la dirección del adaptador loopback de la máquina (la propia máquina):

	127.0.0.1	www.minuevodominio.com

Una vez guardados los cambios en el archivo etc, abrimos una ventana de línea de comandos de Windows y podremos comprobar que la resolución de dominios funciona perfectamente, mediante el comando ping www.minuevodominio.com:

Comando ping en consola de Windows
Comprobación del dominio simulado con el comando ping

Ya podremos conectar con servicios instalados en la máquina local usando cualquier nomenclatura de dominios y subdominios que deseemos, simplemente modificando de forma conveniente el archivo hosts.

Para asignarles nombres a otras máquinas de la red utilizaremos sus direcciones IP, con la precaución de comprobar que estas direcciones no cambian en el tiempo, puesto que si el router en algún momento les da nuevas direcciones, habrá que actualizarlas en el archivo hosts.

Cómo simular dominios locales en Linux

El proceso es muy similar al visto para Windows. Prácticamente la única diferencia es la ubicación del archivo hosts, cuya ruta en los sistemas Linux es /etc/hosts. Para ver qué contiene el archivo /etc/hosts (que tiene permisos de lectura para todos los usuarios del sistema) podemos usar el comando cat:

~$ cat /etc/hosts

Si no ha habido modificaciones, encontraremos más comentarios que otra cosa, aunque durante la instalación, Debian en este caso, se ha configurado el nombre de host y de dominio local para el interfaz loopback:

Archivo hosts visualizado con cat
Contenido de un archivo /etc/hosts de una instalación corriente de Debian

Para conseguir resolver dominios y subdominios como la máquina local u otras máquinas de la red local bastará con editar hosts y añadir pares de direcciones IP y dominios. Editar el archivo hosts requiere permisos de superusuario.

~$ sudo nano /etc/hosts
como simular dominios locales en linux
Modificando el archivo /etc/hosts con nano

Una vez guardados los cambios podremos comprobar con el comando ping que todo funciona como esperábamos.

Comprobación con el comando ping en Linux
Comprobación con el comando ping en Linux

Consideraciones finales

Ahora que ya sabes cómo simular dominios locales sólo hay que tener en cuenta algunos detalles para no tener complicaciones imprevistas.

Este método es eficaz para trabajar con servidores locales para desarrollo o pruebas. Incluso para pequeñas redes locales en las que no merece la pena montar un servidor DNS local, pero exigirá mantener actualizado el archivo hosts de cada máquina. Sería muy interesante para evitar problemas de mantenimiento configurar el router de la red para que las direcciones IP se concedieran sin tiempo de expiración (o con los valores máximos), o se reservasen directamente direcciones fijas para las máquinas que tendrán nombres.

Con este método se puede usar localmente cualquier nombre de dominio:

  • Nombres de dominio que no existen
  • Nombres de dominio de nuestra propiedad, que ya tenemos en producción pero que queremos usar también en desarrollo local
  • O nombres de dominio que existen, pero no son nuestros. No hay problema por usarlos en local, teniendo en cuenta que cualquier intento de acceso a la máquina que se halla tras el dominio real se verá redirigido a la máquina local. Por ejemplo, si usas como dominio www.google.com para hacer pruebas de algo, cualquier otro proceso de la máquina que intente acceder a ese dominio no saldrá a Internet, intentará conectar en local, lo que puede provocar resultados extraños.

Espero que esta entrada haya sido de tu utilidad. Hazme saber mediante un comentario cualquier error, duda o sugerencia que tengas.

Si has encontrado útil este artículo y quieres agradecérnoslo, puedes dejar una propina de tan sólo 1 $ a través de PayPal:

O, si te sientes especialmente agradecido, puedes invitarnos a un café:

¡Gracias!

5/5 - (4 votos)

6 comentarios en «Cómo Simular Dominios Locales»

  1. Hola, Chacho, muy interesante el artículo, intenté hacerlo con una IP externa pero no me funciona, aun cuando resuelve el ping correctamente, a nivel de aplicación del servidor Web me devuelve el verdadero y no el que configuré en el archivo hosts.

    Responder
    • Hola, Yoel. Imagino que eso ya es problema de tu servicio web concreto, en el que deberías configurar la carpeta htdocs/ que mencionas para que sea el document root. Esta guía sólo indica cómo trabajar con dominios en una red local o máquina aislada sin configurar un servicio DNS. Para lo que tú quieres sólo tienes que revisar la documentación de tu servidor web.

      Responder
  2. Hola!

    Redirigí un dominio para poder trabajar en local en la creación de una web.
    Ahora quisiera trabajar en los dos a la vez pero al tener la misma dirección no encuentro la forma de hacerlo, o trabajo en uno o trabajo en otro.

    ¿Hay alguna forma de solucionar esto?
    Gracias

    Responder
    • ¡Hola!

      No puedes tener el mismo dominio apuntando a la vez a dos direcciones IP distintas (una local y una de Internet, en tu caso). Tampoco es viable cambiar el archivo hosts antes de acceder al servidor.

      Lo que yo hago en todos mis proyectos cuando quiero trabajar en producción (Internet) y en desarrollo (local) sobre un proyecto, es simular un SUBDOMINIO local. Dejaría el dominio principal (el del servidor de producción en Internet) tal y como está y simularía un subdominio de este dominio en local. Por ejemplo, tendría http://dominio.com para acceder al servidor de Internet y http://local.dominio.com simulado para el servidor local en desarrollo.

      A mí me va perfecto. Espero que te sirva.

      Responder

Deja un comentario

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.