如何监视所有传入的 http 请求?

我需要监视我的应用程序从传入的 http POSTGET请求来自外部,有时在机器内部。

这可能吗?

一直在使用 Fiddler,但是这只是传出不传入(从外部机器)或我配置它不正确?

这是为我的网络应用程序,这意味着接收一个外部服务器的 POST

118958 次浏览

使用 TcpView查看端口监听和连接。这将 没有给你的请求虽然。

为了查看请求,您需要反向的代理,我不知道任何这样的工具。

使用 追踪提供部分请求(请求的前1KB)。

您可以考虑将 Fiddler 作为反向代理运行,您应该能够让客户端连接到 Fiddler 的地址,然后将来自 Fiddler 的请求转发到您的应用程序。

这将需要一点端口操作或客户端配置,这取决于根据您的需求哪些操作更容易。

如何做到这一点的细节在这里: http://www.fiddler2.com/Fiddler/Help/ReverseProxy.asp

你需要做的是 配置 Fiddler 作为“反向代理”工作

在 Fiddler 的网站上有两种不同的方法可以做到这一点。下面是步骤的副本:


第0步

在下列任一选项正常工作之前,必须使其他计算机能够连接到 Fiddler。单击“工具”> “提琴手选项”> “连接”,然后勾选“允许远程计算机连接”复选框。那就关闭小提琴手。

选项 # 1: 将 Fiddler 配置为反向代理

可以配置 Fiddler,这样发送到 http://127.0.0.1:8888的任何流量都会自动发送到同一台机器上的不同端口。要设置此配置:

  1. 开始注册
  2. 在 HKCU 软件 MicrosoftFiddler2中创建一个名为 VERSEProxyForPort 的新 DWORD。
  3. 将 DWORD 设置为您希望将入站流量重新路由到的本地端口(通常为标准 HTTP 服务器设置80端口)
  4. 重启小提琴手
  5. 将浏览器导航到 http://127.0.0.1:8888

选项 # 2: 编写 FiddlerScript 规则

或者,您可以编写一个执行相同操作的规则。

假设您正在一台名为 WEBSERVER 的机器的端口80上运行一个网站。您正在使用 WindowsSmartPhone 设备上的 Internet Explorer Mobile 版本连接到网站,而您无法为该设备配置网络代理。您需要捕获来自电话和服务器响应的流量。

  1. 在 WEBSERVER 计算机上启动 Fiddler,在默认端口8888上运行。
  2. 单击 Tools | Fiddler Options,确保勾选“允许远程客户端连接”复选框。如果需要,重新启动。
  3. 选择规则 | 自定义规则。
  4. 在 OnBeforeRequest 处理程序中,添加一行新代码:
    如果(oSession.host.toLowerCase () = = “ webserver: 8888”) oSession.host = “ webserver: 80”;
  5. 在 SmartPhone 上,定位到 http://webserver:8888

来自 SmartPhone 的请求将显示在 Fiddler 中。请求从端口8888转发到运行 webserver 的端口80。响应通过 Fiddler 发送回 SmartPhone,而 SmartPhone 并不知道内容最初来自端口80。

使用 Wireshark. 。

我还没试过这个: Http://wiki.wireshark.org/capturesetup/loopback

如果可行,那么您可以筛选 http/http contains GET/http contains POST流量。

您可能需要运行两个 Wireshark 实例,一个捕获本地实例,一个捕获远程实例。

我会安装微软网络监视器,配置工具,使其只能看到 HTTP 数据包(过滤端口) ,并开始捕获数据包。

你可以下载 给你

伙计们找到了监控从我的机器到我的机器的请求之间本地流动的所有流量的完美方法:

  1. 安装 < a href = “ https://www.Wireshark.org/”rel = “ nofollow norefrer”> Wireshark

  2. 当您需要捕获从本地主机流向本地主机的流量时,您将很难使用 wireshark,因为它只监视网卡上的传入流量。这样做的方法是添加一个路由到窗口,将强制所有流量通过一个网关,这是捕获在网络接口。

    为此,添加一个 <ip address> <gateway>路由:

     cmd> route add 192.168.20.30 192.168.20.1
    
  3. 然后在 wireshark 上运行一个捕获(确保选择了有字节流过的接口) ,然后过滤。

新增加的路线将以黑色显示(因为它们是本地地址)

Microsoft Message Analyzer 是 Microsoft Network Monitor 3.4的继承者

如果您的 http 传入流量将进入您的网络服务器在58000端口,启动分析器在管理员模式,并点击新的会话:

Use filter: tcp.Port = 58000 and HTTP 使用过滤器: tcp.Port = 58000和 HTTP

跟踪场景: “本地网络接口(Win 8及更早版本)”或“本地网络接口(Win 8.1及更高版本)”取决于您的操作系统

解析级别: 满

在 Windows 上将 Fiddler 配置为“反向代理”

(关于 Mac,请看下面 Partizano 评论的链接)

我知道已经有一个答案暗示了这一点,但是我想提供的解释和指示,Telerik 应该已经提供,并涵盖了一些’陷阱’,所以这里是:

将 Fiddler 配置为“反向代理”意味着什么?

  • 默认情况下,Fiddler 只监视来自运行 Fiddler 的机器的 外向请求
  • 要监视 来了请求,您需要将 Fiddler 配置为作为“反向代理”工作
  • 这意味着您需要将 Fiddler 设置为一个“代理”,该代理将拦截传入的 http 请求,这些请求被发送到您想要监听传入请求的机器上的特定端口(8888)。然后 Fiddler 将这些请求转发到同一台机器上的 Web 服务器,将它们发送到常见的 http 请求端口(对于 https,通常是80或443端口)。实际上这是非常快速和容易做到的!
  • 使用 Fiddler 设置这个的标准方法是让 Fiddler 拦截发送到 Port’8888’的所有请求(因为这通常不会被其他任何东西使用,尽管您可以很容易地使用另一个端口)
  • 然后,您需要使用注册表编辑器让 Fiddler 转发 Fiddler 在端口8888上接收到的任何 http 请求,以便它们被转发到标准的 http 端口(端口80,端口443用于 https 请求,或另一个自定义端口,您的 Web 服务器设置为侦听)

注意: 要使其工作,需要拦截 必须发送到8888端口的任何请求

你可以通过在你的 主机名后面加上: 8888来完成这个任务,例如对于一个 MVC 路由:

Http://abc0:8888/abc1/abc2


演练

确保 Fiddler 可以接受端口8888上的远程 http 请求:

以管理员身份运行 Fiddler 转到 Tools > Fiddler Options > Connections,并确保选中“允许远程计算机连接”,并将“ Fiddler 在端口上监听”设置为8888:

enter image description here

将 Fiddler 配置为将端口8888上接收到的请求转发到端口80

  • 关上小提琴手
  • 开始注册
  • 在 HKEY _ CURRENT _ USER SOFTWARE MicrosoftFiddler2中创建一个名为 VERSEProxyForPort 的新 DWORD。
    • 现在将 DWORD 值设置为您希望将入站流量重新路由到的本地端口(通常是标准 HTTP 服务器的端口80)
  • 为此,右键单击您创建的 DWORD 并选择“修改”。确保“ Base”设置为“ Decimal”,并输入“80”(或其他端口)作为“ Value data”:

确保防火墙上打开了端口8888

  • 您必须确保8888端口对外部请求是开放的(如果服务器受到防火墙保护,那么默认情况下不会打开该端口)

就是这样!Fiddler 现在应该被设置为一个反向代理,以拦截来自端口8888的所有请求(这样您就可以在 Fiddler 中查看它们) ,然后它会将它们转发到您的 Web 服务器以便实际处理。

测试请求

  • 重启小提琴手
  • 若要测试 Fiddler 是否拦截外部请求,请打开浏览器 在你设置 Fiddler 作为反向代理的同一台机器上。将浏览器导航到 http://127.0.0.1:8888
  • 这将测试对端口8888发出基本请求
  • 您应该看到 Fiddler 拦截了请求
  • 现在您可以测试来自另一台机器的请求,例如通过在另一台机器上的浏览器发出请求(其中“ RemoteHostname”是您将 Fiddler 设置为反向代理的机器上的主机名) :

Http://abc0:8888/abc1/abc2

  • 或者,您可以使用 遥控器计算机上的另一个 Fiddler 实例,使用类似于上述 URL 的 URL 来编写请求。这将允许您发出 GET 或 POST 请求。

重要: 一旦您完成查看您的请求,回到工具 > 小提琴手选项 > 连接,并删除“允许远程计算机连接”选项,否则第三方将能够反弹流量通过您的服务器

您也可以尝试使用 HTTP 调试器,它具有显示传入 HTTP 请求的内置能力,并且不需要对系统配置进行任何更改。

HTTP Debugger