题 如何在Wireshark中过滤http流量?


我怀疑我的服务器有很多来自客户端的http请求。 我想测量http流量的大小。 我怎么能用Wireshark做到这一点? 或者可能有另一种使用其他工具的替代解决方案?

这就是Wireshark中单个http请求/响应流量的外观。 ping由WinAPI funciton :: InternetCheckConnection()生成 alt text http://yowindow.com/shared/ping.png

谢谢!


74
2017-12-21 08:22






答案:


Ping数据包应使用ICMP类型8(echo)或0(echo reply),因此您可以使用以下捕获过滤器:

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-filter(7) 手册页。对于显示过滤器,请尝试 显示过滤器 Wireshark维基上的页面。该 “过滤表达式”对话框 可以帮助您构建显示过滤器。


62
2017-12-21 08:33



对不起,我忘了提及“ping”请求的详细信息。这是Windows的ping方式。似乎icmp与我的情况无关。 - par
请参阅我刚刚附上的Wireshark中ping的屏幕截图 - par
我将问题从'ping'更改为'http',所以你的答案在上下文中没有意义,但我+1,因为它是一个很好的ping答案。 - Simeon Pilgrim


只需使用DisplayFilter即可 http 像这样:

display filter example


16
2017-11-26 08:42





这不是一个ping。一个ping,就像已经 说过 by outis,是一个ICMP回应请求。您的跟踪显示HTTP连接的建立和立即终止,就是这样 InternetCheckConnection() 确实。有问题的知识产权,77.222.43.228,解决了 http://repkasoft.com/,我想,这是你传递给的网址 InternetCheckConnection()

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


6
2017-12-21 08:56





使用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

1
2018-03-24 21:10