DNS域名解析问题排查

域名结构

{主机名}.{次级域名}.{域名}.{根域名}
host.sld.tld.root

主机名 次级域名 域名 根域名
host. sld. tld. root

几种常见的解析类型:

记录类型 中文名称 全称 / 英文名称 用途说明 备注
A 地址记录 Address Record 将域名解析为 IPv4 地址(如:example.com → 192.0.2.1) 最基础的 DNS 记录,几乎所有网站都需要
AAAA IPv6 地址记录 IPv6 Address Record 将域名解析为 IPv6 地址(如:example.com → 2001:db8::1) 用于支持 IPv6 网络环境
CNAME 规范名称记录(别名) Canonical Name Record 将一个域名指向另一个域名(不能与其它记录共存于同一名称) 不能用于根域名(如 example.com);不能与其他记录(如 MX、TXT)同名共存
MX 邮件交换记录 Mail Exchange Record 指定接收该域名邮件的邮件服务器地址(需配合优先级使用) 优先级数值越小优先级越高;必须指向 A 或 AAAA 记录,不能指向 CNAME
TXT 文本记录 Text Record 存储任意文本信息,常用于 SPF、DKIM、DMARC 等邮件验证或域名所有权验证 单条记录长度有限(通常 ≤255 字符),可多条拼接
NS 域名服务器记录 Name Server Record 指定该域名由哪些 DNS 服务器进行解析 子域可设置独立 NS,实现 DNS 委派
SOA 起始授权记录 Start of Authority Record 标识区域的权威起始信息,包含主 DNS、管理员邮箱、序列号、刷新时间等 每个 DNS 区域有且仅有一个 SOA 记录
PTR 指针记录 Pointer Record 用于反向 DNS 查询,将 IP 地址解析为域名(常用于邮件服务器验证) 通常由 IP 地址所有者(如 ISP)配置,不在普通域名 DNS 中设置
SRV 服务定位记录 Service Record 指定提供特定服务的服务器位置(如 _sip._tcp.example.com → server:port) 常用于 VoIP、LDAP、Kubernetes 等服务发现场景
CAA 证书颁发机构授权记录 Certification Authority Authorization 指定哪些证书颁发机构(CA)可以为该域名签发 SSL/TLS 证书 可防止未授权 CA 错误签发证书;支持多个 CAA 记录
DS 委派签名记录 Delegation Signer Record 用于 DNSSEC,指定子域的公钥指纹 通常在父域中配置,用于建立信任链
DNSKEY DNS 密钥记录 DNS Key Record 存储用于 DNSSEC 验证的公钥 与 RRSIG、NSEC/NSEC3 配合使用,保障 DNS 数据完整性
NAPTR 命名机构指针记录 Naming Authority Pointer 用于动态委托发现系统(如 ENUM),支持正则表达式重写 主要用于电信和 VoIP 领域(如 E.164 号码映射)
SPF 发件人策略框架记录(已弃用) Sender Policy Framework 原用于防止垃圾邮件伪造发件人,现推荐使用 TXT 记录实现 SPF RFC 7208 已废弃 SPF 记录类型(TYPE 99),应使用 TXT 记录
HTTPS HTTPS 服务绑定记录 HTTPS Record (RFC 9460) 用于 HTTP/3 和 SVCB,支持服务绑定和参数传递(如 ALPN、端口等) 支持“Alt-Svc”功能替代方案,提升连接效率;浏览器逐步支持中
+ HTTPS 和 SVCB 是较新的标准(2023 年后逐步部署),用于提升 Web 性能与安全。
SVCB 服务绑定记录 Service Binding Record 通用服务绑定记录,HTTPS 是其特例 可用于非 Web 服务(如 DoH、QUIC)的服务发现与参数协商
+ HTTPS 和 SVCB 是较新的标准(2023 年后逐步部署),用于提升 Web 性能与安全。

获取13台根域服务器地址

# 使用dig获取根域服务器地址
dig . NS

# 使用nslookup获取根域地址
nslookup -type=ns .

在这里插入图片描述

192.203.230.10    e.root-servers.net    
202.12.27.33      m.root-servers.net    
199.7.91.13       d.root-servers.net    
192.36.148.17     i.root-servers.net    
192.112.36.4      g.root-servers.net    
170.247.170.2     b.root-servers.net    
198.97.190.53     h.root-servers.net    
192.5.5.241       f.root-servers.net    
192.33.4.12       c.root-servers.net    
198.41.0.4        a.root-servers.net    
192.58.128.30     j.root-servers.net    
193.0.14.129      k.root-servers.net    
199.7.83.42       l.root-servers.net    

dig常见用法

https://blog.csdn.net/omaidb/article/details/128833171


nslookup常见用法

https://blog.csdn.net/omaidb/article/details/128832938


DNS报文结构

DNS报文是DNS协议中用于传输DNS查询响应信息的数据格式,它由DNS头部DNS数据两部分组成。


DNS报文-头部

DNS头部包含了12字节,具体字段如下:

报文ID(2字节):用于标识DNS报文,由客户端随机生成。
标志(2字节):用于表示DNS报文的类型和查询方式等信息。
问题数(2字节):表示DNS报文中查询的问题数。
回答数(2字节):表示DNS报文中回答的资源记录数。
权威数(2字节):表示DNS报文中权威资源记录数。
附加数(2字节):表示DNS报文中附加资源记录数。
在这里插入图片描述

Flags QR opcode AA TC RD RA (zero) rcode(Response Code)响应码
1 4 1 1 1 1 3 4

DNS报文中的Rcode是指响应码(Response Code),用于表示DNS服务器查询请求响应结果Rcode是一个4位(bit)的二进制数,共有16种可能的取值,每种取值都表示不同的响应结果。常见的Rcode取值及其含义如下:

  • 0:没有错误,查询成功。
  • 1:格式错误,DNS报文格式不正确。
  • 2:服务器错误,DNS服务器出现错误。
  • 3:域名错误,查询的域名不存在。
  • 4:查询类型不支持,DNS服务器不支持查询类型。
  • 5:拒绝查询,DNS服务器拒绝查询请求。
  • 6-15:保留值,暂未使用。

DNS服务器接收到查询请求后,会根据查询请求的内容进行查询,并生成响应报文响应报文中的Rcode字段表示查询结果的状态,例如:

  • 查询成功
  • 查询失败
  • 查询类型不支持

等。

客户端可以根据Rcode字段的取来判断查询结果的状态,并进行相应的处理。

需要注意的是,Rcode字段只表示DNS服务器查询请求响应结果,而不表示查询结果的准确性。查询结果的准确性取决于DNS服务器的配置和缓存情况,以及查询请求的来源和网络环境等因素。因此,在实际应用中,应该根据实际情况进行查询结果的验证和处理。


查询

在这里插入图片描述


响应

在这里插入图片描述


DNS报文格式-正文

DNS数据部分包含了查询响应的具体信息,包括查询的域名查询类型查询类别等信息。DNS数据部分的长度内容根据查询响应的具体情况而定,可以包含多个资源记录。

需要注意的是,DNS报文的长度不能超过UDP协议最大长度,通常为512字节。如果DNS报文的长度超过了UDP协议的最大长度,则需要使用TCP协议进行传输。

Queries区域
在这里插入图片描述
资源记录区域(包括回答区域授权区域附加区域)
在这里插入图片描述


查询

在这里插入图片描述


响应

在这里插入图片描述


域名被"RST 重置,疑似SNI阻断"特征

  • 连接被重置
  • ERR_CONNECTION_RESET
    image.png

检测IP是否被"永久限制"

ping 检测 ip墙:
https://www.itdog.cn/ping/
tcping 检测端口墙:
https://www.itdog.cn/tcping/
ip墙纯墙端口墙可以换端口。


检测域名是否被“永久限制”

http://www.jucha.com/qiang/
http://www.dbcha.com/


在线拨测


使用拨测查看全国dns解析情况

阿里云拨测工具 https://boce.aliyun.com/detect/http

使用拨测查看全国dns解析,查看是否有127.0.0.10.0.0.0
通过WiFi手机网络分别进行下面测试.


查询是否存在CDN

Ping、多地ping、国外ping
https://search.censys.io/


子域名查询

https://phpinfo.me/domain/


SSL证书信息查询

https://crt.sh/?q=%25.要查询的域名
https://censys.io/certificates?q=

也可以使用python脚本

https://github.com/cheetz/sslScrape

DNS历史解析记录

https://dnsdumpster.com/


端口对外开放检查


使用tcp测试ip的ping值

有些主机是禁用icmp协议ping的,可以使用tcping来测试ping值。
https://blog.csdn.net/omaidb/article/details/120120730


Masscan(Linux)

项目地址: https://github.com/robertdavidgraham/masscan

Centos8安装依赖libpcap-devel:
https://blog.csdn.net/omaidb/article/details/120690910

# Centos8安装依赖libpcap-devel
dnf --enablerepo=powertools install libpcap-devel -y

# 安装其他依赖
yum install git make gcc -y

# 编译安装
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make
make install

# 基本用法
masscan 47.104.237.213 -p22,21,20

# 批量端口
masscan 47.104.237.213 -p20-22

ip可用性检查

参考: https://github.com/trojan-gfw/trojan/issues/622
使用这个地址可以检查是否证书问题: https://www.toolsdaquan.com/ipcheck/


scanport(Windows)

scanpor下载地址


whois查询域名注册信息

https://blog.csdn.net/omaidb/article/details/128832814


邮箱搜集

https://hunter.io
https://github.com/killswitch-GUI/SimplyEmail

posted @ 2026-06-20 02:56  教ERP的李老师  阅读(24)  评论(0)    收藏  举报