0aa8fe6
这次没有正文改动。
这是 tls/DNS 记录与解析排查.md 的改动记录。后台每次保存都会留一份快照,
这里显示的是快照之间的差异,不会混入其他文章的改动。
还没有后台修改记录。
下面是 Git 里的提交,可能包含其他文章的改动(因为一次提交会带上工作区所有变化)。
0aa8fe6
这次没有正文改动。
e4d2cd0
@@ -0,0 +1,61 @@ +--- +tags: [DNS, 域名, 解析] +order: 20 +--- + +# DNS 记录与解析排查 + +## 场景 + +内部系统换 IP 了,域名还指着旧的;或者新域名解析不生效。 + +## 前置条件 + +- 有域名的管理权限 +- 知道当前解析值 +- 了解 TTL 的影响 + +## 配置 + +常见记录类型: + +| 类型 | 用途 | 例子 | +| --- | --- | --- | +| A | 域名 → IPv4 | `kb.example.com → 10.0.0.10` | +| AAAA | 域名 → IPv6 | `kb.example.com → 2001:db8::10` | +| CNAME | 别名 | `www → kb.example.com` | +| MX | 邮件 | `mail.example.com` | +| TXT | 验证 / SPF | `v=spf1 ...` | +| NS | 委派 | `ns1.example.com` | + +修改流程:先在 DNS 服务商后台改记录,**把 TTL 提前调小**(比如 300 秒),观察没问题再恢复。 + +## 验证 + +```bash +dig +short kb.example.com +dig kb.example.com @8.8.8.8 +dig +trace kb.example.com +nslookup kb.example.com +resolvectl query kb.example.com # systemd-resolved +``` + +本机解析优先级: + +```bash +cat /etc/resolv.conf +cat /etc/nsswitch.conf | grep hosts +``` + +## 回滚 + +改回原来的记录值即可,但要等 TTL 过期。 + +## 坑 + +- **TTL 是缓存时间**,改了记录不会立刻全网生效,之前调小 TTL 很重要。 +- CNAME 不能和 MX/TXT 同时存在于同一记录名上。 +- 内网 DNS 和公网 DNS 是两套,改错了地方等于没改。 +- `/etc/hosts` 优先级高于 DNS,排查时先看。 +- 解析到 IPv6 优先,但机器没 IPv6 路由,表现是「解析得到却连不上」。 +- 域名过期或者实名认证没通过,解析会被停。