Wireshark抓取本机报文

转载自:http://blog.youkuaiyun.com/jiayanhui2877/article/details/7247203

在进行通信开发的过程中,我们往往会把本机既作为客户端又作为服务器端来调试代码,使得本机自己和自己通信。但是wireshark此时是无法抓取到数据包的,需要通过简单的设置才可以。

      具体方法如下:

      ①:以管理员身份运行cmd

      ②:route add 本机ip mask 255.255.255.255 网关ip

      for example route add 192.168.1.103 mask 255.255.255.255 192.168.1.1 metric 1

     使用完毕后用 route delete 192.168.1.103 mask 255.255.255.255 192.168.1.1 metric 1删除,否则所有本机报文都经过网卡出去走一圈回来很耗性能

      此时再利用wireshark进行抓包便可以抓到本机自己同自己的通信包,这样配置的原因是将发往本机的包发送到网关,而此时wireshark可以捕获到网卡驱动的报文实现抓包。

<think> 嗯,用户需要了解在PC上使用Wireshark抓取带VLAN报文的方法。结合之前的引用内容,尤其是引用[2]和[3]提供的Windows系统操作步骤最为关键。 用户应该是网络管理员或测试工程师,需要验证VLAN标签的正确性。ta的提问非常具体,说明可能遇到了实际抓包需求,且引用[2]提到"测试过程中经常需要抓取报文",这个场景很吻合。用户情绪可能有些着急,因为引用[2]特别指出Windows默认不支持,需要复杂设置。 重点整理三个核心操作:首先是Wireshark列设置,这是可视化基础;其次是网卡驱动的高级设置,需要禁用VLAN卸载功能;最后是注册表修改,这两步最容易出错。引用[3]的注册表路径示例特别提醒了"0022"可能不同,这个细节必须强调。 考虑到用户实操时可能遇到的坑:不同网卡驱动界面差异(引用[2]提到"有的网卡可能得设置使能")、注册表路径的GUID差异(引用[4]补充说明)、以及需要重启这点很容易被忽略。在回答里要把这些注意事项前置。 是否需要展开Linux方案?引用[3]提到Ubuntu用tcpdump加-e参数更简单,但用户明确问PC端(通常指Windows),所以作为补充即可。最后应该提醒抓包位置——必须在VLAN标记未剥离的网络节点,这个原理性提示能避免用户做无用功。 </think> 以下是在**Windows PC**上使用Wireshark抓取带VLAN报文的标准方法,综合引用内容整理为清晰步骤: --- ### **详细操作步骤** #### **1. 设置网卡驱动(关键步骤)** - 打开 **控制面板 > 网络和共享中心 > 更改适配器设置** - 右键抓包网卡 → **属性** → 选择 **Microsoft网络客户端** → 点击 **配置** - 切换到 **高级** 选项卡: - 找到 **Priority & VLAN**(或**优先级和VLAN**) - 值改为 **Packet Priority & VLAN Disabled**(或**禁止**)[^2][^3] - *注:部分网卡需改为"Enable",请根据实际测试调整* #### **2. 修改注册表(必需)** - **Win+R** 输入 `regedit` 打开注册表编辑器 - 定位路径(注意设备GUID可能不同): ``` HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\<YourAdapterID> ``` > *如何获取`<YourAdapterID>`?* > 网卡属性 → **详细信息** → 选择 **驱动程序关键字** → 记录末尾数字(如`0018`或`0022`)[^3][^4] - 在右侧新建/修改以下DWORD值(32位): | 名称 | 值 | |-----------------------|-----| | `MonitorModeEnabled` | `1` | | `PreserveVlanInfoInRxPacket` | `1` | - **重启电脑生效** [^3] #### **3. 配置Wireshark显示VLAN列** - 打开Wireshark → **编辑 > 首选项** - 左侧选择 **外观 > 列** → 点击 **+** 添加新列: - **标题**: `VLAN` (自定义名称) - **类型**: `802.1Q VLAN id` - 保存后可在主界面看到VLAN ID列 [^1][^3] #### **4. 抓包与验证** - 重启后使用Wireshark抓包 - 在数据包详情中展开 **Ethernet II** 层 - 若操作成功,将显示 **802.1Q Virtual LAN** 字段并包含VLAN ID [^1] --- ### **关键注意事项** 1. **GUID差异** 注册表路径中的`<YourAdapterID>`(如`0018`)因网卡而异,必须通过**驱动程序关键字**确认[^4]。 2. **VLAN位置限制** 需在**交换机Trunk口**或**路由器子接口**连接的PC上抓包,Access端口会剥离VLAN标签。 3. **Linux简化方案** Ubuntu系统可直接用命令抓包: ```bash tcpdump -i eth0 -e -vvv -w vlan.pcap # -e参数保留以太网帧头(含VLAN)[^3] ``` --- ### **常见问题解决** - **抓不到VLAN标签?** → 检查注册表路径是否匹配网卡ID → 确认网卡高级设置中的VLAN状态 → 确保抓包点在Trunk链路 - **Wireshark不显示VLAN列?** → 检查列配置是否正确 → 更新Wireshark至最新版 - **虚拟机环境?** 需在**物理网卡**执行上述操作,虚拟网卡通常无法透传VLAN标签。 > *提示:企业网络抓包前请获得管理员授权,避免触发安全策略[^1]。* ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值