是否可以借助 tcpdump 重新生成 TCP 请求

是否可以借助 tcpdump 重新生成 TCP 请求

我正在开发一个后端服务器,后端的架构如下:

APP --> Server1 --> Server2 --> Server3 --> MyServer

APP向后台发送HTTP请求Server1,后端各服务器之间采用基于TCP协议的RPC方式进行通信。

我正在开发MyServer,由于我的工作尚未完成,我需要做很多测试,但Server3并不总是可用。

我不知道什么Server1Server2and did,从到 的Server3RPC真的很复杂,它包含很多我不知道的参数。我需要的是捕获来自 的请求,将其内容复制到脚本中,以便我可以运行脚本来模拟请求。Server3MyServerServer3

让我举个例子:

Server3将发送一个MyServer带有参数p1, p2,的 RCP p3。对我来说,我只关心p3,所以我处理p3,生成一个新参数p4,并将p1p2发送p4到另一台服务器。所以我需要模拟 RPC,Server3以便我可以在需要测试MyServer.

关于协议

我们的团队使用了一个私有框架,它有自己的协议来进行 RPC。我所知道的是该协议基于 TCP,而不是 HTTP。所以我需要的是捕获请求Server3并在需要时重播它。

答案1

如果您正在处理 HTTP,更好的工具tcpdump是“透明代理”。然后,这也可以重新运行请求。

周围有很多透明代理,谷歌。

一个例子是mitmproxy,以下是如何重播请求

相关内容