首页/网络/工控与物联网速查/抓包工具解析Modbus流量的方法

抓包工具解析Modbus流量的方法

解析 Modbus 流量要看三层信息:报文结构(TCP 是 MBAP 头加协议数据单元,串口 RTU 是地址加数据单元加校验)、功能码判断读写类型、以及异常响应里的异常码。配对请求与响应、结合地址范围判读,才能避免把正常轮询当异常。

工控与物联网速查网络更新于 2026-10-17
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​‌‌‌‌​‌‌​​‌​​​‌‌​​​‌​​‌‌‌​‌​‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌​​‌‌​​‌‌​​‌‌​‌​​‌​‌‌​​​‌‌​​‌​‌‌​‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​​‌​​​‌‌​​‌​‌​​‌​‌‌​‌​‌‌​​​​‌​‌‌​‌‌‌​​‌‌​​​​‌​‌‌​‌‌​​​‌‌‌‌​​‌​‌‌‌​​‌‌​‌‌​‌​​‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

报文结构先看清楚

Modbus 有串行与以太网两种承载方式,解析前先确认手头是哪一种。以太网承载(常称 Modbus TCP)的报文由七字节报文头加上协议数据单元组成:报文头包含事务标识、协议标识、长度与单元标识,协议数据单元的首字节是功能码,其后是数据。串行承载(RTU)的报文由从站地址、协议数据单元与两字节校验组成。两种承载的协议数据单元是同一套,因此功能码与数据字段的读法一致,差别在于寻址与校验方式。解析的第一步是把事务标识或从站地址与请求响应配对,否则无从判断交互是否正常。

基本信息

以太网承载默认使用端口 502,报文头七字节加协议数据单元
串行承载从站地址加协议数据单元加校验,需按串口参数解析
协议数据单元首字节为功能码,其后为地址、数量或数据
请求响应配对以太网按事务标识配对,串行按从站地址与顺序配对
异常响应响应功能码为请求功能码的最高位置位,并附带一个异常码
判读依据功能码判断读写类型,地址范围判断访问对象,异常码判断失败原因

判读要点

  • 区分读写性质:读类功能码属正常监视流量,写类功能码涉及参数与控制,需要关注来源与时序
  • 核对地址范围:同一条读写是否总落在设定范围内,超出范围可能是配置错误或异常访问
  • 统计异常码分布:集中出现的异常码指向配置、地址或设备状态问题
  • 观察轮询周期:正常监视是规律周期轮询,周期被破坏或请求量突增需要解释
  • 确认发起方:同一服务端设备被哪些客户端访问,有无清单外的客户端出现
  • 注意单元标识:一个网关后可挂多个从站,单元标识混淆会导致结论错误
  • 结合变更记录:工程调试期间出现写操作属正常,需与变更时间对照

常见功能码与含义

功能码操作类型典型用途
01 / 02读线圈与离散量类数据读取开关量状态
03 / 04读保持寄存器与输入寄存器读取测量值与参数
05 / 06写单个线圈与单个寄存器修改单个设定值或输出
15 / 16写多个线圈与多个寄存器批量下发参数或配方
异常响应功能码最高位置位并附异常码用于判断失败原因,如非法地址或设备故障
异常码是很有价值的线索:非法数据地址类的异常集中出现,通常意味着上位机地址映射配置有误或设备地址范围发生过变更;设备故障类的异常则指向服务端设备本身。把异常码按设备与时间统计,往往能直接定位到问题源头。

易错点

  • 只看功能码不看地址范围,无法判断访问是否越界
  • 把周期性读轮询的高流量误判为异常或扫描行为
  • 忽略单元标识,把网关后不同从站的流量混在一起分析
  • 未做请求响应配对就下结论,把未响应的原因错判为设备故障
  • 把串行 RTU 与以太网承载的抓包混在一起比较,结论不成立
  • 误以为该协议具备认证与加密能力,从而忽略访问控制的重要性

数据来源与参考

  • Modbus.org《Modbus Application Protocol Specification V1.1b3》
  • Modbus.org《Modbus Messaging on TCP/IP Implementation Guide V1.0b》
  • Wireshark 官方 Modbus 协议解析文档

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/ics/modbus-traffic-decode-analysis.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​‌‌‌‌​‌‌​​‌​​​‌‌​​​‌​​‌‌‌​‌​‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌​​‌‌​​‌‌​​‌‌​‌​​‌​‌‌​​​‌‌​​‌​‌‌​‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​​‌​​​‌‌​​‌​‌​​‌​‌‌​‌​‌‌​​​​‌​‌‌​‌‌‌​​‌‌​​​​‌​‌‌​‌‌​​​‌‌‌‌​​‌​‌‌‌​​‌‌​‌‌​‌​​‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​