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

tshark 2.2.6 doesn't display data.text field on some computer

我想使用 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。