我试图将通过我们的代理发送的原始数据保存到特定的 url。我的一个朋友给了我使用 tcpdump 的技巧,所以我开始在他们的页面上阅读它。但由于某种原因,我无法使用它。
我试过' tcpdump -c10 host my.very.specific.host.com '但我没有得到任何匹配。是的 =) 我可以看到 server.log 中有来自客户端的某种操作。
如果我使用' tcpdump -c10 ',我会立即得到 10 行。所以我想我想念理解“主机”的概念?
我不能将它指向一个 IP,因为它是一个处理许多不同 URL 的网络服务器。
这真的不是我的领域(程序员)所以,请原谅我的简单问题:) 在此先感谢。
编辑 1
感谢所有的帮助,是的。我应该更清楚地说明我的问题。所以这里有一些“更多”信息。我想做的是捕获从我们的代理到手机的数据。
我这样做的原因是为了确保我们在它进入“移动运营商网关/代理狂野”之前准确地发送我们想要的东西(是的,他们倾向于修改东西而不是他们应该的;))
我感兴趣的信息是http协议。
所以我现在要做的是尝试将在我们的代理和移动运营商网关之间传递的信息转储到“公共”网卡上。对我来说幸运的是,移动运营商只有一个公共网关。
完了,走吧!
您可能对不同的接口有问题。默认情况下,tcpdump 只侦听它找到的第一个以太网接口。如果您添加“-i any”,它将在每个接口上侦听。
正如有人已经提到的那样,无论您想要的 dns 名称如何,您最终都会捕获到特定 IP 地址的所有流量。您可以通过进一步限制过滤器来减少捕获的数据量。您可以添加一个端口并指定一个特定的远程主机或网络。
您可能会发现 tcpflow 对您更有用。它会将 TCP 连接的每一端转储到一个单独的文件中。您可以将它与与 tcpdump 一起使用的过滤器一起使用,也可以加载 pcap 文件。要保存 pcap 文件,请运行:
我将尝试说出 LapTop006 所说的内容,但会有所不同。
当您运行tcpdump -c10 host my.very.specific.host.com命令时,tcpdump 会将“my.very.specific.host.com”解析为 IP 地址并过滤到该 IP 的流量。如果 DNS 为“my.very.specific.host.com”返回多个 IP 地址,tcpdump 将获取返回的第一个 IP 并过滤该 IP。
如果只为“my.very.specific.host.com”返回了几个 IP,您可以这样做:
捕获客户端和代理之间的流量比捕获远程 Web 服务器和代理之间的流量更容易,因为客户端只有一个 IP 地址。(我想如果你想看到的是远程 Web 服务器和代理之间的交互,那么你需要捕获它。你的帖子没有给我足够的继续......)
我会尝试将(内部)IP 地址作为
HOST
.顺便说一下,这里有一个教程http://linux.byexamples.com/archives/283/simple-usage-of-tcpdump/和一个包含所有选项的备忘单 (PDF )。
tcpdump总是在 IP 层工作,即使你给它一个 DNS 名称,它也只是将它解析为一个 IP
您可以使用客户端的地址作为要考虑的主机。
下一步是开始将完整的数据包捕获到一个“pcap”文件,wireshark 可以打开该文件进行全面分析。
除了其他人所说的-使用IP,正确的接口,转储到pcap。
我会建议你摆脱
-c10
旗帜。这指示tcpdump
在收到正好 10 个数据包后退出,这可能不足以满足您想要看到的内容。您想在为网页提供服务的机器上运行 tcpdump。不要使用主机地址;无论如何,您只会捕获到该主机的流量。您希望将端口 80 上的所有内容捕获到文件中,并且您希望确保捕获所有数据,而不截断它。你想要的命令是:
如果您的机器有多个以太网接口,您可能必须指定一个用于捕获流量。如果您发现自己没有捕获流量,请使用
ifconfig -a
查看接口列表及其地址,选择适当的,然后将-i eth1
(或任何接口)选项添加到命令行。一旦有了 pcap 文件,就需要对其进行分析。对于交互式使用,Wireshark是一款出色的工具。将 pcap 文件复制到您的工作站并运行
wireshark -r log.pcap
. 您可以使用过滤器查找具有“主机:some.server.of.interest.com”标头的数据包;这些是感兴趣的虚拟主机的。分析/跟踪 TCP 流将以非常易读的格式向您展示整个 HTTP 对话。如果您想进行自动分析,您可能必须编写一些自定义代码。一种选择是使用诸如tcpflow之类的工具将所有 HTTP 会话转储到文件中,然后使用脚本语言(甚至 grep)来选择感兴趣的文件并对其进行分析。直接读取 pcap 文件也不难,但是重新组装 TCP 会话需要更多的工作。