news 2026/5/9 11:19:47

Modbus RTU 与 Modbus TCP 深入指南-Wireshark抓包分析实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Modbus RTU 与 Modbus TCP 深入指南-Wireshark抓包分析实战

九、Wireshark抓包分析实战

9.1 Modbus TCP 过滤器

过滤器表达式说明
tcp.port == 502捕获所有Modbus TCP流量
modbus简单过滤器
modbus.func_code == 3只显示读保持寄存器
modbus.func_code == 6只显示写单寄存器
modbus.trans_id == 0x0001特定事务ID
modbus.proto_id != 0非标准协议标识(异常)
modbus.unit_id == 1特定单元ID
modbus.error == 1只显示异常响应

9.2 RTU over serial 抓包(Linux)

# 方法1:创建虚拟串口用于监听 socat -d -d pty,link=/tmp/ttyV0,rawer tcp:127.0.0.1:1234 # 将设备连接到虚拟串口 # 在Wireshark中捕获 /tmp/ttyV0,使用"Serial"接口 # 方法2:使用serial2pcap工具 sudo apt-get install wireshark sudo modprobe can # 使用外部串口嗅探硬件(如ComSpy)

9.3 分析步骤

9.3.1 抓包命令
# 捕获到文件 sudo tcpdump -i eth0 -s 1500 -w modbus_capture.pcap 'tcp port 502' # 同时捕获并解码 sudo tcpdump -i eth0 -A -s 1500 'tcp port 502 and host 192.168.1.100'
9.3.2 Wireshark分析流程
  1. 打开pcap文件:File → Open → modbus_capture.pcap

  2. 应用过滤器:输入modbus回车

  3. 查看请求:选择一个包,展开 Modbus/TCP 部分

  4. 跟踪流:右键 → Follow → TCP Stream

  5. 查看时序:Statistics → Flow Graph

9.3.3 解读示例(读保持寄存器)
Frame 1: 192.168.1.10 → 192.168.1.100 (Modbus TCP) Transcation ID: 0x0001 Protocol ID: 0x0000 Length: 0x0006 Unit ID: 0x01 Modbus PDU: Function Code: Read Holding Registers (3) Starting Address: 0x0000 Quantity: 0x0002 Frame 2: 192.168.1.100 → 192.168.1.10 (Modbus TCP) Transcation ID: 0x0001 Protocol ID: 0x0000 Length: 0x0005 Unit ID: 0x01 Modbus PDU: Function Code: Read Holding Registers (3) Byte Count: 0x04 Register 0x0000: 0x1234 Register 0x0001: 0x5678

9.4 常见问题诊断

现象Wireshark显示可能原因解决方法
无响应只有请求,无响应设备IP错误、端口错误、防火墙检查连接,ping设备
重置连接TCP RST包端口未监听确认设备支持Modbus TCP
超时重传TCP Dup ACK, Retransmission网络丢包检查网线、交换机
乱序响应事务ID不匹配设备实现有bug忽略乱序响应,等待匹配
异常响应Modbus Exception请求非法查异常码表
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 11:19:46

Modbus RTU 与 Modbus TCP 深入指南-字节顺序与跨平台问题

十、字节顺序与跨平台问题10.1 Modbus 标准字节序Modbus标准:大端序(Big Endian,网络字节序)16位值 0x1234 → 发送 0x12(高字节) 0x34(低字节)10.2 常见设备的小端序问题部分PLC使用…

作者头像 李华
网站建设 2026/5/9 11:19:45

CANN/asc-tools快速入门指南

快速入门 【免费下载链接】asc-tools Ascend C Tools仓是CANN基于Ascend C编程语言推出的配套调试工具仓。 项目地址: https://gitcode.com/cann/asc-tools 🛠️ 环境准备 根据本地是否有NPU设备和使用目标选择对应的环境准备方式: 环境情况用于…

作者头像 李华
网站建设 2026/5/9 11:18:29

CANN具身智能优化样例

CANN Recipes for Embodied Intelligence 【免费下载链接】cann-recipes-embodied-intelligence 本项目针对具身智能业务中的典型模型、加速算法,提供基于CANN平台的优化样例 项目地址: https://gitcode.com/cann/cann-recipes-embodied-intelligence &#…

作者头像 李华
网站建设 2026/5/9 11:15:45

告别周期性全量:KES 块级永久增量备份设计与实现

2TB 数据库增量备份还要 200GB?KES块级永久增量备份,存储省 80%、速度快 60% 引言:增量备份比全量备份还"心虚" 作为 DBA,你一定经历过这样的尴尬时刻:“今天是增量备份日,预计耗时……嗯……大概…

作者头像 李华
网站建设 2026/5/9 11:14:47

cann/pyasc安全声明

安全声明 【免费下载链接】pyasc 本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。 项目地址: https://gitcode.com/cann/pyasc 运行用户建议 基于安全性角度考虑,不…

作者头像 李华
网站建设 2026/5/9 11:12:44

Taotoken模型广场如何帮助开发者快速对比与选择合适模型

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken模型广场如何帮助开发者快速对比与选择合适模型 当开发者需要为大语言模型应用选择基础模型时,常常面临一个现…

作者头像 李华