如何在另一个环境(例如 VM)中重现真实站点的 http 流量

tom*_*azy 7 linux http tcpdump network-traffic tcpreplay

我的 Web 应用程序中存在无法重现的错误。所有日志看起来都不错,或者至少我看不到任何异常。但它发生了。所以我想我可以记录所有进出我的网站的流量,等待错误发生,然后在我的测试环境中以某种方式重播。它确实发生了!所以我有这样捕获的数据:

tcpdump -s 1514 -X tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0) -Z root -C 20 -W 1000 -w capture.cap
Run Code Online (Sandbox Code Playgroud)

我不知道我能用它做什么。我有一台运行相同版本的 Web 应用程序的虚拟机,我想重放其中记录的数据。我应该如何处理这个问题?

[编辑]

我尝试按照此示例使用tcpreplay执行此操作,但我的 Web 服务器没有记录任何流量。

我的测试机 (Fedora 8) 在 VMWare Player 中运行。假设机器的 IP 是 192.168.41.128 并且它有一个网络接口:eth0(环回除外)-示例中的步骤 #2 和 #3 在我的情况下应该如何?我应该在同一台机器上还是在另一台机器上运行它?

Wes*_*ley 5

你有几个选择,所有这些都很酷,而且没有一个是嵌入式产品。需要一些组装。

您可能想要做的是忘记您已经检查过的日志,或者至少放弃重播这些文件的任何愿望。设置其中一个系统并以受控方式使用它来测试您的流量。