如何让 tcpdump 写入文件和标准输出适当的数据?

新手上路,请多包涵

我想要 tcpdump 将原始数据包数据写入文件,并在捕获数据包时将数据包分析显示到标准输出中(通过分析我的意思是当 -w 时它正常显示的行是失踪)。谁能告诉我该怎么做?

原文由 user2565010 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 800
2 个回答

这是做你想做的事的好方法:

 tcpdump -w - -U | tee somefile | tcpdump -r -

它能做什么:

  • -w - 告诉 tcpdump 将二进制数据写入 stdout
  • -U 告诉 tcpdump 在收到每个数据包时将其写入标准输出,而不是缓冲它们并以块的形式输出
  • tee 将该二进制数据写入文件并写入自己的文件 stdout
  • -r - 告诉第二个 tcpdump 从它的 stdin 获取数据

原文由 cnicutar 发布,翻译遵循 CC BY-SA 4.0 许可协议

由于 tcpdump 4.9.3 4.99.0,可以使用 --print 选项:

 tcpdump -w somefile --print

 Wednesday, December 30, 2020, by mcr@sandelman.ca, denis and fxl.
  Summary for 4.99.0 tcpdump release
    [...]
    User interface:
      [...]
      Add --print, to cause packet printing even with -w.

原文由 ysdx 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题