dig:详细,推荐
dig example.com # 默认 A 记录
dig example.com +short # 只看结果 IP
dig example.com A # IPv4
dig example.com AAAA # IPv6
dig example.com MX # 邮件服务器
dig example.com TXT # TXT 记录(SPF / 验证用)
dig example.com NS # 域名服务器
dig example.com CNAME # 别名
dig example.com ANY # 所有(多数 DNS 现在拒绝)
dig +trace example.com # 递归追踪(看哪个 DNS 解的)
dig @8.8.8.8 example.com # 指定 DNS server
dig -x 8.8.8.8 # 反向解析(IP → 域名)
实战
# 看 DNS 是否生效
dig my-new-site.com +short
# 1.2.3.4
# 看 MX 记录(邮件服务器)
dig example.com MX +short
# 10 mx1.example.com.
# 20 mx2.example.com.
# 看 CNAME 链
dig www.example.com
# www.example.com. CNAME example.com.
# 看某 DNS 服务器是否正确解析
dig @114.114.114.114 example.com +short
# 验证 DNSSEC
dig +dnssec example.com
nslookup:简单
nslookup example.com
nslookup example.com 8.8.8.8 # 指定 DNS
nslookup -type=MX example.com
nslookup 更简单但信息少——dig 是真正的工具。
host:第三种
host example.com
host -t MX example.com
host -a example.com # 所有类型
host 介于两者之间,输出简洁。
实战:排查 DNS 问题
# 1. 本地能解析吗
dig example.com
# 2. 换 DNS 试
dig @8.8.8.8 example.com
# 3. 看本机 DNS 配置
cat /etc/resolv.conf
resolvectl status
# 4. 看是否走 hosts
grep example.com /etc/hosts
# 5. 清缓存
sudo resolvectl flush-caches # systemd-resolved
sudo systemd-resolve --flush-caches # 老版本
看每条 DNS 记录的 TTL
dig example.com
# ;; ANSWER SECTION:
# example.com. 300 IN A 1.2.3.4
# ↑
# TTL 秒数:300 秒 = 5 分钟缓存
TTL 影响改记录后多久全网生效——改之前先把 TTL 降到 60,等老记录过期再切。
坑
- DNS 是递归的——你的 DNS server / 上游 DNS / 浏览器 各自有缓存
- 改 DNS 后等几分钟到几小时才看到——别马上断定是 DNS 没生效
- 一些公共 DNS(特别是国内)解析慢或不准——多 DNS 试