【问题标题】:How to stop tcpdump from truncation http payload?如何阻止 tcpdump 截断 http 有效负载?
【发布时间】:2018-09-03 15:40:31
【问题描述】:

我正在尝试进行捕获,并且在中途看到一半的有效负载带有“[!http]”。有没有办法让它显示整个有效载荷?

我正在执行 REST 调用并想查看服务器正在接收什么:

                  <value>0x100000</value>
                </attribute>
              </greater-than-or-equals>
              <less-than-or-equals>
                <attribute id="0x129fa">
                 [!http]
    16:34:06.549662 IP (tos 0x0, ttl 255, id 49564, offset 0, flags [DF], proto TCP (6), length 1301)

我正在使用:

tcpdump -vvv -i ens192 tcp port 8080 and src 192.168.1.1

任何帮助将不胜感激。

非常感谢

弗兰克

【问题讨论】:

    标签: http dump tcpdump truncated


    【解决方案1】:

    问题很可能与您正在捕获的内容无关,而与有效负载大于单个数据包有关。

    如今,当您运行 tcpdump 时,默认设置是捕获长度与您接口的 MTU 匹配的数据包(至少)。如果不确定,可以通过将捕获长度指定为零来覆盖它:

     tcpdump -s 0 -w captureFile.cap
    

    同样,这可能不是这里的问题。其余数据更有可能在下一个 TCP 段中。不幸的是,tcpdump 并不是提取会话数据的理想工具。我建议您查看 Wireshark(或 tshark),它可以让您轻松选择一个数据包,然后在删除所有 IP 和 TCP 标头的情况下重新组合数据流。

    【讨论】:

    • 感谢您的回复。我确实尝试了 -s 和 65535 这没有帮助,因为你提到它可能没有。我也确实将捕获加载到了 Wireshark 中,看起来整个 REST 调用都发生在一个数据包中(除了 SYN 和 ACK)。我希望编写一个能够捕获整个 POST 调用但会寻找另一种方法的调试工具。也许我太想要容易的路了,这次必须走困难的路:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 2021-01-14
    • 2017-01-01
    相关资源
    最近更新 更多