我用C语言编写了一个简单的服务器应用程序,它在本地主机上运行。如何使用Wireshark捕获本地主机流量?
我用C语言编写了一个简单的服务器应用程序,它在本地主机上运行。如何使用Wireshark捕获本地主机流量?
由于某种原因,以前的答案都不适用于我的情况,所以我会发布一些有效的东西。有一个叫做RawCap的小工具可以在Windows上捕获本地主机流量。优点:
捕获流量后,您可以正常打开Wireshark并检查它。我发现唯一的缺点是您不能设置过滤器,即必须捕获所有本地主机流量,可能会很大。还有一个关于Windows XP SP 3的错误。
更多建议:
我并没有亲自尝试过,但网上的这个答案听起来很有希望:
由于 Windows TCP 栈的性质,Wireshark 实际上无法在 Windows XP 上捕获本地数据包。当数据包在同一台机器上发送和接收时,它们似乎不会跨越 Wireshark 监视的网络边界。
但是有一个解决办法,您可以通过在 Windows XP 计算机上设置(临时)静态路由,将本地流量路由到您的网络网关(路由器)以外。
假设您的 XP IP 地址为 192.168.0.2,网关(路由器)地址为 192.168.0.1,则可以从 Windows XP 命令行运行以下命令,强制所有本地流量出站并跨越网络边界返回,这样 Wireshark 就可以跟踪该数据(请注意,在此情况下,Wireshark 会报告数据包两次,一次是当它们离开您的计算机时,另一次是当它们返回时)。
route add 192.168.0.2 mask 255.255.255.255 192.168.0.1 metric 1
这需要使用cygwin的tail工具,我无法在Windows的原生工具中找到实现方法。他的方法对我来说非常有效,使我能够在捕获的回环流量上实时使用Wireshark的所有过滤功能。
stdout
。因此,从今天开始,上面提供的解决方案可以简化为以下形式,无需使用tail
:`RawCap.exe -q 127.0.0.1 - | Wireshark.exe -i - -k`
您可以在RawCap Redux公告页面上阅读有关新RawCap功能的更多信息:https://www.netresec.com/?page=Blog&month=2020-01&post=RawCap-Redux - Christopher Maynard对于Windows系统,
在Wireshark中无法捕获本地环回的数据包,但是您可以使用一个非常小巧但实用的程序RawCap;
在命令提示符上运行RawCap并选择Loopback Pseudo-Interface(127.0.0.1),然后只需编写数据包捕获文件的名称(.pcap)。
以下是一个简单的演示:
C:\Users\Levent\Desktop\rawcap>rawcap
Interfaces:
0. 169.254.125.51 Local Area Connection* 12 Wireless80211
1. 192.168.2.254 Wi-Fi Wireless80211
2. 169.254.214.165 Ethernet Ethernet
3. 192.168.56.1 VirtualBox Host-Only Network Ethernet
4. 127.0.0.1 Loopback Pseudo-Interface 1 Loopback
Select interface to sniff [default '0']: 4
Output path or filename [default 'dumpfile.pcap']: test.pcap
Sniffing IP : 127.0.0.1
File : test.pcap
Packets : 48^C
是的,您可以使用Npcap Loopback Adapter来监视本地主机流量。