banner
约 1,200 字
4 分钟

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

1.2.3.4

AAAA

域名 → IPv6

2606:...

CNAME

域名 → 另一个域名

别名指向

MX

邮件服务器

收信路由

TXT

文本信息

常用于域名验证、SPF

NS

域名由哪些 DNS 服务器管理

换 DNS 时看它

二、dig 基本用法

bash
dig example.com            # 查 A 记录,显示完整解析过程
dig example.com +short     # 只输出结果 IP,最简洁
dig AAAA example.com       # 查 IPv6
dig MX example.com         # 查邮件记录
dig TXT example.com        # 查文本记录(域名验证常用)
dig @223.5.5.5 example.com # 指定用阿里 DNS 查询

重点看输出里的 ANSWER SECTION:这就是最终答案;SERVER 一行显示实际用了哪个 DNS。

三、nslookup 与 ping

Windows 自带的是 nslookup(dig 需要额外安装):

bash
nslookup example.com
nslookup example.com 223.5.5.5    # 指定 DNS 服务器

快速验证域名通不通也可以直接:

bash
ping example.com          # 能显示解析出的 IP 说明 DNS 正常

四、排查套路

网站打不开时的三步定位

  1. dig 域名 +short——有没有返回 IP?没有 → DNS 问题(域名过期、解析记录错误、DNS 服务器故障)

  2. 返回的 IP 对不对?不对 → 解析记录被改错,去域名控制台检查 A 记录

  3. IP 对但还是打不开 → 不是 DNS 的问题,转向排查服务器和端口(curl -v 或 telnet 80/443)

改了解析怎么验证生效

bash
dig @8.8.8.8 example.com +short    # 问 Google DNS
dig @223.5.5.5 example.com +short  # 问阿里 DNS

各地 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

Google

8.8.8.8 / 8.8.4.4

Cloudflare

1.1.1.1

六、总结

需求

命令

查解析结果

dig 域名 +short

查指定记录

dig MX/TXT/AAAA 域名

指定 DNS 查询

dig @223.5.5.5 域名

看完整链路

dig +trace 域名

Windows 下

nslookup 域名

记住排查口诀:先问 DNS 有没有答,再问答得对不对,最后才查服务器

END