linux – 运行tcpdump而不是interpert数据包内容

我应该运行什么选项tcpdump让它只是执行十六进制数据包转储而不试图解释其内容?运行它astpsdump -e -v -x或类似的解释图层的尝试,但我不想要它.

我想要tshark的作用:

% sudo tshark -xxx -i eth0
...

解决方法:

我能找到的最接近的两种解决方案就是这些

>后处理以删除解码.

tcpdump -nXX -i eth0 | sed $'s/^[^ \t].*//'

这并不完美,因为格式有点不同.

tshark
0000  52 54 00 12 35 02 08 00 27 0f db b3 08 00 45 00   RT..5...'.....E.
0010  00 54 2a 4d 40 00 40 01 e9 43 0a 00 02 0f 0a 0f   .T*M@.@..C......
0020  10 fb 08 00 ab 06 1e b5 00 01 00 3f ab 57 00 00   ...........?.W..

tcpdump
0x0000:  0008 9bbd ab8a 001d aadd cb68 0800 4500  ...........h..E.
0x0010:  0028 3ec8 4000 7e06 a075 0a0a 0510 0a0f  .(>.@.~..u......
0x0020:  046a cb6a 0016 7049 a307 5eaf 8afb 5010  .j.j..pI..^...P.

>写入数据文件并使用tshark解释它(可能在另一台机器上).

tcpdump -w /tmp/capture.dat -i eth0
tshark -r /tmp/capture.dat -xxx

在这里,由于我们使用tshark来处理捕获文件,因此输出将完全符合您的要求.如果需要,您可以执行“讨厌”的操作,例如远程运行tshark:

ssh -zq remote_host tshark -r - -xxx < /tmp/capture.dat
上一篇:linux – 如何知道某个时间点在消息队列中收到的消息数


下一篇:网络/命令行抓包工具tcpdump详解