我们正在尝试调试必须接收和响应大量持久 HTTP 连接的服务器的问题。
理想情况下,我们想要一个可以(随机)选择单个 HTTP 连接并记录进出它的所有流量的工具,这样我们就可以看到发生了什么。
不幸的是,我们没有能力限制我们必须响应的持久连接的数量(通常是数千个),因此我们确实需要工具将其监控范围缩小到单个连接。
谁能推荐这样一个工具,并指导如何说服它做我们需要的事情?
Wireshark 是用于此目的的出色开源工具。
数据包的实际捕获通常由libpcap
. 在它之上构建了不同的工具:
首先有好老tcpdump
。它是一个文本工具,允许您指定您感兴趣的数据包并为每个匹配的数据包打印(默认情况下)一行。实际上你有很多选择应该做什么。您还可以将所有流量转储到捕获文件中。
然后是wireshark
(以前称为空灵)。这是一个 GUI,允许您像在 tcpdump 中一样捕获数据包,并且有很多方法可以分析此类数据。它还可以读取和分析 tcpdump 创建的捕获文件。
与wireshark 一起出现tshark
(以前称为tethereal),它几乎是wireshark 的控制台版本。
如果您只对数据包中发送的数据感兴趣,请查看tcpflow
。
还有一些更高级的工具也可以用来攻击其他主机。例如ettercap
,将列出所有当前连接,其中可以显示在该连接上发送的数据。
您的问题并不完全清楚,您到底想找出什么,但听起来tcpflow
可能就是您想要的。
如果直接使用wireshark不起作用,您可以在防火墙/路由器类型框中摆弄路由,并让受监控的连接通过不同的接口(您可以使用wireshark或其他方式接入它)而不是所有其他接口与服务器的连接。