域名注册后如何解析:A、CNAME、MX 记录设置与生效时间

摘要:域名注册后如何设置 DNS 解析:DNS 服务器(NS)是什么,A / AAAA / CNAME / MX / TXT / CAA 记录分别填什么,TTL 与“生效时间”的关系,以及如何检查解析是否已经生效。

最后更新: · 约 3 分钟读完 · 文中政策以官方原文为准

注册域名只是取得了名字的使用权,要让网站、邮箱能用,还要在 DNS 服务器 上添加“解析记录”。

第一步:确认域名使用哪家 DNS 服务器(NS)

注册后,域名默认使用注册商提供的免费 DNS(例如阿里云域名用阿里云云解析,腾讯云域名用 DNSPod)。如果想换成 Cloudflare 等其他 DNS 服务商,需要在注册商后台把“DNS 服务器 / Nameserver”改成新服务商给你的地址。

用 WHOIS 查询 查看你的域名,“DNS 服务器”一栏就是当前生效的 NS。解析记录要添加在这里显示的那家服务商,加在别处不会生效。

第二步:添加常用记录

记录类型 用途 记录值示例
A 把名字指向 IPv4 地址 203.0.113.10
AAAA 指向 IPv6 地址 2001:db8::10
CNAME 指向另一个域名(常用于 CDN、对象存储) example.cdn-provider.com
MX 收邮件的服务器,数字越小优先级越高 10 mx1.mail-provider.com
TXT 文本信息,常用于 SPF、域名所有权验证 v=spf1 include:_spf.example.net ~all
CAA 只允许指定的 CA 为该域名签发证书 0 issue "letsencrypt.org"

“主机记录”填 @ 代表域名本身(如 example.com),填 www 代表 www.example.com,填 * 是泛解析。

第三步:TTL 与生效时间

TTL(Time To Live)是解析结果允许被缓存的秒数。新添加的记录一般几分钟内就能查到;修改已有记录时,各地公共 DNS 会继续返回旧值,直到旧 TTL 到期。所以计划迁移服务器前,可以先把 TTL 改小(如 600 秒),等旧 TTL 过去再改记录。

第四步:检查是否生效

用本站的 DNS 查询与生效检测 输入域名,可以一次看到 Cloudflare、Google、阿里 AliDNS、腾讯 DNSPod、Quad9 等公共解析器和权威 DNS 返回的结果是否一致;网站启用 HTTPS 后,可用 SSL 证书检测 确认证书是否正确。需要 ping、路由追踪等网络测试,可使用 Ping.GD。

如果还没有服务器,可以参考 VPS 主机推荐;在中国大陆服务器上建站前,请先了解 ICP 备案。

常见问题

改了解析为什么还没生效?

公共解析器会按记录原来的 TTL 缓存旧结果,缓存过期前仍返回旧值。把 TTL 调小要提前做,等旧 TTL 过去后再改记录;改 NS 服务器则还要等上级(注册局)的 NS 记录缓存过期,通常最长 48 小时。

根域名(不带 www)能设置 CNAME 吗?

按 DNS 标准,CNAME 不能和其他记录共存,而根域名必须有 NS、SOA 记录,所以根域名不能设 CNAME。部分 DNS 服务商提供“CNAME 拉平 / ALIAS”功能来变通。

同一个主机记录能同时设 A 和 CNAME 吗?

不能。一个名字有了 CNAME 就不能再有其他类型的记录(RFC 1034 第 3.6.2 节)。

参考来源

  1. RFC 1034:Domain Names - Concepts and Facilities
  2. RFC 1035:Domain Names - Implementation and Specification
  3. RFC 8659:DNS Certification Authority Authorization (CAA)
  4. RFC 7208:Sender Policy Framework (SPF)