当前位置: 首页 > article >正文

学习 Wireshark 分析 Android Netlog

Android 设备抓取的日志中,netlog 文件夹包含.cap文件可以使用Wireshark工具查看网络日志。

Wireshark 分析 DNS 步骤

在使用Wireshark分析网路日志时,要检查DNS解析是否正常,可以按照以下步骤操作:

识别DNS查询和回应

  • 使用过滤器 udp.port == 53 来查看所有DNS相关的流量,因为DNS通常基于UDP协议的53端口(除非有特殊配置使用TCP)。

检查DNS响应

  • 查看DNS响应包,确保状态码(Status Code)为NoError(0)。这意味着查询成功,没有错误。
  • 在响应中,你应该能看到对应的Answer部分,列出解析出的A记录(IPv4地址)或其他记录类型(如AAAA、CNAME等)。

测试域名解析

  • 如果需要查看特定域名的解析情况,可以使用过滤器。例如:
    dns.qry.name contains "example.com"
    
    这样可以过滤出包含特定域名查询与应答的数据包。

 分析响应时间

  • 在Wireshark数据中,注意观察请求与响应之间的时间差。若响应过慢,可能暗示网络延迟或DNS服务器性能问题。

结果验证

  • 对比应答中的IP地址与预期值,确保解析结果正确。
  • 若发现某些查询无应答或状态码不为NoError,需要查明是解析失败、拒绝,还是超时等原因。

 其他信息

  • CNAME跟随:若有CNAME记录,应确保CNAME能正确转换到最终A或AAAA记录。
  • 缓存检查:若一开始没有看到DNS流量,可以检查是否存在本地缓存效应。

通过这些步骤,你可以判断DNS解析是否正常,并找出潜在的解析问题。如发现持续失败,可能需要检查网络连接、确认使用的DNS服务器是否可用,或调整DNS配置(例如,替换为公共DNS)。

DNS知识

在DNS协议中,OpcodeStatus Code(通常称为Response CodeRcode)是两个不同的概念。

Opcode

  • 定义Opcode字段表示DNS消息的操作码,其值为0表示这是一个标准查询(QUERY)。
  • 作用:指示请求的类型,例如标准查询、反向查询等。在大多数情况下,Opcode为0就是标准查询。

Rcode(Response Code)

  • 定义Rcode字段在DNS响应中,指示查询的结果状态。常见的Rcode包括:
    • 0 (NoError):表示无错误,查询成功。
    • 3 (NXDOMAIN):表示域名不存在。
    • 5 (Refused):表示服务器拒绝执行查询操作。
  • 位置:Rcode通常是在响应消息的Flags中。

一个DNS标准查询
Wireshark-Netlog-一个DNS标准查询

如上显示一个DNS标准查询,而不是查询,因此没有Rcode字段, 

Answer RRs

以下是可能导致Answer RRs为0的原因:

  1. 未接收到相应的响应:你所截图的只是DNS查询,非响应。如果没有对应的响应显示在捕获数据中,意味着可能响应未返回或被丢弃了。

  2. 响应中无答案:如果你查看到的响应包内的Answer RRs为0,而Rcode为0(NoError),则表示查询能够成功执行,但是请求的记录不在服务器的DNS数据库中(例如,查询的子域可能没有配置,结果为空)。

分组解读

DNS Frame
DNS 信息
DNS 分组主要信息分类
分类 详情

Frame

包含捕获的字节数量和帧在链接层上的完整信息。这部分一般用于识别数据包在物理/数据链路层的传输细节,例如时间戳之类的信息。

Linux cooked capture v2 描述了数据包的封装方式,用于非以太网接口的捕获,显示链路层协议类型、接口索引、链路层地址类型等。
Internet Protocol Version 4 (IPv4)

提供IP相关信息,包括源IP地址(Src: 10.89.31.165)和目标IP地址(Dst: 120.196.165.7)。检查源和目的地址是否符合预期是判断数据包路由正确的重要步骤。

eg:Internet Protocol Version 4, Src:10.89.31.165, Dst:120.196.165.7

User Datagram Protocol (UDP)

显示UDP源端口和目标端口(Src Port: 35148, Dst Port: 53)。端口53是DNS的默认端口。

eg:User Datagram Protocol, Src Port: 35148, Dst Port: 53

Domain Name System(DNS)

- Transaction ID: 识别请求与响应的唯一ID(0xeb8b)。

- Flags: 显示操作码(Opcode: Standard query)和此消息是否为请求或响应。

- Queries: 列出查询信息,包括请求的域名和类型(如A记录),例如查询 connectivitycheck.gstatic.com 的A记录(IPv4地址)。

如何找到响应数据

  • 数据包交互
    • 在Wireshark中,可以通过Transaction ID追踪到相应的DNS响应包。通常在相应的数据包列表中按这一ID进行过滤或查看。
    • 点击[Response In: 7]

http://www.kler.cn/a/571576.html

相关文章:

  • 【零基础到精通Java合集】第二十二集:CMS收集器详解(低延迟的里程碑)
  • nginx accesslog 打印自定义header
  • 北京航空航天大学计算机复试上机真题
  • 快速高效使用——阿里通义万相2.1的文生图、文生视频功能
  • intra-mart实现logicDesigner与forma联动
  • 第52天:Web开发-JavaEE应用SpringBoot栈SnakeYaml反序列化链JARWAR构建打包
  • 【由技及道】API契约的量子折叠术:Swagger Starter模块的十一维封装哲学【人工智障AI2077的开发日志】
  • 关联封号率降70%!2025最新IP隔离方案实操手册
  • android::IPCThreadState::self使用介绍
  • ASP.NET MVC项目部署到IIS后,w3wp.exe程序报错重启
  • CSS—flex布局、过渡transition属性、2D转换transform属性、3D转换transform属性
  • Python的那些事第三十九篇:MongoDB的Python驱动程序PyMongo
  • 解决android studio(ladybug版本) gradle的一些task突然消失了
  • B3DM转换成PLY
  • 深度探索:美团开源DeepSeek R1 INT8量化技术的性能革命
  • slf4j和log4j的区别与使用
  • linux ubuntu系统运行python虚拟环境,启用端口服务和定时任务
  • 解锁MacOS开发:环境配置与应用开发全攻略
  • 算法--贪心
  • [绘图机器]