linux - tshark 2.2.6 在某些计算机上不显示 data.text 字段

标签 linux udp wireshark netcat tshark

我想使用 tshark 捕获并显示某个端口上的 UDP 流量。我想在每个捕获的行上显示文本内容。

我有两台运行 CentOS 7 的计算机。我按照此处的教程从最新的 Wireshark 2.2.6 源构建:http://blog.jeffli.me/blog/2016/08/14/build-latest-wireshark-in-centos-7/

我在两台计算机上都安装了生成的 RPM。之后,我在两台计算机上(以 root 身份)运行了以下 tshark 命令:

/usr/local/bin/tshark -f "port 3901" -i any -T fields -e frame.number -e frame.time -e ip.src -e ip.dst -e data.text

然后我在计算机 A(这是我的台式计算机,以图形模式运行 CentOS 7)上运行了以下命令:

echo "test message" | nc -u 192.168.224.60 3901

tshark 显示以下行:

1   Apr 24, 2017 14:05:25.926688950 EEST    192.168.224.60  192.168.224.60  test message

这正是我所需要的。

现在..我在计算机B(这是以文本模式运行CentOS 7 的远程计算机)上做了完全相同的测试,只是那里的IP 不同。

tshark 拒绝显示 data.text 字段。它输出这样一行,没有 data.text 字段:

1   Apr 24, 2017 11:06:19.947384620 UTC 192.168.0.60    192.168.0.60

我在两台计算机上使用相同的 nc 版本 (6.4)。

我不知道什么会导致计算机 AB 的这种不同行为。什么可以阻止计算机 B 上的 tshark 显示 date.text

最佳答案

我在另一个论坛上收到了一个答案: https://ask.wireshark.org/questions/61023/tshark-226-doesnt-display-datatext-field-on-some-computer

解决方案是在我的命令中添加以下参数:

-o data.show_as_text:TRUE

所以命令变成了:

/usr/local/bin/tshark -f "port 3901" -i any -o data.show_as_text:TRUE -T fields -e frame.number -e frame.time -e ip.src -e ip.dst -e data.text

这样我就可以在任何计算机上正确显示 date.text。

关于linux - tshark 2.2.6 在某些计算机上不显示 data.text 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43586783/

相关文章:

linux - 如何使用nodejs创建一个linux用户

c++ - iwlib.h : No such file or directory

java - 数据报总是被完整接收吗?

Linux网卡驱动: what's the UDP packet from 0. 0.0.0到255.255.255.255?

ssl - 解密 HTTPS 流量并将清晰的流量保存到 pcap 文件中

linux - 我可以选择哪个 DVB-T 音频 channel VLC 流吗?

c++ - linux voip库

c++ - 如何修复 'Cannot assign requested address?'

c - 将 FT_UNIT32 字段解释为小端

java - 我的 ISP 强制我在发送 tcp 数据之前缓冲它