POST
和 GET
请求中监视我的应用程序。这可行吗?
我一直在使用 Fiddler,但它仅监视出站请求,而不是传入请求(来自机器外部),或者是我的配置不正确吗?
这是针对我的 Web 应用程序,旨在接收来自外部服务器的
POST
。第0步
在使用以下选项之前,您必须允许其他计算机连接到Fiddler。为此,请单击“工具”>“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移动版连接到该网站,且无法配置Web代理。您想捕获来自手机和服务器响应的流量。
http://webserver:8888
来自智能手机的请求将出现在Fiddler中。请求从端口8888转发到运行Web服务器的端口80。响应通过Fiddler发送回智能手机,智能手机不知道内容最初来自端口80。
我会安装Microsoft Network Monitor,配置工具只查看HTTP数据包(过滤端口),并开始捕获数据包。
您可以在这里下载它。
(对于Mac,请参见Partizano下面的链接)
我知道已经有一个答案建议这样做,但我想提供说明和指令,Telerik应该提供,还要涵盖一些注意事项,所以开始吧:
注意:要使此项工作,您想要拦截的任何请求都必须发送到端口8888
您可以通过在主机名后面添加:8888来完成这项工作,例如,对于MVC路由,可以像这样:
http://myhostname:8888/controller/action
以管理员身份运行Fiddler。转到“工具”>“Fiddler选项”>“连接”,确保勾选“允许远程计算机连接”,并将“Fiddler侦听端口”设置为8888:
将Fiddler配置为将在端口8888收到的请求转发到端口80:
就这样! Fiddler现在应该设置为反向代理,以拦截来自端口8888的所有请求(以便您可以在Fiddler中查看它们),然后将它们转发到您的Web服务器以实际处理。
http://remoteHostname:8888/controller/action
重要提示:查看请求后,请返回到“工具” > “Fiddler 选项” > “连接”,并取消选中“允许远程计算机连接”的选项,否则第三方将能够通过您的服务器弹跳流量。
大家发现了一种完美的方式来监控从我的计算机到我的计算机之间流动的所有本地流量:
Install Wireshark
When you need to capture traffic that is flowing from a localhost to a localhost then you will struggle to use wireshark as this only monitors incoming traffic on the network card. The way to do this is to add a route to windows that will force all traffic through a gateway and this be captured on the network interface.
To do this, add a route with <ip address>
<gateway>
:
cmd> route add 192.168.20.30 192.168.20.1
Then run a capture on wireshark (make sure you select the interface that has bytes flowing through it) Then filter.
微软消息分析器是微软网络监视器3.4的继任者。
如果您的http传入流量将进入58000端口的Web服务器,请以管理员模式启动分析器并点击新会话:
使用过滤器:tcp.Port = 58000和HTTP
跟踪场景:“本地网络接口(Win 8及更早版本)”或“本地网络接口(Win 8.1及更高版本)”,取决于您的操作系统
解析级别:完整
http
/http contains GET
/http contains POST
的流量。
oSession.host.ToLower()
。 - David