DNS 与网络排查命令手册

更新于 2026年7月25日

适用人群:站长、运维人员在网站无法访问或域名解析异常时进行排查

核心概念

常用排查命令表

命令 用途 示例
dig 查询 DNS 记录(A/AAAA/MX/TXT/NS 等),信息最详细 dig example.com A
nslookup 查询 DNS 记录,Windows/Linux 通用,输出较简洁 nslookup example.com
ping 测试与目标主机的基础连通性和延迟 ping example.com
traceroute(Linux/Mac)/tracert(Windows) 显示到目标主机经过的每一跳路由,定位网络中断位置 traceroute example.com
curl 发送 HTTP(S) 请求,查看状态码、响应头、内容 curl -I https://example.com
telnet 测试指定端口是否可连接(TCP 三次握手) telnet example.com 443
nc(netcat) 端口扫描/连通性测试,功能比 telnet 更强 nc -zv example.com 443

排查思路(由外到内)

  1. 先用 dig/nslookup 确认域名能否正确解析到预期 IP,判断是否为 DNS 问题。
  2. ping 确认到目标 IP 的基础网络是否连通(部分服务器出于安全策略会禁 ping,无响应不代表不通)。
  3. traceroute/tracert 查看具体在哪一跳中断或延迟异常,判断是本地网络、运营商还是目标机房问题。
  4. telnet/nc 测试具体端口(80/443等)是否开放,排除防火墙拦截。
  5. curl -I 查看 HTTP 响应状态码和响应头,判断是网络层还是应用层(如 Web 服务配置、证书)问题。

dig 常用参数

参数 说明
dig example.com A 查询 A 记录
dig example.com MX 查询邮件交换记录
dig example.com NS 查询域名服务器记录
dig example.com +short 只输出简洁结果
dig @8.8.8.8 example.com 指定使用 Google DNS 服务器查询
dig -x 1.2.3.4 反向解析 IP 对应域名

实际示例

# 查询 A 记录,只看结果
dig example.com +short

# 指定用 Google DNS 查询,排除本地 DNS 缓存干扰
dig @8.8.8.8 example.com A

# 测试到目标服务器的连通性和延迟
ping -c 4 example.com

# 查看经过的路由节点,定位网络中断位置
traceroute example.com

# 查看 HTTP 响应状态码和响应头
curl -I https://example.com

# 测试 443 端口是否开放
nc -zv example.com 443

对应工具

常见问题

ping 不通是不是网站就打不开?
不一定,很多服务器和云厂商出于安全策略禁用了 ICMP(ping)响应,ping 不通不代表 Web 服务不可用,应进一步用 curl 或 telnet 测试实际的 HTTP/HTTPS 端口。
dig 和 nslookup 该用哪个?
两者都能查 DNS 记录,dig 输出更详细(如 TTL、权威服务器信息),排查复杂问题优先用 dig;nslookup 更简洁,适合快速查一下解析结果,也是 Windows 自带工具。
换了 DNS 记录多久生效,怎么验证?
生效时间受 TTL 和各地 DNS 缓存影响,通常几分钟到 48 小时不等,具体以域名注册商/DNS 服务商说明为准;可用 `dig @8.8.8.8 域名` 指定公共 DNS 直接查询,绕开本地缓存验证是否已更新。

相关教程

相关文章

官方资料来源