我正在尝试在 debian 上使用 tshark 进行嗅探,并且希望查看所有流量,但我缺少 VLAN 流量。
我可以手动配置接口将 VLAN 10 添加到 eth0 接口,然后查询:
# tshark -i eth0 -w /home/debian/capture/testcapture8.pcap
[NO PACKETS]
# vconfig add eth0 10
# tshark -i eth0 -w /home/debian/capture/testcapture8.pcap
[ALL PACKETS on VLAN 10 and on eth0]
# vconfig rem eth0.10
# vconfig add eth0 20
# tshark -i eth0 -w /home/debian/capture/testcapture8.pcap
[NO PACKETS]
因此,我只能通过使用特定 VLAN ID 的 vconfig 来查看带有 VLAN 标记的数据包。在不知道要在 vconfig 上添加的 VLAN ID 的情况下,如何查看所有数据包?
答案1
尝试使用tshark -i eth0.10 -w /home/debian/capture/testcapture8.pcap
捕获 VLAN 10 的数据包。
从:https://wiki.wireshark.org/CaptureSetup/VLAN
(粗体强调是我加的)
[...]
Linux
要启用 VLAN 标记,您需要两个东西:vlan rpm(例如 vlan-1.8-23)和 8021q 内核模块。安装后,vconfig 命令可用于在现有物理设备上创建 VLAN 接口。有关更多信息,请参见 vconfig(8) 手册页。
设置 VLAN 接口并且流量开始流动后,您可以在您选择的 VLAN 接口(例如,VLAN 100 的 eth0.100)或底层物理接口(例如,eth0)上运行 Wireshark 并进行捕获。如果选择前者,您将只看到发往该 VLAN 的帧;如果选择前者,您将只看到发往该 VLAN 的帧。如果您选择后者,您可能会看到所有帧,也可能只会看到未标记的帧(如果有的话)。它取决于 NIC、NIC 固件、驱动程序以及月亮和行星的对齐方式。(枚举各种适配器、固件版本和驱动程序行为的表格可能会很有用。-Guy Harris)
如果您在配置了 VLAN 的主机系统上进行捕获,则即使您在物理设备上进行捕获,您也可能不会在捕获的帧中看到 VLAN 标记。驱动程序在 pcap 库看到标签之前剥离标签。请参阅下面 Windows 部分中提到的 Intel 技术说明。 (Linux 驱动程序是否支持获取 VLAN 标记,也许可以使用驱动程序配置选项或其他选项,就像 Intel Windows 驱动程序那样?-Guy Harris)(e100 驱动程序在 2.4.26 上运行良好 - Jaap Keuter)