Tema
Cloudflare desde cero
Ya sabes qué es un dominio, cómo funciona el DNS y para qué sirve cada registro. Ahora toca la herramienta que usan millones de sitios (y probablemente el tuyo): Cloudflare. En esta lección vas a entender qué hace exactamente, cómo meter un dominio en Cloudflare sin romper nada (sobre todo el correo) y la decisión más importante del panel: nube naranja o nube gris.
Si tu dominio ya está en Cloudflare porque "alguien lo configuró", esta lección te explica qué hizo esa persona y por qué.
Concepto: ¿qué es Cloudflare?
Cloudflare es una empresa con servidores en cientos de ciudades del mundo. A tu dominio le puede dar cuatro servicios distintos, y es clave no mezclarlos:
| Servicio | Qué hace | Analogía |
|---|---|---|
| DNS autoritativo | Guarda tu zona (registros A, MX, TXT...) y responde quién es quién. | La agenda oficial de tu dominio. |
| Proxy inverso | Los visitantes se conectan a Cloudflare y Cloudflare se conecta a tu servidor. | Una recepcionista: el visitante habla con ella, nunca entra directo a tu oficina. |
| CDN | Guarda copias de tus archivos (imágenes, CSS, JS) cerca de cada visitante. | Sucursales con el mismo inventario en cada ciudad. |
| Seguridad | Frena ataques DDoS, bots, IPs sospechosas; da HTTPS gratis. | El guardia en la puerta de la recepción. |
El DNS lo usas siempre que tu dominio esté en Cloudflare. El proxy, la CDN y la seguridad solo aplican a los registros con la nube naranja (lo verás más abajo).
txt
SIN Cloudflare (o con nube gris):
Visitante ──────────────────────────────────► Tu hosting 203.0.113.10
"mitienda.com es 203.0.113.10"
CON nube naranja (proxy):
Visitante ───► Cloudflare (104.21.x.x) ───► Tu hosting 203.0.113.10
· HTTPS gratis (el visitante nunca ve esta IP)
· caché / CDN
· bloquea ataquesEl plan gratuito (Free)
El plan Free es suficiente para la gran mayoría de sitios de negocios, blogs y tiendas pequeñas. Incluye (los detalles cambian con el tiempo; revisa la página de planes):
- DNS rápido y gratuito, con DNSSEC.
- Proxy y CDN sin límite de ancho de banda para sitios web normales.
- Universal SSL: certificado HTTPS gratis para
mitienda.comy*.mitienda.com(lo verás a fondo en SSL sin pagar). - Protección DDoS sin límite.
- WAF con reglas administradas gratuitas y algunas reglas personalizadas.
- Reglas: redirecciones, caché, configuración (en cantidad limitada).
- Analíticas básicas, Bot Fight Mode, Turnstile (captcha gratis), Email Routing (reenvío de correo).
¿Cuándo pagar el plan Pro?
Cuando necesitas reglas WAF avanzadas, optimización de imágenes (Polish), más reglas o soporte por chat. Para una página de negocio con cPanel, no lo necesitas. Muchos sitios pagan cosas que el plan Free ya trae.
Paso 1: crear la cuenta y agregar tu sitio
- Entra a
dash.cloudflare.comy crea una cuenta con un correo que controles a largo plazo (no el correo de un empleado que se puede ir). Activa la verificación en dos pasos desde tu perfil. - En el panel principal busca el botón Agregar un dominio (puede llamarse "Add a site", "Add a domain" u "Onboard a domain"; los nombres de los menús cambian con frecuencia).
- Escribe
mitienda.com(sinwwwnihttps://). - Elige la opción de escanear/importar registros DNS automáticamente (Quick scan).
- Selecciona el plan Free (suele estar al final de la lista de planes).
Cómo importa Cloudflare tus registros
Cloudflare consulta el DNS público de tu dominio e intenta adivinar qué registros existen. El problema: el DNS no permite listar todos los registros de una zona, así que Cloudflare prueba nombres comunes (www, mail, ftp, webmail, cpanel...) y lo que no adivina, no lo importa.
txt
Zona real en tu hosting Lo que Cloudflare encontró
───────────────────────── ──────────────────────────
A @ 203.0.113.10 A @ 203.0.113.10 ✓
CNAME www mitienda.com CNAME www mitienda.com ✓
A mail 203.0.113.10 A mail 203.0.113.10 ✓
MX @ 0 mail.mitienda.com MX @ 0 mail... ✓
TXT @ v=spf1 ... TXT @ v=spf1 ... ✓
TXT default._domainkey v=DKIM1 (no aparece) ✗ ← el correo irá a spam
TXT _dmarc v=DMARC1 ... TXT _dmarc v=DMARC1 ... ✓
A intranet 203.0.113.10 (no aparece) ✗ ← subdominio caídoRevisa la lista ANTES de cambiar los nameservers
Lo que no esté en Cloudflare dejará de existir en cuanto cambies los nameservers. Compara contra la zona original:
- En cPanel: Dominios → Zone Editor → Administrar (o "Editor de zona DNS"). También puedes exportar la zona completa desde ahí o pedirla a soporte.
- En GoDaddy/Namecheap/Hostinger: la sección DNS del dominio suele tener un botón de exportar.
- Los que más se pierden: DKIM (
default._domainkey,google._domainkey,selector1._domainkey), SRV (_autodiscover._tcp), subdominios con nombres raros, y TXT de verificación (Google, Microsoft, Facebook).
Si tienes el archivo de zona exportado (formato BIND), Cloudflare permite importarlo desde DNS → Registros → Importar y exportar (Import and Export). Es la forma más segura de no perder nada.
Paso 2: cambiar los nameservers en el registrador
Al terminar, Cloudflare te muestra dos nameservers asignados a tu cuenta, por ejemplo:
txt
ana.ns.cloudflare.com
bob.ns.cloudflare.comLos nombres son distintos para cada cuenta. Copia exactamente los que te dé tu panel, no los de este ejemplo. Ahora ve al registrador (donde pagas el dominio cada año) y reemplaza los nameservers actuales.
Antes de cambiar: DNSSEC
Si tu dominio tiene DNSSEC activado en el registrador, desactívalo (o elimina el registro DS) antes del cambio. Si no, durante la transición los resolvers verán firmas que no coinciden y el dominio dejará de resolver para mucha gente. Después lo reactivas desde Cloudflare con un clic (ver Cloudflare a fondo).
Las rutas en los registradores más comunes (pueden cambiar de nombre):
| Registrador | Ruta aproximada |
|---|---|
| GoDaddy | Mi cuenta → Mis productos → Dominios → mitienda.com → DNS → pestaña Servidores de nombres → Cambiar servidores de nombres → "Usaré mis propios servidores de nombres". |
| Namecheap | Domain List → Manage junto al dominio → sección Nameservers → elige Custom DNS → pega los dos → clic en la palomita verde para guardar. |
| Hostinger | hPanel → Dominios → mitienda.com → DNS / Nameservers → Cambiar nameservers → "Cambiar a nameservers personalizados". |
Akky (.mx) | Mis dominios → mitienda.mx → Administrar → Servidores DNS / Delegación → reemplaza los servidores y guarda. |
Borra todos los nameservers anteriores (algunos registradores muestran 3 o 4) y deja solo los dos de Cloudflare. Mezclar nameservers de Cloudflare con los del hosting provoca respuestas distintas según a quién le pregunte el resolver: un caos intermitente muy difícil de diagnosticar.
Paso 3: estados del dominio en Cloudflare
| Estado | Qué significa | Qué hacer |
|---|---|---|
| Pending (pendiente) | Cloudflare espera ver sus nameservers en el registro del TLD. Todavía no responde por tu dominio. | Esperar. Usar el botón "Check nameservers / Volver a comprobar". |
| Active (activo) | El TLD ya delega en Cloudflare. Desde ahora, la zona de Cloudflare es la única que cuenta. | Revisar SSL, correo y sitio. |
| Moved (movido) | Los nameservers del registrador ya no son los de Cloudflare. | Si fue un error, volver a ponerlos. |
El cambio suele verse en minutos, pero puede tardar hasta 24–48 horas porque los servidores del TLD (.com, .mx) cachean la delegación NS. Cloudflare te envía un correo cuando el dominio pasa a Active.
Puedes comprobarlo tú mismo:
bash
# ¿Qué nameservers anuncia el dominio?
dig +short NS mitienda.com
# ana.ns.cloudflare.com.
# bob.ns.cloudflare.com.powershell
Resolve-DnsName mitienda.com -Type NSBuena práctica: no toques nada más ese día
Mientras el estado es Pending, la zona vieja (en tu hosting) sigue respondiendo para parte del mundo. Si cambias registros, hazlo en ambas zonas o espera a que esté Active. Para los conceptos de zona y delegación revisa Nameservers y zona DNS.
Paso 4: recorrido por el panel
Al entrar a tu dominio verás un menú lateral. Los nombres cambian seguido, pero las secciones clave son:
| Sección | Para qué la usarás |
|---|---|
| Overview / Resumen | Estado (Active/Pending), nameservers asignados, acciones rápidas (Under Attack, Development Mode). |
| DNS → Registros | Crear/editar registros A, CNAME, MX, TXT... y elegir nube naranja o gris. |
| SSL/TLS | Modo de cifrado (Full strict), certificados de origen, Always Use HTTPS, HSTS. |
| Security / Seguridad | WAF, bots, reglas de bloqueo, nivel de seguridad. |
| Speed / Velocidad | Optimizaciones (Brotli, HTTP/3, Early Hints). |
| Caching / Caché | Purgar caché, modo desarrollo, reglas de caché. |
| Rules / Reglas | Redirecciones, reglas de configuración, transformaciones. |
| Analytics / Analíticas | Tráfico, solicitudes cacheadas, amenazas bloqueadas. |
| Email / Correo | Email Routing (reenvío gratis) y asistente de registros de correo. |
Email Routing de Cloudflare solo recibe
Email Routing reenvía lo que llega a hola@mitienda.com a otro buzón (por ejemplo, tu Gmail personal), pero no envía correo. Para responder "como" hola@mitienda.com no uses smtp.gmail.com en "Enviar como": el correo saldría firmado por gmail.com y fallaría el DMARC de tu dominio. Usa un SMTP propio del dominio (por ejemplo, Brevo) como se explica en Correo con tu dominio. No lo confundas con "Email Routing" de cPanel, que es otra cosa (lo verás en los escenarios).
Nube naranja vs. nube gris
En DNS → Registros, cada registro A, AAAA y CNAME tiene un interruptor llamado Proxy status:
- 🟠 Proxied (nube naranja): Cloudflare responde con sus IPs y se pone en medio. Aplica caché, SSL de Cloudflare y seguridad.
- ⚪ DNS only (nube gris): Cloudflare responde con tu IP real. Funciona como cualquier DNS normal; el tráfico va directo a tu servidor.
Qué cambia exactamente
| Aspecto | Nube naranja (Proxied) | Nube gris (DNS only) |
|---|---|---|
| IP que ve el mundo | IPs de Cloudflare (ej. 104.21.x.x, 172.67.x.x) | Tu IP real 203.0.113.10 |
| Tu IP de origen | Oculta (mientras no la filtres por otro lado) | Pública |
| Protocolos | Solo HTTP/HTTPS (y WebSockets) en ciertos puertos | Cualquiera (correo, FTP, SSH, juegos...) |
| Certificado que ve el visitante | El de Cloudflare (Universal SSL) | El de tu servidor |
| Caché / CDN | Sí | No |
| WAF, DDoS, bots, reglas | Sí | No |
| TTL | "Auto" (Cloudflare lo controla) | El que elijas |
| IP del visitante en tus logs | IP de Cloudflare (hay que restaurarla) | IP real |
Compruébalo con dig:
bash
dig +short mitienda.com # naranja → 104.21.45.12 / 172.67.180.3 (Cloudflare)
dig +short mail.mitienda.com # gris → 203.0.113.10 (tu hosting)Registros que NUNCA debes proxear
El proxy solo entiende tráfico web. Todo lo que no sea HTTP/HTTPS se rompe con la nube naranja:
| Registro | Por qué en gris |
|---|---|
| MX | No se puede proxear (no tiene interruptor). Pero ojo: el nombre al que apunta (mail.mitienda.com) debe estar en gris. |
mail, smtp, imap, pop, webmail* | El correo usa puertos 25, 465, 587, 993, 995: el proxy no los deja pasar. |
ftp | FTP (puerto 21) no es HTTP. |
cpanel, whm, webdisk | Suelen dar problemas por puertos y certificados del hosting; déjalos en gris o entra por la URL del hosting. |
ssh o cualquier acceso por SSH | Puerto 22, no HTTP. |
| Servidores de juegos, VoIP, bases de datos remotas | Protocolos distintos a HTTP. |
Registros que piden verificar un proveedor (ej. el CNAME de Shopify, Vercel, Microsoft 365 autodiscover) | El proveedor necesita ver su propio destino, no a Cloudflare. |
| Registros TXT, SRV, CAA, NS | No tienen proxy (no aplica). |
* webmail en cPanel funciona por HTTPS en el puerto 2096, que el proxy sí soporta, pero si algo falla con el certificado, ponlo en gris.
Error común: "el correo dejó de funcionar al activar Cloudflare"
Casi siempre es mail.mitienda.com con nube naranja. El MX dice "el correo va a mail.mitienda.com", pero ese nombre ahora resuelve a Cloudflare, que no acepta correo. Solución: nube gris en mail (y en cualquier nombre usado por un MX). Cloudflare incluso te muestra una advertencia si lo intentas.
"Pero con la nube gris en mail se ve mi IP"
Es verdad: con mail en gris, cualquiera puede ver 203.0.113.10 y saber dónde está el sitio. En hosting compartido es un compromiso aceptable (la IP es del servidor compartido, no solo tuya). Si te preocupa, usa un proveedor de correo externo (Google Workspace, Zoho) para que el registro de correo apunte a ellos y no a tu servidor. Lo verás en Escenarios reales.
Puertos que el proxy acepta
Si tu aplicación usa un puerto distinto a 80/443, solo funcionará con nube naranja si está en esta lista:
| HTTP | HTTPS |
|---|---|
| 80 | 443 |
| 8080 | 8443 |
| 8880 | 2053 |
| 2052 | 2083 |
| 2082 | 2087 |
| 2086 | 2096 |
| 2095 |
Cualquier otro puerto (por ejemplo :3000 de una app Node, o :3306 de MySQL) no pasa por el proxy. La solución correcta es poner Nginx/Apache en el puerto 443 y que reenvíe a tu app (ver Nginx), o usar un túnel de Cloudflare.
Caso real: la zona de mitienda.com bien configurada
Hosting cPanel en 203.0.113.10, correo en el mismo hosting:
txt
Tipo Nombre Contenido Proxy
──────────────────────────────────────────────────────────────────────
A mitienda.com 203.0.113.10 🟠 Proxied
CNAME www mitienda.com 🟠 Proxied
A mail 203.0.113.10 ⚪ DNS only
A ftp 203.0.113.10 ⚪ DNS only
A cpanel 203.0.113.10 ⚪ DNS only
A webmail 203.0.113.10 ⚪ DNS only
MX mitienda.com mail.mitienda.com (prioridad 0) —
TXT mitienda.com v=spf1 ip4:203.0.113.10 mx ~all —
TXT default._domainkey v=DKIM1; k=rsa; p=MIIBIj... —
TXT _dmarc v=DMARC1; p=none; rua=mailto:... —Fíjate en el SPF: usa ip4:203.0.113.10 en lugar de a. Si usaras el mecanismo a, el receptor buscaría el registro A de mitienda.com… que con nube naranja devuelve IPs de Cloudflare, y tu correo fallaría SPF. Es un error muy común al activar Cloudflare. Los detalles de SPF están en SPF.
Ejercicios
- Tienes estos registros en Cloudflare. Indica cuáles deben ir en naranja y cuáles en gris:
A @,CNAME www,A mail,A ftp,A tienda(apunta a una app web en un VPS),A vpn,CNAME autodiscover. - Cambiaste los nameservers hace 10 minutos y el panel sigue en Pending. Escribe el comando para ver qué nameservers ve el mundo.
- Tu app Node corre en el puerto 3000 de un VPS. Pusiste
A app 198.51.100.20en naranja y entras ahttps://app.mitienda.com:3000. No carga. ¿Por qué y qué harías? - Un cliente dice: "desde que activé Cloudflare mis correos salen como spam". El SPF es
v=spf1 +a +mx ~ally@está en naranja. Explica el problema y corrige el registro.
Ver solución
- Naranja:
A @,CNAME www,A tienda. Gris:A mail,A ftp,A vpn(no es HTTP),CNAME autodiscover(lo usa el cliente de correo para configurarse).
bash
dig +short NS mitienda.com
# o, preguntando directo al servidor del TLD .com (sin caché intermedia):
dig NS mitienda.com @a.gtld-servers.netEn Windows: Resolve-DnsName mitienda.com -Type NS -Server 1.1.1.1. 3. El puerto 3000 no está en la lista de puertos que acepta el proxy. Lo correcto es instalar Nginx en el VPS escuchando en 443 con proxy_pass http://127.0.0.1:3000 y entrar por https://app.mitienda.com sin puerto. 4. +a autoriza las IPs del registro A de mitienda.com, que ahora son de Cloudflare, no las del hosting que envía el correo. Corrección:
txt
v=spf1 ip4:203.0.113.10 +mx ~all(Con mail en gris, mx sigue resolviendo a 203.0.113.10.) Verifica en cPanel → Email Deliverability cuál es la IP real de salida del correo; en algunos hostings es distinta a la del sitio.
Resumen
- Cloudflare da DNS, proxy inverso, CDN y seguridad; el plan Free alcanza para casi todos.
- Al agregar el dominio, Cloudflare adivina los registros: compara contra la zona original (DKIM, SRV y subdominios se pierden fácil).
- Cambia los nameservers en el registrador dejando solo los dos de Cloudflare; desactiva DNSSEC antes.
- Pending = aún no manda Cloudflare; Active = solo cuenta la zona de Cloudflare.
- 🟠 Naranja: web (
@,www, apps HTTP). ⚪ Gris: correo, FTP, SSH, cPanel, verificaciones y todo lo que no sea HTTP. - Con
@en naranja, el SPF no debe depender dea: usaip4:con la IP real. - Siguiente: Configurar el DNS a mano, y después SSL sin pagar, la lección más importante del curso.