什么是 CNAME 记录?
CNAME 记录把一个主机名别名到另一个规范名称,于是使用目标的 A 和 AAAA 记录来解析地址。它常用于指向 CDN 或 SaaS 提供商的子域名,让你跟随它们的基础设施而无需追踪其 IP 地址。当提供商更换 IP 时,你的 CNAME 会自动继续工作。
CNAME 别名如何解析到地址
CNAME 不存储 IP;它把一个主机名指向另一个。当解析器遇到 CNAME 时,它会在目标名称上重新开始查询,并跟随其 A 或 AAAA 记录直到最终地址。例如,shop.example.com CNAME mystore.shopify.com 意味着对 shop.example.com 的请求会经由 Shopify 的主机名解析。正是这种间接性,使得 CDN 和 SaaS 平台给你一个 CNAME 目标:它们可以自由更换底层 IP,而你的子域名会随之跟进,你这边无需任何改动。
如何解读你的 CNAME 结果
CNAME 结果显示别名主机名及其指向的规范目标,例如 www.example.com CNAME example.com 或 blog.example.com CNAME hosted.ghost.io。要看到最终 IP,请跟随这条链:目标自身的 A 和 AAAA 记录解析出地址。如果某个 CNAME 指向的目标本身又是一个 CNAME,解析器会跟随这条链,不过过长的链会增加查询和延迟。一个指向无任何记录主机名的 CNAME 是损坏的,将无法解析。
常见 CNAME 错误与限制
最重要的规则是你不能在根域名(example.com)上设置 CNAME,因为顶点必须与必需的 NS 和 SOA 记录共存,而 CNAME 不得与同名的其他记录并存。请在顶点改用 A 记录或提供商的 ALIAS/ANAME 功能。你也不能给一个已有 A、MX 或 TXT 记录的主机名添加 CNAME。一个常见故障是在 SaaS 端激活服务之前就把 CNAME 指向其目标,导致它无法解析。