Skip to content

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:

ServicioQué haceAnalogía
DNS autoritativoGuarda tu zona (registros A, MX, TXT...) y responde quién es quién.La agenda oficial de tu dominio.
Proxy inversoLos 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.
CDNGuarda copias de tus archivos (imágenes, CSS, JS) cerca de cada visitante.Sucursales con el mismo inventario en cada ciudad.
SeguridadFrena 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 ataques

El 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.com y *.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 ​

  1. Entra a dash.cloudflare.com y 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.
  2. 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).
  3. Escribe mitienda.com (sin www ni https://).
  4. Elige la opción de escanear/importar registros DNS automáticamente (Quick scan).
  5. 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ído

Revisa 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.com

Los 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):

RegistradorRuta aproximada
GoDaddyMi cuenta → Mis productos → Dominios → mitienda.com → DNS → pestaña Servidores de nombres → Cambiar servidores de nombres → "Usaré mis propios servidores de nombres".
NamecheapDomain List → Manage junto al dominio → sección Nameservers → elige Custom DNS → pega los dos → clic en la palomita verde para guardar.
HostingerhPanel → 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 ​

EstadoQué significaQué 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 NS

Buena 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ónPara qué la usarás
Overview / ResumenEstado (Active/Pending), nameservers asignados, acciones rápidas (Under Attack, Development Mode).
DNS → RegistrosCrear/editar registros A, CNAME, MX, TXT... y elegir nube naranja o gris.
SSL/TLSModo de cifrado (Full strict), certificados de origen, Always Use HTTPS, HSTS.
Security / SeguridadWAF, bots, reglas de bloqueo, nivel de seguridad.
Speed / VelocidadOptimizaciones (Brotli, HTTP/3, Early Hints).
Caching / CachéPurgar caché, modo desarrollo, reglas de caché.
Rules / ReglasRedirecciones, reglas de configuración, transformaciones.
Analytics / AnalíticasTráfico, solicitudes cacheadas, amenazas bloqueadas.
Email / CorreoEmail 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 ​

AspectoNube naranja (Proxied)Nube gris (DNS only)
IP que ve el mundoIPs de Cloudflare (ej. 104.21.x.x, 172.67.x.x)Tu IP real 203.0.113.10
Tu IP de origenOculta (mientras no la filtres por otro lado)Pública
ProtocolosSolo HTTP/HTTPS (y WebSockets) en ciertos puertosCualquiera (correo, FTP, SSH, juegos...)
Certificado que ve el visitanteEl de Cloudflare (Universal SSL)El de tu servidor
Caché / CDNSíNo
WAF, DDoS, bots, reglasSíNo
TTL"Auto" (Cloudflare lo controla)El que elijas
IP del visitante en tus logsIP 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:

RegistroPor qué en gris
MXNo 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.
ftpFTP (puerto 21) no es HTTP.
cpanel, whm, webdiskSuelen dar problemas por puertos y certificados del hosting; déjalos en gris o entra por la URL del hosting.
ssh o cualquier acceso por SSHPuerto 22, no HTTP.
Servidores de juegos, VoIP, bases de datos remotasProtocolos 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, NSNo 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:

HTTPHTTPS
80443
80808443
88802053
20522083
20822087
20862096
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 ​

  1. 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.
  2. Cambiaste los nameservers hace 10 minutos y el panel sigue en Pending. Escribe el comando para ver qué nameservers ve el mundo.
  3. Tu app Node corre en el puerto 3000 de un VPS. Pusiste A app 198.51.100.20 en naranja y entras a https://app.mitienda.com:3000. No carga. ¿Por qué y qué harías?
  4. Un cliente dice: "desde que activé Cloudflare mis correos salen como spam". El SPF es v=spf1 +a +mx ~all y @ está en naranja. Explica el problema y corrige el registro.
Ver solución
  1. 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.net

En 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 de a: usa ip4: con la IP real.
  • Siguiente: Configurar el DNS a mano, y después SSL sin pagar, la lección más importante del curso.

Academia Web — aprende, copia y construye.