Continuando con nuestro curso sobre cómo montar WordPress en tu propio servidor en casa, la lección anterior se centró en la instalación de dos instancias de WordPress utilizando Docker, una por línea de comandos y otra con Docker Compose. Configuramos sus respectivas bases de datos con MariaDB y PHPMyAdmin, y las hicimos accesibles a través de la red local mediante diferentes puertos (por ejemplo, 38101 para WordPress 1 y el puerto 80 para WordPress 2).
Objetivo de la lección
Hoy, nuestro objetivo principal es dar el siguiente paso crucial: acceder a estas instalaciones de WordPress desde el exterior de nuestra red local, es decir, desde cualquier parte del mundo. Para lograrlo, abordaremos varios puntos clave:
- Identificar nuestra dirección IP externa.
- Acceder a los sitios web a través de esta IP y la redirección de puertos ya configurada.
- Utilizar un nombre de dominio con Cloudflare para un acceso más sencillo y profesional.
- Automatizar la actualización de nuestra dirección IP dinámica con Cloudflare DDNS para garantizar una conectividad constante.
¡Vamos a ello!
Paso 1: Entendiendo y Accediendo con tu Dirección IP Externa
Para acceder a tu servidor desde fuera de tu red local, necesitas conocer tu dirección IP pública o externa. Esta es la dirección que tu proveedor de internet asigna a tu router. Puedes encontrarla fácilmente visitando sitios web como “My IP”. Es importante recordar que, a menos que pagues por una dirección fija, esta IP es dinámica y puede cambiar cada vez que tu proveedor lo decida.
Una vez que tengas tu dirección IP externa, puedes probar a acceder a tus instalaciones de WordPress. Recuerda que en la lección anterior ya configuramos la redirección de puertos en tu router (por ejemplo, el puerto 80 y el 38101 hacia la IP interna de tu servidor, como 192.168.2.9).
Para acceder a WordPress 1 (configurado en el puerto 38101), utiliza tu navegador e introduce: http://[tu_ip_externa]:38101
. Para WordPress 2 (configurado en el puerto 80), introduce: http://[tu_ip_externa]
(el puerto 80 es el predeterminado para HTTP, por lo que no es necesario especificarlo).
Es crucial usar http://
al principio de la dirección, ya que actualmente no tenemos un certificado SSL instalado (lo que significa que la conexión no es segura), y los navegadores modernos intentan forzar https://
por defecto.
Paso 2: Acceso con Nombre de Dominio Usando Cloudflare
Aunque el acceso por IP funciona, es poco práctico memorizar una secuencia numérica y, peor aún, que cambie. La solución es utilizar un nombre de dominio. Si ya tienes un dominio registrado (como ladf.site
en nuestro ejemplo), podemos configurarlo con Cloudflare para que apunte a tu dirección IP externa.
- Copia tu dirección IP externa actual.
- Accede a tu cuenta de Cloudflare y ve a la sección de DNS de tu dominio.
- Edita el registro de tipo “A” (o crea uno si no existe) para tu dominio principal (por ejemplo,
ladf.site
) y pega tu dirección IP externa. Guarda los cambios.
Una vez que los cambios se propaguen (lo cual suele ser rápido con Cloudflare), podrás acceder a tus sitios WordPress usando tu dominio en lugar de la IP:
- Para WordPress 1:
http://ladf.site:38101
- Para WordPress 2:
http://ladf.site
¡Felicidades! Ahora tu sitio web es accesible desde cualquier lugar del mundo usando un nombre de dominio fácil de recordar.
Paso 3: Automatizando la Actualización de IP con Cloudflare DDNS
El problema de la IP dinámica persiste. Si tu proveedor cambia tu IP externa, tu dominio dejará de funcionar hasta que actualices manualmente el registro DNS en Cloudflare. Para solucionar esto, instalaremos una aplicación Docker que automatice este proceso: Cloudflare DDNS (Dynamic DNS).
Utilizaremos la imagen de Fabonia, que es robusta y funciona bien para esta tarea. La instalaremos a través de Portainer usando un fichero Docker Compose (formato YAML), lo que facilita su configuración.
En Portainer, ve a la sección “Stacks” y selecciona “Add stack”.
Nombra el stack, por ejemplo, cloudflare-ddns
.
En el editor web, pega el siguiente contenido YAML
version: "3"
services:
cloudflare-ddns:
image: favonia/cloudflare-ddns:latest
container_name: Cloudflare-ddns
network_mode: bridge
restart: unless-stopped
security_opt:
- no-new-privileges:true
# Another protection to restrict superuser privileges
environment:
- CF_API_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Your Cloudflare API token
- DOMAINS=tudominio1.es,tudominio2.com
# Your domains (separated by commas)
- PROXIED=false
# Tell Cloudflare to cache webpages and hide your IP
Haz clic en “Deploy the stack“. El proceso puede tardar unos segundos.
Notas importantes sobre la API Key de Cloudflare:
La clave API de Cloudflare es esencial para que este contenedor pueda actualizar tus registros DNS. Cloudflare muestra la clave API solo una vez por motivos de seguridad cuando la generas. Si la pierdes, deberás regenerarla, lo que invalidaría cualquier instalación previa que la use.
Para obtener tu clave API, consulta la documentación de Cloudflare. También te proporcionaremos un enlace a un artículo detallado al final de este artículo con otros enlaces de interés.
Una vez desplegado, el contenedor cloudflare-ddns
estará en estado “running”. Este contenedor chequea tu IP externa cada 5 minutos y, si detecta un cambio, actualiza automáticamente el registro DNS en Cloudflare. Puedes verificar su funcionamiento revisando los logs del contenedor en Portainer; verás mensajes indicando si la IP ya está actualizada o si se ha realizado una actualización.
Para probarlo, podrías modificar temporalmente tu registro “A” en Cloudflare a una IP incorrecta (ej. 1.1.1.1) y luego reiniciar (o esperar 5 minutos) el contenedor cloudflare-ddns
en Portainer. Observarás cómo en sus logs detecta la IP real de tu servidor y actualiza el registro en Cloudflare a la correcta.
Conclusión y Próximos Pasos
Hemos dado un paso gigante hoy al lograr que nuestras instancias de WordPress sean accesibles desde cualquier lugar del mundo utilizando nuestro propio nombre de dominio, y hemos establecido un sistema automático para mantener actualizada la dirección IP de nuestro servidor.
Sin embargo, notaste que el navegador aún muestra “No es seguro”. Esto se debe a que no tenemos un certificado SSL para cifrar la conexión. Además, acordarse de los puertos (como el 38101) puede ser engorroso.
En las próximas lecciones, abordaremos esto:
- Instalaremos un certificado SSL para asegurar nuestras conexiones y eliminar la advertencia de “No es seguro”.
- Instalaremos un proxy inverso (como Nginx), que nos permitirá gestionar el tráfico, utilizar subdominios para cada instancia de WordPress (por ejemplo,
wp1.ldf.site
ywp2.ldf.site
sin necesidad de puertos en la URL), y facilitar la gestión de certificados.
Esto es todo por hoy. ¡Ahora tienes dos entornos WordPress funcionales y accesibles globalmente desde tu servidor casero! ¡Hasta pronto!
Video
Enlaces de interés:
Manejar Dominios y Subdominios con Cloudflare – https://www.youtube.com/watch?v=Am6FWLkuLjA
Tutorial, configurar el DNS de Cloudflare para cualquier sitio o dominio – https://www.youtube.com/watch?v=Tl8yC1fdMa0
Dominio Propio y CloudFlare: La mejor alternativa a DuckDNS (explica API token y DNS dinámica) – https://www.youtube.com/watch?v=kKwIIR-jylQ
Configura Cloudflare para Gestionar Dominios como un Pro (explica mover DNS y scripts para DDNS) – https://www.youtube.com/watch?v=p5ocLe5KEvc
Crear Token de acceso API en Cloudflare – https://help.wnpower.com/hc/es/articles/24441542323341-Crear-Token-de-acceso-API-en-Cloudflare
¿Cómo configurar CDN con CloudFlare y WordPress? (incluye obtención y uso del API key) – https://www.youtube.com/watch?v=__qYvLecokI