【问题标题】:Using Wireshark with gRPC将 Wireshark 与 gRPC 一起使用
【发布时间】:2021-08-07 22:31:39
【问题描述】:

我正在尝试使用 Wireshark 剖析携带 gRPC 有效负载的 TCP 数据包。 虽然我将解码配置为 http2 并提供了 .proto 目录的路径,但 Wireshark 似乎只解密 TLS 数据,并没有显示实际内容。

我在 localhost 中使用 gRPC 客户端和服务器,并选择了环回接口。 另外,我遵循了 grpc.io 网站中的指南:https://grpc.io/blog/wireshark/

将感谢有关如何正确剖析数据包并按指南预期显示的帮助(该指南只是我在此处尝试实现的目标的参考)

【问题讨论】:

标签: grpc wireshark http2 wireshark-dissector


【解决方案1】:

我已尝试使用该指南,并且效果符合预期。 我猜无法解码由 .proto 文件配置引起的 protobuf 内容。

然后选择protobuf,并编辑搜索路径,第一个配置是proto文件的PATH。它应该是目录,而不是文件。然后,选择加载所有文件,然后它应该可以工作。

【讨论】:

  • 似乎在解码 TLS 层并显示所有 TCP 传输后,我无法访问数据。如果您查看我附上的图片,显示内容的最后一层是显示 TCP 有效负载的传输层。也许我错过了其他一些配置?到目前为止我所做的:使用 http2 解码 tcp、端口 5001 并将 .proto 文件的目录添加到 Protobuf 搜索路径
【解决方案2】:

解决方案可能包括:

  1. 如果是通过 tls 的 gRPC 消息,则解码为“TLS”。
  2. 如果 TLS 解析正确但 HTTP2/GRPC 没有解析,并且您在 linux 中自己编译了 wireshark,您可能需要在重新编译 wireshark 之前安装以下可选库:
  • Gcrypt (libgcrypt) 这会导致 TLS1.3 中的 HTTP2 帧被解密。
  • nghttp2 HTTP2 解析器使用此库来解析包含 grpc 流信息的 http2 标头。

您可以从这里https://www.wireshark.org/docs/wsdg_html_chunked/获取图书馆信息

【讨论】:

    猜你喜欢
    • 2020-07-12
    • 2022-08-07
    • 2021-11-13
    • 2019-08-03
    • 2022-01-20
    • 2017-01-25
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    相关资源
    最近更新 更多