我正在使用 tshark 来诊断不对称路由问题。我正在过滤流量,因此仅捕获特定 ip 的 src/dest,但我想显示一个字段,显示流量传入/传出的接口,以便我可以在使用路由表时看到影响。
借助 Wireshark,我可以通过使用以下命令显示 MAC 地址来完成此任务:硬件目标地址和硬件源地址,但在 TShark 中我找不到该过滤器。
任何人都可以建议一种使用 TShark 显示 NIC 名称或 MAC 地址的方法吗?
这是我尝试过的 tshark 命令:
tshark -i eno1 -i enp5s0 -T fields -E header=y -e ip.src -e ip.dst -e _ws.col.Protocol -e _ws.col.Info -Y "ip.addr==10.10.10.30"
答案1
我找到了解决方案。事实证明,Wireshark 中显示的字段与 tshark 中显示的字段具有直接相关性。所以你在框架下搜索Wireshark 文档一切都变得清晰了。我的问题是没有看到文档和 Wireshark UI 之间的相关性来了解我可以在命令行上做什么。
我所要做的就是添加-e 框架.接口名称或者-e 帧.interface_id
答案2
要了解字段名称,您还可以通过将or传递给 来使用json
或输出格式。您将看到捕获中所有已剖析的字段,其名称与您可以在显示过滤器中使用的名称或选择格式相同:pdml
-T json
-T pdml
tshark
-e
-T fields
[ { "_index": "数据包-2021-10-09", “_type”:“文档”, “_score”:空, “_来源”: { “层”:{ “框架”: { "frame.interface_id": "0", “frame.interface_id_tree”:{ ”框架.接口名称”:“wlp3s0” }, "frame.encap_type": "1", [...]
<?xml 版本=“1.0”编码=“utf-8”?> <?xml-stylesheet type="text/xsl" href="pdml2html.xsl"?> <!-- 您可以在 /usr/share/wireshark 或 https://gitlab.com/wireshark/wireshark/-/raw/master/pdml2html.xsl 中找到 pdml2html.xsl。 --> <pdml version="0" Creator="wireshark/3.4.8" time="2021 年 10 月 9 日星期六 10:20:13" capture_file="file.pcap"> <数据包> <proto name="geninfo" pos="0" showname="一般信息" size="52"> <field name="num" pos="0" show="1" showname="Number" value="1" size="52"/> <field name="len" pos="0" show="52" showname="帧长度" value="34" size="52"/> <field name="caplen" pos="0" show="52" showname="捕获长度" value="34" size="52"/> <field name="timestamp" pos="0" show="2021 年 10 月 9 日 10:19:24.034789189 BST" showname="捕获时间" value="1633771164.034789189" size="52"/> </原> <proto name="frame" showname="帧 1:线路上的 52 字节(416 位),在接口 wlp3s0 上捕获的 52 字节(416 位),id 0" size="52" pos="0"> <field name="frame.interface_id" showname="接口 ID: 0 (wlp3s0)" size="0" pos="0" show="0"> <字段名称=框架.接口名称" showname="接口名称:wlp3s0" size="0" pos="0" show="wlp3s0"/> </字段> <field name="frame.encap_type" showname="封装类型:以太网(1)" size="0" pos="0" show="1"/>
在 中wireshark
,您可以选择您感兴趣的字段,右键单击并复制 -> 字段名称: