域名解析配错,表现出来往往是网站打不开、邮箱收不到信、SSL 证书签不下来。这篇文章说清楚 A、AAAA、CNAME、MX、TXT、NS 这些记录各自管什么,再分别说明阿里云云解析 DNS 和 Cloudflare 后台里怎么添加、怎么改、怎么用 dig 确认生效,最后列出最容易配错的几个地方。

域名解析配错的表现往往不在解析本身:网站打不开,企业邮箱收不到信,SSL 证书签不下来,邮件全进垃圾箱。排查一圈才发现是某条记录的字段填错了位置。这篇文章先把常见记录类型讲清楚,再分别说明阿里云云解析 DNS 和 Cloudflare 两个后台里怎么添加、怎么改、怎么确认记录已经生效。
DNS 解析这一步在做什么
域名是给人看的,服务器只认 IP。DNS 解析就是把域名翻译成目标地址的过程,中间经过好几层缓存,任何一层拿到的结果不对,表现出来就是访问不到。
一次解析请求的完整链路
浏览器 / 邮件客户端
→
本地 DNS 缓存
→
递归解析器
→
权威 DNS
阿里云 / Cloudflare
→
返回记录值
你在阿里云或者 Cloudflare 后台里填的每一条记录,都存放在权威 DNS 上。递归解析器负责帮客户端去问,问到之后按 TTL 缓存在自己那里,缓存没过期就不会再问第二次。这也是改了记录却感觉没生效的原因,之前把 TTL 降到 300 再动记录,就是为了缩短这段等待,原理可以看这篇 迁移 DNS 前为什么建议先把 TTL 降到 300。
常见记录类型各自管什么
日常要配的其实就是下面这几种,先弄清楚每种记录解决什么问题,再看后台的字段就不会填错。
| 记录类型 | 作用 | 值长什么样 | 典型场景 |
|---|---|---|---|
| A | 把域名指向一个 IPv4 地址 | 12.34.56.78 | 网站服务器、VPS |
| AAAA | 把域名指向一个 IPv6 地址 | 2001:db8::1 | 支持 IPv6 的服务器 |
| CNAME | 把域名指向另一个域名,跟着对方变 | mailgun.org 这类目标域名 | 邮件追踪、www 指向主域名、CDN |
| MX | 指定这个域名由哪台服务器收信 | mx1.example.net(前面带优先级数字) | 企业邮箱 |
| TXT | 存放一段文本,多数是给服务商做验证用 | v=spf1 include:… 、v=DKIM1… | SPF、DKIM、DMARC、域名归属验证 |
| NS | 指定这个域名交给哪台 DNS 服务器解析 | ns1.example.com | 更换 DNS 服务商 |
| CAA | 限制哪些机构可以给域名签发证书 | 0 issue “letsencrypt.org” | SSL 证书签发限制 |
| SRV | 指定某个服务的地址和端口 | 优先级 权重 端口 目标主机 | 部分协作工具、游戏服务 |
先确认解析记录托管在哪家
同一个域名,解析记录只会存在于一个地方,就是 NS 记录指向的那家 DNS 服务商。搞错地方,记录填得再对也不会生效。用 dig 查一下 NS 是最快的判断方法:
dig +short NS example.com
返回值里带 cloudflare.com 后缀,说明解析托管在 Cloudflare;带 alidns.com 或 hichina.com 后缀,说明在阿里云云解析 DNS;带 dnspod.net 后缀,说明在腾讯云 DNSPod。如果你的域名在阿里云注册、NS 也还是默认的阿里云地址,那么解析记录应该在阿里云云解析的控制台里改,Cloudflare 后台再怎么配都没用。
在阿里云云解析 DNS 里添加记录
进入阿里云控制台,在域名与网站分类下找到云解析 DNS,选中要配置的域名,点解析设置,再点添加记录。
表单里的字段这样填:
- 记录类型:A、CNAME、MX、TXT、AAAA、CAA 都在同一个下拉里选
- 主机记录:填相对名称,@ 表示主域名本身,www 表示 www 前缀,mail 表示 mail 前缀
- 解析线路:保持默认,按线路分流属于进阶用法,一般用不到
- 记录值:粘贴服务商给出的值,整段复制,不要手工改
- TTL:默认 10 分钟,下拉里可选的最小值以下拉项为准
填完点确认保存记录。
主机记录是最容易填错的一项。要配 mail.example.com,主机记录里写 mail 就够了,把完整域名填进去,阿里云会当成 mail.example.com.example.com 处理,解析自然查不到。子域名和 www 是两个不同的主机记录,@ 和 www 各配一条 A 记录,两个地址才都能打开。
在 Cloudflare 里添加记录
登录 Cloudflare,选中要操作的域名,左侧菜单进入 DNS,点 Records 标签,然后点 Add record。
表单里的字段这样填:
- Type:A、AAAA、CNAME、MX、TXT、NS 或 CAA,选完之后剩下的字段会跟着变
- Name:填 @ 或子域名前缀,Cloudflare 会补全成完整域名并显示在输入框右侧
- IPv4 Address:A 记录填服务器 IP;选 CNAME 时这个位置显示的是 Target,填目标域名
- Proxy Status:决定这条记录走不走 Cloudflare 代理,网站主域名的 A 记录用 Proxied(橙云),邮件记录该怎么选见下面的提醒
- TTL:选 Auto 就用 Cloudflare 的默认值,也可以手动指定
填完点 Save 保存记录。
橙云和灰云的区别只在 A、AAAA、CNAME 三种记录上体现。开橙云,访问请求先到 Cloudflare 再回源,源站 IP 被隐藏,还能顺带拿到缓存和防护;开灰云,访问者直接连你的服务器,Cloudflare 只负责给出 IP。换服务器 IP 时橙云不需要改 DNS,这是它最实用的地方,原因写在 为什么资深开发者更倾向于把域名 DNS 托管到 Cloudflare 里。
风险提示 Warning
邮件相关的记录一律用灰云。发信域名验证用的 CNAME 和 TXT 记录开成橙云,邮件服务商会查不到真实记录值,验证一直不通过;MX 记录本身不支持代理,Cloudflare 也会强制按 DNS Only 处理。反过来说,网站主域名的 A 记录开橙云没有问题。
记录加完怎么确认生效
别只看自己的浏览器,本地缓存和递归解析器的缓存都会骗人。用 dig 直接查权威结果最省事,指定公共 DNS 还能排除本地网络的影响:
# 查 A 记录
dig +short www.example.com
# 指定公共 DNS 查询,排除本地缓存
dig +short @1.1.1.1 www.example.com
# 查邮件记录
dig +short MX example.com
dig +short TXT example.com
返回值和后台填的内容一致,就说明记录已经生效。返回空结果,先回后台确认记录真的保存了,再确认查的是不是 NS 指向的那家服务商。返回值还是旧 IP,说明缓存还没到期,等 TTL 结束再查;这就是为什么改记录前建议先把 TTL 调低,尤其涉及迁移的时候。
几个容易配错的点
- 主机记录填了完整域名,正确做法是只填前缀,@ 留空表示主域名本身
- 只配了 www,主域名没配,用户输 example.com 打不开
- 同一个主机记录下同时存在 CNAME 和其他记录,规范不允许,后台通常会直接报冲突
- 邮件相关记录开了 Cloudflare 代理,MX 和 TXT 用不了代理,CNAME 开了就验证失败
- TXT 记录的值分段粘贴导致中间多了空格,或者被后台自动加的引号破坏,粘贴前先看一遍
- 企业邮箱的 MX 记录漏了优先级数字,或者几条 MX 的优先级填成一样
- 删记录前没确认这条记录还有谁在用,追踪域名被删会让邮件打开率统计直接归零
结语
解析记录本身不复杂,难点在于每条记录的字段含义在不同服务商那里叫法不一样,出错的表现又常常出现在别的地方。按上面两个后台的字段说明填一遍,再用 dig 验证结果,绝大多数解析问题都能自己解决。如果 A 记录要指向一台服务器,而你手上还没有,可以先买一台 VPS:访客主要在海外,买 Hostinger 这类海外服务商的 VPS,控制面板里就能拿到服务器 IP;访客主要在国内,腾讯云轻量应用服务器 的节点离用户更近。
接下来如果是要给发信服务配解析,可以接着看 如何设置 Mailgun 的发信域名,里面用到的主要是 CNAME 和 TXT 两类记录。邮件能不能进收件箱,还取决于 SPF、DKIM、DMARC 这三条记录,完整配置方法在 SPF、DKIM、DMARC 配置教程 里;只想搭一个自己的域名邮箱,MX 记录的填法在 如何设置企业邮箱的 MX 记录 这篇里。
每周四送达。
主机评测、建站对比、性能优化技巧和插件推荐 — 每周为 WordPress 站长和建站者精选。
