如何在Wireshark中过滤HTTP流量?


88

我怀疑我的服务器有大量来自其客户端的http请求。我想测量HTTP流量。如何使用Wireshark做到这一点?还是可能存在使用其他工具的替代解决方案?

这是Wireshark中单个http请求/响应流量的外观。ping是由WinAPI函数:: InternetCheckConnection() 替代文本http://yowindow.com/shared/ping.png生成的

谢谢!

Answers:


72

Ping数据包应使用8(回声)或0(回声回复)的ICMP类型,因此可以使用以下捕获过滤器:

icmp

和显示过滤器:

icmp.type == 8 || icmp.type == 0

对于HTTP,可以使用以下捕获过滤器:

tcp port 80

或以下显示过滤器:

tcp.port == 80

要么:

http

请注意,的过滤器http与其他两个过滤器不同,它将包括握手和终止数据包。

如果要测量连接数而不是数据量,可以将捕获或显示过滤器限制在通信的一侧。例如,要仅捕获发送到端口80的数据包,请使用:

dst tcp port 80 

将其与http显示过滤器结合使用,或使用:

tcp.dstport == 80 && http

欲了解更多有关捕获过滤器,请阅读“ 过滤而捕捉 ”从Wireshark的用户指南中,捕获过滤器上的Wireshark的维基页面,或PCAP-滤波器(7)手册页。对于显示过滤器,请尝试Wireshark Wiki上的“ 显示过滤器”页面。在“过滤器表达式”对话框,可以帮助你建立显示过滤器。


1
抱歉,我忘记提及“ ping”请求的详细信息。这是Windows的ping方法。看来icmp与我的情况无关。
票面

请参阅Wireshark的平安我只是附上截图
面值

我将问题从“ ping”更改为“ http”,因此您的回答在上下文中没有任何意义,但我+1,因为它是一个很好的ping答案。
Simeon朝圣者

18

只需使用如下所示的DisplayFilter http

显示过滤器示例


当我这样做时,显示0并收到45k,然后访问网站,有什么想法吗?我正在查看Wi-Fi:en0
SuperUberDuper

7

不是ping。正如outis 所说,ping是一个ICMP回显请求。您的跟踪记录将显示HTTP连接的建立和立即终止,这就是这样InternetCheckConnection()做的。有问题的IP 77.222.43.228解析为http://repkasoft.com/,我想这是您传递给的URL InternetCheckConnection()

您可以使用捕获或显示过滤器对此IP过滤流量host == 77.222.43.228


2

使用Wireshark 1.2+,我将运行以下批处理文件:

:: Script to save a wireshark trace
:: tshark -D to get interface id
@echo off
C:
cd C:\Temp\NetTracing
set PATH=%PATH%;C:\Program Files\Wireshark
echo Tracing host 127.1 or 172.1.1.1 or 10.0.0.1

tshark.exe -i 4 -a duration:900 -S -f "tcp port 80" -w trace.cap
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.