【问题标题】:Wireshark on macOS does not parse HTTP packetsmacOS 上的 Wireshark 不解析 HTTP 数据包
【发布时间】:2018-08-23 04:12:49
【问题描述】:

我在 macOS High Sierra 上安装了 Wireshark,并在使用 CURL 对本地服务器进行 HTTP 调用时捕获了一些网络流量。 在 wireshark 中捕获的流量只显示 TCP 数据包。在查看 TCP 数据包中的数据时,我可以看到 HTTP 数据包,但 Wireshark 并未将这些数据包识别为数据包协议。

有什么方法可以让它正确解析 HTTP 数据包?

这是一个示例捕获:

我的一个猜测是,Wireshark 仅将位于端口 80 上的数据包识别为 HTTP。如果是这样,有什么方法可以更改此设置?

附:这里不涉及 HTTPS,只是将旧的 HTTP 从客户端映射到 REST API。

【问题讨论】:

  • 这是一个有用的问题.....

标签: macos http wireshark


【解决方案1】:

好的,找到问题了。 我的服务器暴露在端口 5000(这是默认的 Flask 端口)上。 事实证明,端口 5000 通常用于 IPA 数据包,这是一种 GSM over IP 协议。 Wireshark 显然使用端口号来确定数据包的类型,因此将其误分类为 IPA 数据包。

一旦我将服务器移动到另一个端口(例如 5001) - 问题就消失了。

附:详情请见https://osqa-ask.wireshark.org/questions/9240/data-which-has-been-sent-over-tcpip-has-been-recognized-by-wireshark-as-ipa-protocol

【讨论】:

    【解决方案2】:

    为了补充@MartanRubin 的回答,也可以向 WireShark 表明端口 5000 不是 GSM over IP。在 Edit → Preferences → Protocols → GSM over IP 中,从“TCP 端口”字段中删除端口 5000:

    要保留首选项,您还需要在 HTTP 协议“TCP 端口”字段中添加 5000。然后他们在重新启动后幸存下来(在自定义配置文件中测试)。但是请注意,当您打开 GSM over IP 协议的首选项时,5000 仍然存在,但没有效果。但是当我保存它时(单击确定按钮),我的/home/user/.config/wireshark/profiles/CustomProfile/decode_as_entries 又被搞砸了,我需要在两个协议的“TCP 端口”字段上重复这个过程。我想说的是一个违反直觉的用户界面。

    【讨论】:

      猜你喜欢
      • 2018-09-09
      • 1970-01-01
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      • 1970-01-01
      相关资源
      最近更新 更多