主题
解析记录怎么加
在域名详情页点「新增记录」。一条记录由四部分组成:名称、类型、内容、TTL。
名称怎么写
| 你写的 | 实际含义 |
|---|---|
@ | 域名本身,例如 myname.9k.beer |
www | www.myname.9k.beer |
* | 泛解析:任何没被其它记录命中的名字都走这条 |
_dmarc | 下划线开头的名字(DMARC、DKIM、ACME 校验常用) |
名称只能是字母、数字、连字符 - 和下划线 _,用点分段。
名称填的是「相对这一级」,不是完整域名
想给域名本身(例如 admin.9k.beer)加记录,名称填 @。 填 admin 会建到 admin.admin.9k.beer 上 —— 这是最容易踩的一个坑: 你在页面上已经选了 admin.9k.beer,下意识就在名称里又写了一遍 admin。
保存前看一眼输入框下面那行灰字「将创建:…」,它会把最终的全名显示出来。 查记录的时候也要按那个全名去查,别按你心里的那个。
支持的类型
| 类型 | 用来做什么 | 内容长什么样 |
|---|---|---|
A | 指向 IPv4 地址 | 1.2.3.4 |
AAAA | 指向 IPv6 地址 | 2409:8a3c::1 |
CNAME | 指向另一个域名(别名) | target.example.com |
MX | 邮件服务器(另有优先级) | mail.example.com + 优先级 10 |
TXT | 任意文本:SPF、DKIM、域名验证 | v=spf1 -all |
NS | 委派给别的名称服务器 | ns1.example.com |
SRV | 服务发现(另有优先级 / 权重 / 端口) | sip.example.com |
CAA | 限制哪些 CA 能给这个域名签证书 | 0 issue "letsencrypt.org" |
PTR | 反向解析(一般用不到) | host.example.com |
HTTPS / SVCB | HTTP/3、ECH 等服务绑定 | 1 . alpn="h2,h3" |
TLSA | 证书关联(DANE,需要 DNSSEC) | 3 1 1 <十六进制摘要> |
SSHFP | SSH 主机密钥指纹 | 4 2 <十六进制指纹> |
CNAME 的两条规矩
- 同一个名字上,CNAME 不能和任何其它记录共存(包括第二条 CNAME)。 这是 DNS 协议的规定(RFC 1034 / 2181):名字上有 CNAME,其它类型的查询都会返回它, 那些记录等于白加。要加 CNAME,先把这个名字上的其它记录删掉。
- 域名本身(
@)上的 CNAME 由平台替你实现。 顶点必须留给 SOA/NS, 所以你填了顶点 CNAME 之后,平台会在后台用一条合成记录来回答 CNAME 查询 —— 你正常填就行,不用再做别的(见下一节)。
平台会在保存时就拦住"共存"那种情况,并提示你怎么改 —— 不会出现"看起来保存成功、实际解析坏了"。
想让域名本身指向别处(顶点 CNAME)
典型场景:你在 Cloudflare Pages / Vercel 上做了个站,域名是 xxx.pages.dev, 想让 myname.9k.beer 本身(不是 www)打开这个站 —— 那就加一条 CNAME:
| 字段 | 填什么 |
|---|---|
| 名称 | @(表示域名本身) |
| 类型 | CNAME |
| 内容 | myapp.pages.dev(完整域名,不要写 IP) |
顶点放 CNAME 在我们这儿是允许的。 DNS 协议确实要求 zone 顶点留给 SOA/NS, 所以平台在后台用一条合成记录(PowerDNS 的 LUA)来回答 —— 对外和一条真 CNAME 完全一样:
bash
dig @ns1.hapdns.com myname.9k.beer CNAME +short # → myapp.pages.dev.
dig @ns1.hapdns.com myname.9k.beer A +short # → 同一条 CNAME,解析器自己跟过去Cloudflare Pages、Vercel 这类平台的域名校验读的就是这条 CNAME,所以不需要 把域名交给别家 DNS。
要留意的几点:
- 目标域名解析不了,你这个域名也解析不出来(不是"少一条记录",而是整个域名没答案)。 目标站下线、被墙、域名过期,都会直接反映到这里。
- 同一个名字上 CNAME 不能和别的记录共存(含第二条 CNAME)。所以顶点放了 CNAME, 就不能再在顶点放 A/TXT/MX 之类 —— 把它们放在别的名字上(例如
www)。 - 开了 DNSSEC 的域名不能用顶点 CNAME。 合成出来的答案不在签名范围内, 验证型的解析器会把它当成伪造数据、域名反而打不开。平台会拒绝并提示你二选一。
不确定该用哪个?记住这一句就够了:
- 指到别处的一个域名 →
CNAME(顶点也可以); - 指到一个固定 IP →
A/AAAA; - 想让别的服务商接管整个域名的解析 → 用「DNS 服务器」委派。
Cloudflare Pages 的具体步骤见这里。
TXT 里带分号、带空格怎么办
直接填就行,引号由平台按 DNS 规范补上。例如 DMARC 填:
text
v=DMARC1; p=none; rua=mailto:dmarc@example.com保存在服务器上的形式是带引号的 "v=DMARC1; p=none; ..."。 不要自己加引号,否则会被当成内容的一部分。
超过 255 字节的长值(很多 DKIM 公钥就是)平台会自动按 DNS 规则分段,不用你操心。
TTL 怎么选
| TTL | 什么时候用 |
|---|---|
300(5 分钟) | 正在调试、可能要改;生效快 |
3600(1 小时,默认) | 日常使用 |
86400(1 天) | 很稳定的记录,减少查询量 |
注意:改记录不会让已经缓存的解析立刻更新,要等旧 TTL 过期。所以调试期把 TTL 调小。
批量操作
- 记录表格左侧可以勾选,批量删除;
- 域名详情页支持导入 / 导出(BIND zone 格式和 CSV),迁移的时候很有用;
- 想查某个域名有没有被注册(或看看它属于谁),用WHOIS 查询。
加完记录一定要这样验证
bash
dig @ns1.hapdns.com <你的域名> <类型> +short直接问权威服务器可以跳过缓存,立刻确认记录到底写对了没有。