监控HTTP、TCP等Web服务流量的工具

44

您使用监视Web服务、SOAP、WCF等传输数据的最佳工具是什么?我看到过一些用Java制作的工具,但它们似乎有点糟糕。我想要的是一个能够作为代理并进行端口重定向的工具(应该具有可配置的监听/重定向端口)。在Windows上有没有这样的工具?


1
我不是很理解这个问题 :) - 你想要监控流量还是想要进行一些形状/限制/重定向/优先处理流量的操作? - anbanm
1
我想要监控流量,因为我不想意外地通过网络发送非常大的对象图。 - huseyint
还有一个新的 + HTTPS: http://www.tcpcatcher.org/ - user956584
11个回答

35

2
默认情况下,Fiddler不会监听针对本地主机的流量 - 要在开发中使用它,请将您的计算机名称用作终点。 - Richard
是的,我在Web开发中经常使用Fiddler,但据我所知它是与IE一起工作的。有没有办法配置它,使我可以在我的Web服务服务器和客户端之间使用它? - huseyint
Fiddler只是一个调试代理工具,如果你将客户端配置为使用127.0.0.1:8888作为代理,你就可以看到所有通过Fiddler的流量。你也可以为远程客户端启用它。 - AnthonyWJones
对于 Microsoft WebDev web 服务器,您不能使用机器名称,因为它不会监听它。相反,您可以使用 http:// ipv4.fiddler:82913/products/1002 来访问您的网站,这样 Fiddler 就能看到它了。 - Simon_Weaver

14

Wireshark不会进行端口重定向,但它可以嗅探和解释许多协议。


3
Wireshark是一个不错的工具,但它只能监测以太网层级别的流量,有点过于底层了。我需要一个专门用于网络服务的工具,并带有适当的用户界面,可以展示漂亮的XML树等信息。 - huseyint

7

现在它被称为Microsoft Message Analyzer - https://www.microsoft.com/en-ie/download/details.aspx?id=44226 - tkit

6

Wireshark(或Tshark)可能是事实上的标准流量检查工具。它不会打扰你,而且无需调整端口重定向和代理设置即可工作。然而,它非常通用,因为我所知道的它没有提供任何专门用于监控 Web 服务流量的工具 - 它只支持 TCP/IP 和 HTTP。

你可能已经看过tcpmon,但我不知道是否有其他工具可以做到类似中间人的功能。


是的,我已经看过tcpmon了,到目前为止它是我发现的最好的工具,但我认为它还可以进一步开发。也许我会写自己的工具 :) - huseyint

5

我尝试了Fiddler,并使用@marxidad提到的反向代理功能,它似乎工作得很好。由于Fiddler对我来说是一个熟悉的UI,并且具有以各种格式显示请求/响应的能力(即原始、XML、Hex),所以我接受它作为这个问题的答案。不过有一点。我使用WCF并且在使用反向代理时遇到以下异常:

The message with To 'http://localhost:8000/path/to/service' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher. Check that the sender and receiver's EndpointAddresses agree

我已经想出了解决方法(谷歌万岁,呃..我的意思是Live Search :p),这是因为我的服务器和客户端的终结点地址不同,端口号不同。如果您遇到相同的异常,请参考下面的MSDN论坛消息:

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2302537&SiteID=1

推荐使用客户端终结点行为,如下面的MSDN文章所解释的:

http://msdn.microsoft.com/en-us/magazine/cc163412.aspx


3
我支持 Wireshark。它非常强大且多功能。 由于这个工具不仅适用于Windows,还适用于Linux或Mac OSX,投资时间学习它(实际上很容易)是有意义的。无论你使用哪种平台或语言,都是有意义的。
问候,
Richard 程序员 http://sili.co.nz/blog

链接http://sili.co.nz/blog无法使用,看起来域名sili.co.nz已经不存在了。 - Mariano Ruiz

3
我过去几年一直使用 Charles ,非常满意。

1

0

0

JMeter的内置代理可用于记录所有HTTP请求/响应信息。

Firefox的"Live HTTP headers"插件可用于查看在发送/接收请求时浏览器端发生了什么。

当您需要拦截和修改请求时,Firefox的"Tamper data"插件可能会很有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接