Skip to content

Configurar el DNS a mano, campo por campo ​

Ya sabes qué es cada registro. Ahora vas a hacer lo que hace un profesional: sentarte frente al panel de Cloudflare con la zona vacía y llenarla tú solo, sabiendo en cada campo qué escribir, por qué, y qué se rompe si te equivocas.

Al final de esta lección tendrás la zona completa de mitienda.com hecha por ti, y una hoja que puedes reutilizar con cualquier cliente.

Antes de tocar nada: junta los datos ​

El 90% de los errores de DNS vienen de no tener los datos correctos antes de empezar. Un registro DNS es una pregunta y una respuesta: la pregunta la decides tú (el nombre), pero la respuesta te la da otra empresa (tu hosting, tu proveedor de correo, Vercel...). Nunca la inventes.

Hoja de datos (cópiala y llénala) ​

txt
DOMINIO: mitienda.com
NAMESERVERS ACTIVOS: ana.ns.cloudflare.com / bob.ns.cloudflare.com   (compruébalo con nslookup -type=ns)

SITIO WEB
  ¿Dónde está?        [x] cPanel  [ ] VPS  [ ] Vercel/Netlify  [ ] Otro: ____
  IP del servidor:    203.0.113.10          (IPv6: 2001:db8::10, si tiene)
  Versión principal:  [x] sin www (mitienda.com)  [ ] con www

SUBDOMINIOS
  blog  → mismo cPanel            api → VPS 198.51.100.20

CORREO
  Proveedor:          [x] cPanel  [ ] Google Workspace  [ ] Microsoft 365  [ ] Zoho  [ ] Cloudflare Email Routing
  MX que me dio:      mail.mitienda.com (prioridad 0)
  SPF que me dio:     v=spf1 +a +mx ~all  (lo ajustamos abajo)
  DKIM (nombre/valor): default._domainkey / v=DKIM1; k=rsa; p=MIIBIjANBg...
  Envío desde la web: [x] SMTP del hosting  [ ] Brevo  [ ] otro: ____

VERIFICACIONES
  Google Search Console: google-site-verification=AbC123...

¿De dónde saco cada dato? ​

DatoDónde encontrarlo
IP del hosting cPanelcPanel → barra lateral derecha Información general → Dirección IP compartida (o "Shared IP Address"). También en el correo de bienvenida del hosting.
IP de un VPSPanel del proveedor (DigitalOcean, Hostinger VPS, Contabo...) o en el servidor: curl -4 ifconfig.me
MX, SPF y DKIM de cPanelcPanel → Entregabilidad del correo (Email Deliverability) → Administrar en tu dominio: muestra los valores "sugeridos" exactos
MX/SPF/DKIM de Google Workspaceadmin.google.com → Apps → Google Workspace → Gmail → Autenticar correo (DKIM). MX y SPF están en su guía de configuración
Registros de Vercel / NetlifyEn su panel, al agregar el dominio te muestran el registro exacto
Verificación de Search Consolesearch.google.com/search-console → Agregar propiedad → Dominio → te da el TXT

Antes de cambiar una zona que ya funciona

En Cloudflare: DNS → Records → Import and Export → Export. Descargas un archivo con todos los registros actuales. Si algo sale mal, lo puedes volver a importar. Hazlo siempre antes de editar la zona de un cliente.

El formulario de Cloudflare, campo por campo ​

En DNS → Records → Add record aparece este formulario. Los campos cambian un poco según el tipo:

txt
┌──────────┬─────────────────┬─────────────────────────┬──────────────┬────────┐
│ Type     │ Name (required) │ IPv4 address (required) │ Proxy status │ TTL    │
│ [A    ▾] │ [blog         ] │ [203.0.113.10         ] │ [● Proxied ] │ [Auto] │
└──────────┴─────────────────┴─────────────────────────┴──────────────┴────────┘
  Comment: [Blog del cliente en cPanel - creado 2026-11-02]           [Save]

1. Type (tipo): ¿qué clase de respuesta es? ​

Elige según qué te dieron como respuesta:

Te dieron...Usa
Una IPv4 (203.0.113.10)A
Una IPv6 (2001:db8::10)AAAA
Un nombre de otra empresa (cname.vercel-dns.com)CNAME
"Servidor de correo" con prioridadMX
Un texto (v=spf1..., google-site-verification=..., una llave DKIM)TXT (salvo que te digan CNAME, como hace Microsoft con DKIM)
Servicio + protocolo + puertoSRV
Autoridades de certificados permitidasCAA

2. Name (nombre): ¿por quién preguntan? ​

Es la parte izquierda del nombre, sin el dominio. Cloudflare le pega .mitienda.com automáticamente (debajo del campo te muestra el nombre completo resultante: revísalo).

Quieres configurarEscribe en NameResultado
El dominio "pelón"@mitienda.com
wwwwwwwww.mitienda.com
Un subdominioblogblog.mitienda.com
Dos nivelesadmin.blogadmin.blog.mitienda.com
Todos los no definidos**.mitienda.com
DMARC_dmarc_dmarc.mitienda.com
DKIMdefault._domainkeydefault._domainkey.mitienda.com

El error del nombre duplicado

En otros paneles (GoDaddy, algunos cPanel), si escribes el nombre completo blog.mitienda.com en el campo Host, el panel le vuelve a pegar el dominio y crea blog.mitienda.com.mitienda.com. Cloudflare lo corrige solo, pero acostúmbrate a escribir solo la parte izquierda (blog) y a leer la vista previa del nombre completo antes de guardar.

3. El valor: ¿qué respondemos? ​

Según el tipo, el campo se llama IPv4 address, Target, Mail server o Content. En otros paneles: Value, Points to, Destino, Valor, Data. Es lo mismo: la respuesta.

Reglas del valor:

  • A/AAAA: solo la IP. Nada de http://, ni /, ni :3000.
  • CNAME / MX: solo un nombre de host (cname.vercel-dns.com), sin https:// ni rutas. En Cloudflare el punto final es opcional.
  • TXT: pega el texto tal cual. Cloudflare pone las comillas: no las agregues tú (si pegas "v=spf1..." con comillas, pueden quedar duplicadas). Cuidado con las comillas "curvas" de Word o WhatsApp.

4. Proxy status: ¿naranja o gris? ​

🟠 Proxied⚪ DNS only
Qué responde el DNSIPs de CloudflareTu IP real
TráficoPasa por Cloudflare (caché, SSL, protección)Va directo a tu servidor
Úsalo paraTu sitio web y subdominios web (@, www, blog, api)Correo (mail), FTP, SSH, juegos, cualquier cosa que no sea web, y lo que pidan Vercel/Shopify

Solo los tipos A, AAAA y CNAME tienen nube. MX y TXT nunca la tienen. Explicación completa en Cloudflare desde cero.

5. TTL: ¿cuánto tiempo pueden recordar la respuesta? ​

  • Con 🟠 Proxied el TTL queda fijo en Auto (300 s). No lo puedes cambiar ni lo necesitas: la IP pública es de Cloudflare.
  • Con ⚪ DNS only elige Auto (300 s) normalmente. Si es un registro que nunca cambia (MX), puedes usar 1 hora.
  • Antes de una migración, baja el TTL a 1–5 minutos un día antes, para que el cambio se vea rápido. Ver Cómo funciona el DNS.

6. Priority (prioridad, solo MX y SRV) ​

Número menor = se usa primero. Con un solo servidor de correo da igual el número (pon el que te dé el proveedor). Con varios, copia exactamente sus prioridades: el proveedor ya las calculó.

7. Comment: documenta para tu yo del futuro ​

Escribe para qué es el registro y quién lo pidió: "DKIM de cPanel", "Verificación Search Console - nov 2026", "App de reservas en VPS". Dentro de un año no vas a recordar por qué existe ese TXT raro, y borrarlo podría romper algo.

Manos a la obra: la zona de mitienda.com paso a paso ​

Escenario: sitio y correo en el mismo hosting cPanel (203.0.113.10), un blog en el mismo cPanel, una API en un VPS (198.51.100.20) y verificación de Google. Hacemos un registro a la vez, y para cada uno: qué poner, por qué, y qué pasa si te equivocas.

Registro 1: el sitio principal ​

TypeNameIPv4 addressProxyTTL
A@203.0.113.10🟠 ProxiedAuto
  • Por qué A: el hosting nos dio una IP, y la raíz del dominio no puede ser un CNAME clásico.
  • Por qué @: es el dominio sin nada delante, lo que la gente escribe más.
  • Por qué naranja: queremos SSL gratis de Cloudflare, caché, ocultar la IP y protección.
  • Si te equivocas (IP vieja o mal escrita): el sitio no carga (error 521/522) o muestra el sitio de otro cliente del hosting.

Registro 2: www ​

TypeNameTargetProxyTTL
CNAMEwwwmitienda.com🟠 ProxiedAuto
  • Por qué CNAME y no otra A: www debe ir siempre al mismo lugar que la raíz. Con CNAME, si un día cambias la IP, la cambias una sola vez (en el registro 1) y www la sigue solo.
  • Además necesitas que una de las dos versiones redirija a la otra (lo hacemos con una Redirect Rule, ver Cloudflare a fondo), para que Google no vea dos sitios duplicados.
  • Si lo olvidas: www.mitienda.com da NXDOMAIN, y mucha gente escribe www por costumbre.

Registro 3: el blog (mismo hosting) ​

TypeNameTargetProxyTTL
CNAMEblogmitienda.com🟠 ProxiedAuto
  • Por qué: el blog vive en el mismo servidor, así que reusa la IP del principal (igual que www). Una A blog 203.0.113.10 también funciona; el CNAME te ahorra actualizarlo si cambia la IP.
  • Falta la otra mitad: crear blog.mitienda.com en cPanel → Dominios. Sin eso verás el sitio principal o la página por defecto (Subdominios y puertos).

Registro 4: la API en otro servidor ​

TypeNameIPv4 addressProxyTTL
Aapi198.51.100.20🟠 ProxiedAuto
  • Por qué A y no CNAME: está en otro servidor con su propia IP.
  • El puerto no va aquí: aunque la app corra en el 3000, el DNS solo lleva la IP. En el VPS, Nginx escucha en 443 y reenvía a 3000.

Registro 5: el servidor de correo ​

TypeNameIPv4 addressProxyTTL
Amail203.0.113.10⚪ DNS onlyAuto
  • Por qué existe: el MX (siguiente registro) debe apuntar a un nombre, y ese nombre necesita su A. Además, lo usas para configurar el correo en el celular (mail.mitienda.com).
  • Por qué GRIS (obligatorio): el correo usa puertos 25, 465, 587 y 993, que el proxy de Cloudflare no deja pasar. Con naranja, el correo deja de llegar y de enviarse.
  • Por qué no usamos el CNAME a mitienda.com: porque mitienda.com está en naranja; un CNAME hacia un nombre proxied también devolvería IPs de Cloudflare.

Registro 6: MX (dónde se entrega el correo) ​

TypeNameMail serverPriorityTTL
MX@mail.mitienda.com0Auto
  • Por qué @: queremos recibir correos para @mitienda.com. (Si fuera ventas@tienda.mitienda.com, el MX iría en tienda).
  • Por qué un nombre y no una IP: el estándar lo exige. Un MX con IP o apuntando a un CNAME es inválido y muchos servidores lo rechazan.
  • Si lo borras o te equivocas: los correos que te envíen rebotan o se pierden. Este es el registro que más se olvida al pasar un dominio a Cloudflare.

Registro 7: SPF (quién puede enviar) ​

TypeNameContentTTL
TXT@v=spf1 a mx ~allAuto
  • Por qué: le dice a Gmail, Outlook, etc. qué servidores tienen permiso de enviar como @mitienda.com. Sin SPF, tus correos van a spam.

  • Por qué a mx aquí: mx autoriza a mail.mitienda.com (el correo del cPanel). a autoriza a la IP de la raíz para los formularios del sitio... pero ojo: con la raíz en naranja, a resuelve a IPs de Cloudflare, no a tu servidor. Por eso es más correcto usar la IP real:

    txt
    v=spf1 mx ip4:203.0.113.10 ~all
  • Uno solo: si ya existe un TXT que empieza con v=spf1, edítalo; no crees otro. Dos SPF = SPF inválido. Detalle en SPF y el generador.

Registro 8: DKIM (la firma) ​

TypeNameContentTTL
TXTdefault._domainkeyv=DKIM1; k=rsa; p=MIIBIjANBgkqhki... (completo)Auto
  • De dónde: cPanel → Entregabilidad del correo → Administrar → copia nombre y valor exactos.
  • Copia la llave completa: es muy larga. Si se corta un solo carácter, la firma falla. Ver DKIM.

Registro 9: DMARC (la política) ​

TypeNameContentTTL
TXT_dmarcv=DMARC1; p=none; rua=mailto:dmarc@mitienda.comAuto
  • Por qué p=none primero: empiezas observando. Cuando los reportes confirmen que tu correo legítimo pasa SPF/DKIM, subes a quarantine y luego a reject (DMARC).

Registro 10: verificación de Google Search Console ​

TypeNameContentTTL
TXT@google-site-verification=AbC123...Auto
  • Pueden existir varios TXT en @ (SPF + verificaciones): es normal y correcto. Lo único que no puede repetirse es el SPF.
  • No lo borres después de verificar: Google lo revisa de vez en cuando.

La zona terminada ​

txt
Type   Name                Contenido                                   Proxy   Prioridad
A      @                   203.0.113.10                                🟠
CNAME  www                 mitienda.com                                🟠
CNAME  blog                mitienda.com                                🟠
A      api                 198.51.100.20                               🟠
A      mail                203.0.113.10                                ⚪
MX     @                   mail.mitienda.com                           -       0
TXT    @                   v=spf1 mx ip4:203.0.113.10 ~all             -
TXT    default._domainkey  v=DKIM1; k=rsa; p=MIIBIjANBgkq...           -
TXT    _dmarc              v=DMARC1; p=none; rua=mailto:dmarc@...      -
TXT    @                   google-site-verification=AbC123...          -

Diez registros y cada uno tiene una razón. Si no puedes explicar por qué existe un registro, no lo crees (y si lo encuentras en la zona de un cliente, investiga antes de borrarlo).

Variante: el correo en Google Workspace ​

El sitio queda igual (registros 1 a 4). El correo cambia por completo:

TypeNameContenidoPrioridadPor qué
MX@smtp.google.com1El correo se entrega en Google, no en tu hosting
TXT@v=spf1 include:_spf.google.com ~all-Autoriza a Google a enviar (agrega ip4:203.0.113.10 si tu web también envía)
TXTgoogle._domainkey(la llave de admin.google.com)-Firma de Google
TXT_dmarcv=DMARC1; p=none; rua=mailto:dmarc@mitienda.com-Igual que antes

Y borras el A mail y el MX viejo de cPanel (si los dejas, parte del correo podría ir al hosting). En cPanel → Enrutamiento de correo (Email Routing), marca Intercambiador de correo remoto, para que los formularios del sitio no entreguen localmente los correos de @mitienda.com. Ver Correo con tu dominio.

Comprueba cada registro (no te quedes con la duda) ​

Después de guardar cada registro, pregúntale directamente a un resolver público. Con Cloudflare los cambios se ven en segundos:

powershell
nslookup mitienda.com 1.1.1.1
nslookup -type=cname www.mitienda.com 1.1.1.1
nslookup -type=mx mitienda.com 1.1.1.1
nslookup -type=txt mitienda.com 1.1.1.1
nslookup -type=txt _dmarc.mitienda.com 1.1.1.1
nslookup -type=txt default._domainkey.mitienda.com 1.1.1.1
bash
dig +short mitienda.com @1.1.1.1
dig +short CNAME www.mitienda.com @1.1.1.1
dig +short MX mitienda.com @1.1.1.1
dig +short TXT mitienda.com @1.1.1.1
dig +short TXT _dmarc.mitienda.com @1.1.1.1
dig +short TXT default._domainkey.mitienda.com @1.1.1.1

Qué esperar:

  • mitienda.com → IPs de Cloudflare (104.21.x.x, 172.67.x.x), no la tuya. Es correcto: está en naranja.
  • mail.mitienda.com → tu IP 203.0.113.10. Si sale una de Cloudflare, está en naranja por error.
  • Finalmente, pasa tu dominio por el analizador de Herramientas DNS: te marca lo que falta.

Editar y borrar sin romper nada ​

  • Editar (clic en Edit del registro) es mejor que borrar y volver a crear: no hay un momento en que el nombre no exista.
  • "A record with that host already exists" o error de conflicto: un CNAME no puede convivir con otro registro del mismo nombre. Si blog ya tiene un A, bórralo antes de crear CNAME blog (o edita el existente).
  • Antes de borrar un registro desconocido, búscalo: google-site-verification (Google), MS= (Microsoft 365), _acme-challenge (certificados), facebook-domain-verification (Meta). Si no sabes qué es, déjalo y pregunta.
  • Cambios masivos: exporta, edita el archivo en un editor de texto, impórtalo. Cuidado: importar agrega, no reemplaza.

Errores típicos al escribir registros ​

ErrorEjemplo incorrectoCorrecto
Esquema o ruta en el valorCNAME www https://mitienda.com/CNAME www mitienda.com
Puerto en una IPA api 198.51.100.20:3000A api 198.51.100.20 + Nginx al 3000
Nombre duplicadoblog.mitienda.com.mitienda.comName: blog
Comillas de más o curvas""v=spf1 ..."" o “v=spf1”v=spf1 mx ~all
Dos SPFdos TXT v=spf1... en @Uno solo, combinado
MX a una IPMX @ 203.0.113.10MX @ mail.mitienda.com + A mail
Correo en naranjaA mail ... 🟠⚪ DNS only
Espacios al copiar203.0.113.10Sin espacios
DKIM incompletola llave cortadaCópiala entera desde el panel
Editar la zona equivocadaEditar en el cPanel con NS de CloudflareEditar solo donde apuntan los nameservers

Ejercicios ​

  1. Un cliente tiene el sitio en Vercel (te da A @ 76.76.21.21 y CNAME www cname.vercel-dns.com) y el correo en Zoho (MX mx.zoho.com 10, mx2.zoho.com 20, mx3.zoho.com 50; SPF include:zohomail.com; DKIM con selector zmail). Escribe la zona completa, con el estado del proxy de cada registro.
  2. Ves esta zona en un cliente. Encuentra los 4 errores:
    txt
    A      @       203.0.113.10        🟠
    A      www     203.0.113.10        🟠
    A      mail    203.0.113.10        🟠
    MX     @       203.0.113.10        10
    TXT    @       v=spf1 mx ~all
    TXT    @       v=spf1 include:_spf.google.com ~all
  3. ¿Por qué en el SPF de la zona de este capítulo usamos ip4:203.0.113.10 en lugar de a?
  4. El cliente quiere tienda.mitienda.com en Shopify. ¿Qué registro creas, en qué color, y qué más tienes que hacer?
Ver solución
  1. Zona:
    txt
    A      @                 76.76.21.21                                  ⚪ (Vercel emite su SSL)
    CNAME  www               cname.vercel-dns.com                         ⚪
    MX     @                 mx.zoho.com                                  10
    MX     @                 mx2.zoho.com                                 20
    MX     @                 mx3.zoho.com                                 50
    TXT    @                 v=spf1 include:zohomail.com ~all
    TXT    zmail._domainkey  v=DKIM1; k=rsa; p=... (de Zoho)
    TXT    _dmarc            v=DMARC1; p=none; rua=mailto:dmarc@mitienda.com
    TXT    @                 zoho-verification=zb12345.zmverify.zoho.com  (si Zoho lo pide)
    Agrega el dominio también en el panel de Vercel y verifica el dominio en Zoho.
  2. (a) mail está en naranja: el correo no funcionará → gris. (b) El MX apunta a una IP → debe ser mail.mitienda.com. (c) Hay dos SPF → combinar en uno solo (y decidir qué proveedor de correo se usa en verdad). (d) www duplica la IP con un A: no está mal en sí, pero lo correcto es CNAME www mitienda.com para no tener que cambiar dos registros. (Bonus: no hay DMARC ni DKIM.)
  3. Porque @ está en naranja: el mecanismo a busca el registro A de la raíz y obtiene IPs de Cloudflare, que no envían tu correo. La IP real del servidor es la que envía los correos del formulario.
  4. CNAME tienda shops.myshopify.com en gris (Shopify emite su certificado y lo recomienda así). Además, en Shopify → Configuración → Dominios → Conectar dominio existente con tienda.mitienda.com: es la "segunda mitad" (el servidor tiene que saber que ese nombre es tuyo).

Resumen ​

  • Antes de empezar, junta los datos con la hoja: los valores te los da tu hosting o proveedor, nunca se inventan. Exporta la zona antes de editar.

  • Cada campo responde una pregunta: Type = qué clase de respuesta, Name = por quién preguntan (sin el dominio), valor = la respuesta, Proxy = si pasa por Cloudflare, TTL = cuánto se recuerda, Priority = orden (MX).

  • Web en 🟠 naranja; correo, FTP, SSH y lo que pidan Vercel/Shopify en ⚪ gris.

  • El valor nunca lleva http://, rutas ni puertos.

  • www y los subdominios del mismo servidor van mejor como CNAME a la raíz.

  • MX apunta a un nombre con su propio A en gris. Un solo SPF. DKIM completo. DMARC empezando en none.

  • Comprueba cada registro con nslookup/dig contra 1.1.1.1 y con el analizador.

  • Usa el campo Comment para documentar el porqué de cada registro.

  • Siguiente: SSL gratis: deja de pagar.

Academia Web — aprende, copia y construye.