我需要从来自外部,有时来自机器内部的传入http POST
和GET
请求监控我的应用程序。
这可能吗?
一直在使用fiddler,但这只是传出而不是传入(来自机器外部)或我是否错误地配置了它?
这适用于我的网络应用,旨在从外部服务器接收POST
。
答案 0 :(得分:61)
您需要做的是configure Fiddler to work as a "reverse proxy"
在Fiddler的网站上有关于两种不同方法的说明。以下是步骤的副本:
第0步
在以下任一选项生效之前,您必须启用其他计算机才能连接到Fiddler。为此,请点击工具>提琴手选项>连接并勾选“允许远程计算机连接”复选框。然后关闭Fiddler。
选项#1:将Fiddler配置为反向代理
可以配置Fiddler,以便发送到http://127.0.0.1:8888
的任何流量自动发送到同一台计算机上的其他端口。要设置此配置:
http://127.0.0.1:8888
选项#2:编写FiddlerScript规则
或者,您可以编写执行相同操作的规则。
假设您在名为WEBSERVER的计算机的端口80上运行网站。您在Windows SmartPhone设备上使用Internet Explorer Mobile Edition连接到该网站,您无法为其配置Web代理。您希望捕获来自手机的流量和服务器的响应。
http://webserver:8888
来自SmartPhone的请求将出现在Fiddler中。请求从端口8888转发到运行Web服务器的端口80。响应通过Fiddler发送回SmartPhone,SmartPhone不知道内容最初来自端口80.
答案 1 :(得分:32)
我会安装Microsoft网络监视器,配置该工具,使其只能看到HTTP数据包(过滤端口)并开始捕获数据包。
您可以下载here
答案 2 :(得分:10)
(对于Mac,请参阅以下Partizano评论中的链接)
我知道已经有一个答案暗示了这一点,但是我想提供Telerik 应该提供的解释和说明,并且还包括一些'陷阱',所以这里是:
注意:为此,要拦截的任何请求必须发送到端口8888
您可以通过将:8888附加到主机名来执行此操作,例如对于MVC路由,例如:
的http:// MYHOSTNAME :8888 / 控制器 / 动作
以管理员身份运行Fiddler 转到工具>提琴手选项>连接,并确保选中“允许远程计算机连接”,并且“Fiddler侦听端口”设置为8888:
配置Fiddler将端口8888上收到的请求转发到端口80
就是这样!现在应该将Fiddler设置为反向代理,以拦截来自端口8888的所有请求(以便您可以在Fiddler中查看它们),然后它将它们转发到您的Web服务器以实际处理。
的http:// 的remotehostname :8888 / 控制器 / 动作
重要提示:完成查看请求后,请返回工具>提琴手选项>连接并删除“允许远程计算机连接”选项,否则第三方将能够通过您的服务器退回流量
答案 3 :(得分:9)
Guys找到了一种完美的方法来监控从我的机器到我的机器的请求之间本地流动的所有流量:
当您需要捕获从本地主机流向本地主机的流量时,您将很难使用wireshark,因为这只会监控网卡上的传入流量。这样做的方法是向Windows添加一条路由,强制所有流量通过网关,并在网络接口上捕获。
要执行此操作,请使用 <ip address>
<gateway>
添加路线:
cmd> route add 192.168.20.30 192.168.20.1
然后在wireshark上运行捕获(确保选择包含字节的接口)然后过滤。
新添加的路线将以黑色显示。 (因为它们是本地地址)
答案 4 :(得分:5)
Microsoft Message Analyzer 是Microsoft Network Monitor 3.4的继承者
如果您的http传入流量将以58000端口进入您的Web服务器,请以管理员模式启动Analyzer并单击新会话:
使用filter:tcp.Port = 58000和HTTP
跟踪场景:&#34;本地网络接口(Win 8及更早版本)&#34;或&#34;本地网络接口(Win 8.1及更高版本)&#34;取决于您的操作系统
解析级别:完整
答案 5 :(得分:3)
您可以考虑将Fiddler作为反向代理运行,您应该能够让客户端连接到Fiddler的地址,然后将请求从Fiddler转发到您的应用程序。
这需要一些端口操作或客户端配置,具体取决于根据您的要求更容易。
有关如何操作的详细信息,请访问:http://www.fiddler2.com/Fiddler/Help/ReverseProxy.asp
答案 6 :(得分:2)
答案 7 :(得分:2)
使用Wireshark ..
我没试过这个: http://wiki.wireshark.org/CaptureSetup/Loopback
如果可行,则可以过滤http
/ http contains GET
/ http contains POST
点流量。
您可能必须运行两个Wireshark实例,一个捕获本地实例,一个捕获远程实例。我不确定。
答案 8 :(得分:0)
您还可以尝试HTTP Debugger,它具有显示传入HTTP请求的内置功能,并且不需要对系统配置进行任何更改。