一、常见记录类型
| 类型 | 作用 | 示例 |
|---|---|---|
A | 域名 → IPv4 | www → 203.0.113.10 |
AAAA | 域名 → IPv6 | www → 2001:db8::1 |
CNAME | 域名 → 另一个域名 | cdn → xxx.cdn.com |
MX | 邮件服务器 | @ → mx1.example.com(带优先级) |
TXT | 文本校验(SPF、域名验证) | @ → v=spf1 ... |
NS | 该域由哪些 DNS 服务器负责 | 由注册商指定 |
CAA | 允许哪些 CA 签发证书 | 可选,增强安全 |
要点:
- CNAME 不能与其它记录共存于同一主机名(不能既 CNAME 又 A)。
- 根域名(
@)通常不能用 CNAME,用 A 记录或厂商提供的 ALIAS/ANAME。 MX必须指向域名,不能指向 IP。
二、TTL 决定「等多久」
TTL(Time To Live)是缓存有效期,单位秒。常见 600(10 分钟)、3600(1 小时)、86400(1 天)。
- 改解析后,各地递归 DNS 会继续用缓存直到过期,所以生效时间取决于原 TTL。
- 迁移前一天的技巧:先把 TTL 调小(如 300),等旧 TTL 过期,再改记录,切换就很快。
- 切换稳定后再把 TTL 调回较大值,减少查询压力。
三、用什么查
dig www.it586.cn A +short
dig www.it586.cn @8.8.8.8 # 指定 DNS 服务器
dig +trace www.it586.cn # 从根开始追踪解析链路
dig MX example.com
nslookup www.it586.cn # 简单查询
host www.it586.cn
dig +trace 是排查「到底哪一层错了」的利器:能看到根 → 顶级域 → 权威服务器的完整过程。
指定不同 DNS 服务器对比,能判断是「权威记录错了」还是「本地/运营商缓存没更新」:
- 查权威服务器(
dig @ns1.你的DNS.com 域名)得到的是真实记录。 - 查
8.8.8.8、114.114.114.114得到的是缓存结果。
两者不一致,就是缓存问题,等 TTL 过期即可。
四、改完不生效的六种原因
- TTL 未过期:最常见,等或换 DNS 服务器验证。
- 本地 DNS 缓存:
ipconfig /flushdns(Windows)、sudo dscacheutil -flushcache(macOS)、sudo systemd-resolve --flush-caches(Linux)。 - 浏览器缓存:Chrome 有自己的 DNS 缓存,
chrome://net-internals/#dns清一下。 - hosts 文件:本地写过映射,优先于 DNS。
- 记录本身没保存/没生效:回控制台确认状态是「正常」。
- 运营商缓存:部分地区递归 DNS 缓存时间长,只能等。
五、CDN 接入的 CNAME
接入 CDN 后,通常要把 www 的 CNAME 指向厂商给的域名:
www CNAME www.it586.cn.cdn-provider.com
注意事项:
- 根域名的 CNAME 需要厂商支持(ALIAS/ANAME),否则用 A 记录指向 CDN 提供的 IP。
- 切换期间保持旧记录可用,避免解析空窗。
- 证书要在 CDN 侧配置(或回源),否则 HTTPS 报错。
六、邮件相关记录
发信经常因为 DNS 配置不全进垃圾箱:
@ TXT "v=spf1 include:_spf.example.com ~all"
_dmarc TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"
- SPF:声明哪些服务器可以代你发信。一个域名只能有一条 SPF 记录。
- DKIM:用选择器子域名的 TXT 记录放公钥。
- DMARC:基于 SPF/DKIM 的结果决定处置策略,建议从
p=none开始观察。
七、安全与规范
- 开启注册商的双因素,防止域名被转移。
- 开启 Registry Lock(如有),防域名劫持。
- 定期检查是否有陌生的子域解析(可能被用于钓鱼)。
- 备案信息与解析的服务器要一致(国内要求)。
八、快速自检
需要一次性看某域名的解析与 HTTP 状态,用 域名/IP 检测;确认 IP 属段用 CIDR 计算;排查端口通不通用 端口检测。
小结
A 指 IP、CNAME 指域名、MX 管邮件;改解析后生效时间由 TTL 决定,迁移前先调小 TTL;用 dig @权威服务器 与 @8.8.8.8 对比区分「记录错」还是「缓存旧」;CDN 接入注意根域名与证书。