DNS排查5大利器:dig/nslookup/host/curl--resolve实战手册

📅 2026/7/12 2:29:50
DNS排查5大利器:dig/nslookup/host/curl--resolve实战手册
前言DNS 出了问题怎么办很多运维新人第一反应是ping但ping只能告诉你通不通不能告诉你哪里断了。本文基于实际环境demo.example-corp.com带你掌握 5 个 DNS 排查工具每个命令都有真实输出和逐行解读。一、工具速览工具一句话概括什么时候用dig最权威功能最全深度排查、追踪每一级解析nslookupWindows 自带简单快速查询、切换记录类型host输出最易读快速看 CNAME 链ping老牌基础工具粗判域名通不通curl --resolve运维绝招绕过 DNS 直测指定 CDN 节点二、dig —— 运维最权威的 DNS 诊断工具2.1 速查命令# 快速查 IP dig demo.example-corp.com short ​ # 追踪完整解析路径从根服务器开始 dig demo.example-corp.com trace ​ # 指定 DNS 服务器 dig 114.114.114.114 demo.example-corp.com short ​ # 查特定记录类型 dig example-corp.com NS short dig example-corp.com MX short dig example-corp.com SOA short ​ # 干净输出只留答案段 dig example-corp.com SOA noall answer ​ # IP 反查域名 dig -x 8.8.8.8 short2.2 完整输出拆解执行dig example-corp.com SOA输出分 6 段HEADER 段 —— 查询状态status: NOERROR ✅ 查询成功常见状态状态含义怎么办NOERROR✅ 正常没问题NXDOMAIN❌ 域名不存在域名配错或未注册SERVFAIL❌ 服务器挂了检查权威 DNSREFUSED❌ 拒绝查询ACL 限制QUESTION 段—— 你问了什么;example-corp.com. IN SOAANSWER 段—— 核心答案example-corp.com. 30 IN SOA ns1.clouddns.com. hostmasterexample-corp.com. 2026060512 3600 1200 86400 600AUTHORITY 段—— 权威 DNS 服务器example-corp.com. 25673 IN NS ns1.clouddns.com. example-corp.com. 25673 IN NS ns2.clouddns.com.ADDITIONAL 段—— Glue Records粘附记录DNS 服务器顺便告诉了你 NS 自身的 IP省得你再查ns1.clouddns.com. 19495 IN A 39.103.26.212 云DNS Anycast IP ns2.clouddns.com. 12883 IN A 39.103.26.213统计信息;; Query time: 0 msec ← 内网 DNS 缓存的无需出网 ;; SERVER: 10.126.251.11#53 ← 回答你的是内网 DNS ;; MSG SIZE rcvd: 390 ← 响应包仅 390 字节2.3 反向查询IP → 域名日志分析时特别有用# 公共 DNS 有配置 PTR 记录 dig -x 8.8.8.8 short → dns.google. ​ dig -x 114.114.114.114 short → public1.114dns.com. ​ # CDN 节点一般不配 PTR dig -x 203.0.113.10 short → 空正常现象三、nslookup —— 简单场景 / Windows基础用法# 指定 DNS 服务器查 nslookup demo.example-corp.com 114.114.114.114输出Server: 114.114.114.114 Address: 114.114.114.114#53 ​ Non-authoritative answer: Name: demo.example-corp.com Address: 198.51.100.20 Name: demo.example-corp.com Address: 198.51.100.21 demo.example-corp.com canonical name demo.example-corp.com.cdn-edge.cloudfront-cdn.com.指定记录类型nslookup -typeMX example-corp.com nslookup -typeNS example-corp.com交互模式nslookup # 进入交互 server 114.114.114.114 # 切换 DNS set typeMX # 切换记录类型 example-corp.com # 查询 exit # 退出四、host —— 最简洁的人类友好输出基础用法host demo.example-corp.comdemo.example-corp.com is an alias for demo.example-corp.com.cdn-edge.cloudfront-cdn.com. demo.example-corp.com.cdn-edge.cloudfront-cdn.com is an alias for sx-img-ipv4.geo-cdn.cloudfront-cdn.com. sx-img-ipv4.geo-cdn.cloudfront-cdn.com has address 203.0.113.10 sx-img-ipv4.geo-cdn.cloudfront-cdn.com has address 203.0.113.11CNAME 链一目了然demo.example-corp.com → cdn-edge.cloudfront-cdn.com ← 星云CDN 第一跳 → sx-img-ipv4.geo-cdn.cloudfront-cdn.com ← CDN 调度层 → 203.0.113.10/203.0.113.11 ← CDN 边缘节点三行输出比dig的几十行干净得多。指定类型host -t CNAME demo.example-corp.com host -t SOA example-corp.com host -t MX example-corp.com五、curl --resolve —— 运维绝招5.1 作用绕过 DNS 解析强制 curl 使用你指定的 IP 访问域名。排查 CDN 节点问题的核心手段。5.2 语法curl --resolve 域名:端口:IP https://域名5.3 实战逐个测试 CDN 节点你的 CDN 域名解析到多个 CDN 边缘节点现在想测试某个节点是否正常curl -Iko /dev/null --resolve demo.example-corp.com:443:203.0.113.10 \ https://demo.example-corp.com/ -m 10 -k响应解读HTTP/2 421 server: Edge-Nginx via: edge06.shanghai-ct01 x-response-cache: miss关键信息含义via: edge06.shanghai-ct01上海松江电信 05 号 CDN 节点x-response-cache: miss缓存未命中该请求会回源server: Edge-Nginx火山引擎基于字节跳动的 Nginx5.4 批量测试所有节点for ip in 203.0.113.10 203.0.113.11 198.51.100.20; do echo 测试 $ip curl -sIko /dev/null --resolve demo.example-corp.com:443:$ip \ https://demo.example-corp.com/ -m 5 -k 21 | grep -E HTTP|via|miss done5.5 hosts 文件临时绑定# 临时绑定测试 echo 203.0.113.10 demo.example-corp.com /etc/hosts curl -I https://demo.example-corp.com/ ​ # 测试完恢复 sed -i /demo.example-corp.com/d /etc/hosts六、工具选择决策树遇到 DNS 问题 │ ├── 域名能解析到 IP 吗 │ ├── 能 → curl 看服务是否正常 │ └── 不能 → dig 域名 trace 查哪一步断了 │ ├── 怀疑本地缓存有问题 │ └── dig 114 域名 short │ ├── 想查 CNAME 链 │ └── host -t CNAME 域名 │ ├── 想查 IP 属于哪个节点 │ └── dig -x IP │ └── 怀疑某个 CDN 节点有问题 └── curl --resolve 域名:端口:IP七、附录常用公共 DNS 服务器服务商首选备用114 DNS114.114.114.114114.114.115.115阿里 DNS223.5.5.5223.6.6.6腾讯 DNSPod119.29.29.29—Google DNS8.8.8.88.8.4.4Cloudflare1.1.1.11.0.0.1总结dig trace查链路dig 114绕缓存host看 CNAMEcurl --resolve测节点。把这 4 招练成肌肉记忆日常 DNS 排查就够用了。