DNS 基础与 dig 排查教程:网站打不开先查它
摘要
网站打不开,先查 DNS 还是先查服务器?本教程介绍 DNS 解析原理与 A/CNAME/MX/TXT 等常见记录类型,演示 dig 与 nslookup 的查询用法(含指定 DNS 服务器),并给出"网站打不开三步定位"和更换解析后的验证方法。
DNS 基础与 dig 排查教程
网站打不开,到底是服务器挂了还是域名解析出了问题?学会 DNS 排查,你就有了网络故障定位的第一把钥匙。本教程介绍 DNS 的基本原理,以及 ISC dig 官方文档中的排查命令。
一、DNS 是什么
DNS(域名系统)负责把 example.com 这样的域名翻译成 IP 地址。一次解析大致经过:本机缓存 → 本地 DNS(运营商或 223.5.5.5 等)→ 根域名服务器 → 顶级域(.com)→ 权威 DNS,逐级查询后返回结果。
常见记录类型:
类型 | 作用 | 示例 |
|---|---|---|
A | 域名 → IPv4 |
|
AAAA | 域名 → IPv6 |
|
CNAME | 域名 → 另一个域名 | 别名指向 |
MX | 邮件服务器 | 收信路由 |
TXT | 文本信息 | 常用于域名验证、SPF |
NS | 域名由哪些 DNS 服务器管理 | 换 DNS 时看它 |
二、dig 基本用法
重点看输出里的 ANSWER SECTION:这就是最终答案;SERVER 一行显示实际用了哪个 DNS。
三、nslookup 与 ping
Windows 自带的是 nslookup(dig 需要额外安装):
快速验证域名通不通也可以直接:
四、排查套路
网站打不开时的三步定位:
dig 域名 +short——有没有返回 IP?没有 → DNS 问题(域名过期、解析记录错误、DNS 服务器故障)返回的 IP 对不对?不对 → 解析记录被改错,去域名控制台检查 A 记录
IP 对但还是打不开 → 不是 DNS 的问题,转向排查服务器和端口(
curl -v或 telnet 80/443)
改了解析怎么验证生效:
各地 DNS 生效时间不一致(TTL 决定缓存时长),换解析后可先用 dig +trace 域名 看完整解析链路。
本机想强制某个域名解析到指定 IP:改 /etc/hosts(Windows 是 C:\Windows\System32\drivers\etc\hosts)。
五、常用的公共 DNS
服务商 | 地址 |
|---|---|
阿里 DNS | 223.5.5.5 / 223.6.6.6 |
腾讯 DNSPod | 119.29.29.29 |
8.8.8.8 / 8.8.4.4 | |
Cloudflare | 1.1.1.1 |
六、总结
需求 | 命令 |
|---|---|
查解析结果 |
|
查指定记录 |
|
指定 DNS 查询 |
|
看完整链路 |
|
Windows 下 |
|
记住排查口诀:先问 DNS 有没有答,再问答得对不对,最后才查服务器。
