AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 32115
In Process
Carl Bergquist
Carl Bergquist
Asked: 2009-06-27 03:31:42 +0800 CST2009-06-27 03:31:42 +0800 CST 2009-06-27 03:31:42 +0800 CST

使用 tcpdump 在代理上转储主机的原始数据

  • 772

我试图将通过我们的代理发送的原始数据保存到特定的 url。我的一个朋友给了我使用 tcpdump 的技巧,所以我开始在他们的页面上阅读它。但由于某种原因,我无法使用它。

我试过' tcpdump -c10 host my.very.specific.host.com '但我没有得到任何匹配。是的 =) 我可以看到 server.log 中有来自客户端的某种操作。

如果我使用' tcpdump -c10 ',我会立即得到 10 行。所以我想我想念理解“主机”的概念?

我不能将它指向一个 IP,因为它是一个处理许多不同 URL 的网络服务器。

这真的不是我的领域(程序员)所以,请原谅我的简单问题:) 在此先感谢。

编辑 1

感谢所有的帮助,是的。我应该更清楚地说明我的问题。所以这里有一些“更多”信息。我想做的是捕获从我们的代理到手机的数据。

我这样做的原因是为了确保我们在它进入“移动运营商网关/代理狂野”之前准确地发送我们想要的东西(是的,他们倾向于修改东西而不是他们应该的;))

我感兴趣的信息是http协议。

所以我现在要做的是尝试将在我们的代理和移动运营商网关之间传递的信息转储到“公共”网卡上。对我来说幸运的是,移动运营商只有一个公共网关。

完了,走吧!

proxy tcpdump
  • 6 6 个回答
  • 11340 Views

6 个回答

  • Voted
  1. David Pashley
    2009-06-27T03:48:35+08:002009-06-27T03:48:35+08:00

    您可能对不同的接口有问题。默认情况下,tcpdump 只侦听它找到的第一个以太网接口。如果您添加“-i any”,它将在每个接口上侦听。

    正如有人已经提到的那样,无论您想要的 dns 名称如何,您最终都会捕获到特定 IP 地址的所有流量。您可以通过进一步限制过滤器来减少捕获的数据量。您可以添加一个端口并指定一个特定的远程主机或网络。

    # tcpdump host 12.34.56.78 and port 80 and net 78.65.43.21/24 
    

    您可能会发现 tcpflow 对您更有用。它会将 TCP 连接的每一端转储到一个单独的文件中。您可以将它与与 tcpdump 一起使用的过滤器一起使用,也可以加载 pcap 文件。要保存 pcap 文件,请运行:

    # tcpdump -s 0 -w /tmp/dump.pcap -i any host 12.34.56.78 and port 80
    
    • 6
  2. Evan Anderson
    2009-06-27T03:47:26+08:002009-06-27T03:47:26+08:00

    我将尝试说出 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,您可以这样做:

    tcpdump -c10 host 1.2.3.4 or host 2.3.4.5 or host 3.4.5.6
    

    捕获客户端和代理之间的流量比捕获远程 Web 服务器和代理之间的流量更容易,因为客户端只有一个 IP 地址。(我想如果你想看到的是远程 Web 服务器和代理之间的交互,那么你需要捕获它。你的帖子没有给我足够的继续......)

    • 3
  3. splattne
    2009-06-27T03:40:21+08:002009-06-27T03:40:21+08:00

    我会尝试将(内部)IP 地址作为HOST.

    顺便说一下,这里有一个教程http://linux.byexamples.com/archives/283/simple-usage-of-tcpdump/和一个包含所有选项的备忘单 (PDF )。

    • 1
  4. LapTop006
    2009-06-27T03:40:49+08:002009-06-27T03:40:49+08:00

    tcpdump总是在 IP 层工作,即使你给它一个 DNS 名称,它也只是将它解析为一个 IP

    您可以使用客户端的地址作为要考虑的主机。

    下一步是开始将完整的数据包捕获到一个“pcap”文件,wireshark 可以打开该文件进行全面分析。

    • 0
  5. Dan Carley
    2009-06-27T03:49:50+08:002009-06-27T03:49:50+08:00

    除了其他人所说的-使用IP,正确的接口,转储到pcap。

    我会建议你摆脱-c10旗帜。这指示tcpdump在收到正好 10 个数据包后退出,这可能不足以满足您想要看到的内容。

    • 0
  6. cjs
    2009-06-27T04:05:59+08:002009-06-27T04:05:59+08:00

    您想在为网页提供服务的机器上运行 tcpdump。不要使用主机地址;无论如何,您只会捕获到该主机的流量。您希望将端口 80 上的所有内容捕获到文件中,并且您希望确保捕获所有数据,而不截断它。你想要的命令是:

    sudo tcpdump -w log.pcap -s 65535 port 80
    

    如果您的机器有多个以太网接口,您可能必须指定一个用于捕获流量。如果您发现自己没有捕获流量,请使用ifconfig -a查看接口列表及其地址,选择适当的,然后将-i eth1(或任何接口)选项添加到命令行。

    一旦有了 pcap 文件,就需要对其进行分析。对于交互式使用,Wireshark是一款出色的工具。将 pcap 文件复制到您的工作站并运行wireshark -r log.pcap. 您可以使用过滤器查找具有“主机:some.server.of.interest.com”标头的数据包;这些是感兴趣的虚拟主机的。分析/跟踪 TCP 流将以非常易读的格式向您展示整个 HTTP 对话。

    如果您想进行自动分析,您可能必须编写一些自定义代码。一种选择是使用诸如tcpflow之类的工具将所有 HTTP 会话转储到文件中,然后使用脚本语言(甚至 grep)来选择感兴趣的文件并对其进行分析。直接读取 pcap 文件也不难,但是重新组装 TCP 会话需要更多的工作。

    • 0

相关问题

  • Windows 操作系统的免费代理服务器?[关闭]

  • 从服务器更新 ubuntu 桌面网络

  • 如何配置外部 CentOS 服务器作为 HTTP 代理/中继?

  • 在将联网的第 3 方 Windows CE 设备添加到网络时,我们如何缓解安全问题?

  • 当公司网络被锁定时,如何在公司网络中下载可执行文件?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve