EtherCAT ubuntu wireshark

IGH EtherCAT Master 1.6.4 + Ubuntu Wireshark 只抓 EtherCAT

报文配置说明(纯中文)

================================================

一、基础认知(非常重要)

================================================

  1. EtherCAT 的本质
  • EtherCAT 不是 TCP/IP、不是 UDP

  • EtherCAT 是"裸以太网帧"

  • EtherType 固定为:0x88A4

结论: - 用 IP 过滤一定抓不到 EtherCAT - 必须在二层(以太网层)抓包

================================================ 二、确认 IGH 使用的网卡

================================================

  1. 查看所有网卡 命令: ip link

常见物理网卡名称: - eth0 - eno1 - enp3s0

不要使用: - lo - docker0 - virbr0 - br-*

  1. 确认 IGH Master 绑定的网卡 命令: ethercat master

示例输出: Master0 Phase: OP Active: yes Link: UP Device: enp3s0

结论: Wireshark 必须抓 Device 指定的网卡

================================================ 三、Wireshark

抓包权限配置(Ubuntu) ================================================

推荐方式(普通用户抓包):

  1. 运行: sudo dpkg-reconfigure wireshark-common

选择:Yes

  1. 把用户加入 wireshark 组: sudo usermod -aG wireshark $USER

  2. 注销并重新登录

临时方式(不推荐): sudo wireshark

================================================ 四、Wireshark 抓

EtherCAT 的正确配置 ================================================

  1. 选择接口
  • 选择 IGH 使用的物理网卡(如 enp3s0)
  1. 抓包过滤器(Capture Filter,推荐) 在开始抓包前输入: ether proto

0x88a4

作用: - 只抓 EtherCAT 报文 - 减少无关流量

  1. 显示过滤器(Display Filter) 抓包后使用: ethercat

或: eth.type == 0x88a4

================================================

五、标准抓包流程(一步不漏)

================================================

  1. 可选:停止 EtherCAT Master sudo systemctl stop ethercat

  2. 打开 Wireshark

  • 选择正确网卡

  • 不设置显示过滤器

  1. 点击"开始抓包"

  2. 启动 EtherCAT Master sudo systemctl start ethercat

  3. 设置显示过滤器: ethercat

应看到: - LRW - LRD - LWR - BRD / BWR - FPRD / FPWR

================================================

六、只看过程数据(PDO)的过滤方法

================================================

  1. 只看 LRW 周期帧: ethercat.cmd == 0x0C

  2. 只看某个从站地址(ADP): ethercat.adp == 0x0001

  3. 只看寄存器/SDO 访问: ethercat.cmd == 0x05 || ethercat.cmd == 0x06

================================================ 七、常见问题与排错表

================================================

问题:完全抓不到包 原因:抓错网卡 解决:使用 ethercat master 确认网卡

问题:只有 ARP / IP 包 原因:过滤条件错误 解决:使用 ether proto 0x88a4

问题:Wireshark 不解析 EtherCAT 原因:Wireshark 版本过低 解决:升级到

2.6 以上

问题:数据解析异常 / malformed 原因:网卡 Offload 解决:关闭 Offload

================================================ 八、强烈建议:关闭网卡

Offload ================================================

命令(示例 enp3s0): sudo ethtool -K enp3s0 rx off tx off tso off gso

off gro off lro off

说明: - 否则 EtherCAT 帧可能被硬件合并 - 会导致解析错误

================================================ 九、tcpdump

快速验证(非常推荐) ================================================

命令: sudo tcpdump -i enp3s0 -e ether proto 0x88a4

如果 tcpdump 能看到 EtherCAT: - 说明 IGH 正常 - Wireshark

问题在权限或过滤

================================================ 文档结束

================================================

相关推荐
wuyk5556 小时前
《WiFi 嵌入式物联网开发全套实战》| 第 33 章 Wireshark 无线抓包环境搭建、802.11 帧过滤规则
物联网·测试工具·wireshark
不像程序员的程序媛6 小时前
检测网络的命令mtr详解
网络
天启HTTP7 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
运维行者_7 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
hz567899 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
优橙教育9 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
AIgorithmGEEK9 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
工业一体机老司机12 小时前
工业一体机选购后的系统部署:Ubuntu下Docker容器化运行与GPIO配置
linux·ubuntu·docker·人机交互
夏虫不可与之言冰13 小时前
Windows WSL2 (Ubuntu) 搭建 ESP‑IDF 6.1 开发环境全过程演示
linux·windows·ubuntu·esp32·乐鑫科技·乐鑫eim·乐鑫代理商