CNAME 与 A 记录怎么选
A 记录直接指向 IP,层级最短、没有额外查询;CNAME 指向另一个域名,由对方决定最终返回哪个地址。差别体现在可维护性上:接入 CDN、WAF 这类云服务时,服务方会调整节点与地址,用 CNAME 接入意味着你不需要跟着改配置;反过来,如果下游有基于 IP 的白名单、需要固定入口做备案或专线对接,用 A 记录更清晰。选型本质上是「谁来承担地址变化」的问题。
对比
| 维度 | A 记录 | CNAME |
|---|---|---|
| 指向 | IPv4 地址 | 另一个域名 |
| 调度灵活性 | IP 变化需要改记录 | 服务方调整时无需改 |
| 解析开销 | 一层返回 | 多一跳查询 |
| 典型场景 | 自持固定 IP、白名单对接 | CDN、WAF 与 SaaS 接入 |
基本信息
| 并存限制 | 同一主机名不能同时存在 CNAME 与 A 记录 |
|---|---|
| 根域名限制 | 顶级域名通常不允许配置 CNAME |
| 生效速度 | 取决于原记录 TTL 与权威刷新 |
| 验证方式 | 用 dig 分别查询 A 与 CNAME |
典型使用场景
- 接入 CDN 或 WAF:按服务方要求配置 CNAME 指向分配的域名
- 自建固定入口:内部系统或专线对接用 A 记录指向固定 IP
- SaaS 服务:域名托管在服务商侧,用 CNAME 保持配置稳定
- 迁移过渡:先加 CNAME 并降低 TTL,切换完成后再下线旧记录
对比两种记录返回
对比两种记录返回
dig +short A origin.example.com
dig +short CNAME www.example.com
# 从多个递归服务器复核,排除本地缓存干扰
dig +short A origin.example.com @8.8.8.8需要防火墙白名单或备案接入时,用 A 记录指向固定入口更清晰。
变更时的注意点
记录类型的变更最容易踩两个坑:一是同名冲突,把 CNAME 加到已有 A 记录的主机名上,解析结果变得不可预测,处理时要先删旧记录再加新记录;二是 TTL 没有提前调低,切换后长时间仍有客户端命中旧地址。稳妥的流程是切换前把 TTL 降到较短值并等待其过期,完成切换后观察一段时间,确认流量已全部走新记录,再把 TTL 调回常规值,避免长期低 TTL 带来的额外查询压力。