Compare Memo
Vercel 域名绑定:CNAME vs A(为什么 diary 用 CNAME)
2026-01-22 · Zon · diary.zondev.top → Vercel
把记录类型选对,减少验证与运维摩擦
解释 CNAME 与 A 记录在 Vercel 场景下的差异、适用边界,以及为什么对
diary.zondev.top 我更推荐
CNAME diary → cname.vercel-dns.com(A 记录是可行备选)。
TL;DR
-
对
diary.zondev.top这种子域名:优先用 CNAME →cname.vercel-dns.com(更“语义正确”,也更灵活)。 -
A →
76.76.21.21也能用(Vercel 的 Anycast IP),但本质是“把解析钉死到一个 IP”。 - 两者不要同时配;尤其不要同时存在 CNAME + A/AAAA(会导致验证/解析冲突)。
- 如果你用 Cloudflare 等代理(橙云):先切到 DNS only(灰云)完成 Vercel 验证,再决定是否打开代理。
区别速查
CNAME · Alias 到 Vercel
diary → cname.vercel-dns.com
- 最适合:子域名(
xxx.zondev.top) - 优点:Vercel 可在后台调整解析目标;你无需跟着改 IP
- 限制:同名不能再挂其它记录(同名 TXT/MX/AAAA 等都不行)
- 代价:DNS 解析多一跳(通常可忽略)
A · 直指 Vercel IP
diary → 76.76.21.21
- 最适合:根域(apex)或你的 DNS 不方便配 CNAME 时
- 优点:解析路径更直接;可与 TXT 等同名记录并存
- 限制:理论上是“固定到 IP”(Vercel IP 极稳定,但仍是硬编码)
- 注意:不要同时存在 AAAA 指向其它目标
一张表讲清楚
| 维度 | CNAME diary → cname.vercel-dns.com | A diary → 76.76.21.21 |
|---|---|---|
| 语义 | “别名”到 Vercel(更贴近 DNS 设计初衷) | “地址”直达 IP(更硬、更直接) |
| 子域名 | ✅ 推荐 | ✅ 可行 |
| 根域(apex) | ❌ 传统 DNS 不允许(除非提供商做 CNAME flattening) | ✅ 常用 |
| 同名记录共存 | ❌(CNAME 与任何同名记录互斥) | ✅(可与 TXT 等同名共存,避免冲突即可) |
| 运维/迁移 | 更省心:Vercel 可调整目标,你不跟随改 IP | 稳定但更“钉死”:你显式维护 IP |
为什么这次我写 CNAME
你的关键变量
-
你绑定的是
diary.zondev.top—— 它是子域名,最标准的做法就是 CNAME。 -
Vercel 对子域名的“官方惯用入口”就是
cname.vercel-dns.com;让平台保留更多后端调整空间。 -
vercel-ship里出现 A 记录并不矛盾:它的设计就是“以 Vercel inspect 输出为准”,而 Vercel 在不同域名形态/提供商下可能给出 CNAME 或 A 两种可行配置。
图解:解析路径与体验差异
CNAME 体感评分(越高越好)
A 体感评分(越高越好)
常见坑(导致 “Invalid Configuration” 的 Top 4)
-
同名冲突:
diary同时存在 CNAME 和 A/AAAA,或指向不同目标(Vercel 会判定配置不一致)。 - Cloudflare 代理:橙云会把权威解析“遮住”,Vercel 可能看不到你配置的 CNAME/A。先灰云验证,再按需开代理。
- TTL/生效延迟:改完 DNS 后几分钟到数小时都可能;先别反复改来改去。
-
误把根域当子域:
zondev.top(apex)与diary.zondev.top(subdomain)是两套规则。
Sources(未在线核验)
Closing Summary
你现在的场景(diary.zondev.top)用 CNAME 是最“标准且省心”的默认值;如果你更希望“直指一个入口”,也可以用
A → 76.76.21.21。关键是:只选一种,并确保 Cloudflare 代理不干扰验证。
One next action:在 DNS 服务商里先配
CNAME diary → cname.vercel-dns.com(或备选 A diary → 76.76.21.21),并保持 DNS only,等待 Vercel 变为 Verified。
对子域名:优先 CNAME;对根域:用 A/ALIAS。
— Practical DNS rule for Vercel