如何解决eth1无流量问题并获取PCB机箱关联PCB的MAC地址?
排查eth1抓不到PCB广播MAC的问题
我来帮你一步步定位问题,毕竟要捕获PCB的广播MAC,网卡的基础配置和抓包设置是核心:
1. 先确认eth1的物理链路与启用状态
- 打开终端输入
ip link show eth1查看网卡状态,如果输出里看不到UP和LOWER_UP,说明网卡未启用,先执行sudo ip link set eth1 up开启它。 - 顺便检查网线是否插紧,PCB机箱的网口有没有指示灯亮(如果有的话)——物理链路不通的话,任何流量都抓不到。
2. 开启eth1的混杂模式
要捕获广播帧这类并非发给你网卡的流量,必须将网卡设置为混杂模式:
- 最简单的方式是在Wireshark中选中eth1作为捕获接口后,点击顶部「捕获选项」,勾选「混杂模式」再启动捕获。
- 也可以用命令行提前开启:
sudo ip link set eth1 promisc on,之后再打开Wireshark抓包。
3. 给eth1配置静态IP(关键步骤)
很多设备只会在检测到链路中有活跃IP设备时,才触发MAC广播;如果你的eth1没有IP,可能会被PCB忽略。
- 随便给eth1设置一个私有网段的静态IP即可,比如
sudo ip addr add 192.168.1.10/24 dev eth1(10.x.x.x、172.16.x.x这类网段也可以,只要不和eth0的外部网络冲突)。 - 输入
ip addr show eth1确认IP已生效,再尝试抓包。
4. 优化Wireshark的捕获过滤规则
别抓全量流量,直接过滤广播帧更容易找到目标:
- 在Wireshark的捕获过滤框里输入
ether broadcast,这样只会捕获以太网广播帧,减少无效流量干扰。 - 如果知道PCB使用的特定工业协议(比如Modbus、Profinet),还可以加上协议过滤,比如
ether broadcast and modbus,精准定位目标帧。
5. 用tcpdump验证(排除Wireshark自身问题)
如果Wireshark还是没数据,先用命令行工具tcpdump测试:
- 执行
sudo tcpdump -i eth1 ether broadcast,盯着终端看有没有输出。如果有,说明是Wireshark的配置(比如权限、过滤规则)出了问题;如果还是没有,继续排查网卡或设备链路。
内容的提问来源于stack exchange,提问作者pfnuesel
相关产品推荐
相关产品推荐

