我用 C 语言编写了一个在 localhost 上运行的简单服务器应用程序。如何使用 Wireshark 捕获本地主机流量?
9 回答
如果您使用的是 Windows ,这是不可能的- 请阅读下文。您可以改用机器的本地地址,然后您就可以捕获内容。请参阅CaptureSetup/Loopback。
总结:你可以在 Linux 上的 loopback 接口上捕获,在包括 Mac OS X 在内的各种 BSD 上,以及在 Digital/Tru64 UNIX 上,你可能可以在 Irix 和 AIX 上进行捕获,但在 Solaris、HP 上绝对不能这样做-UX ...
尽管该页面提到这在单独使用 Wireshark 的 Windows 上是不可能的,但您实际上可以使用其他答案中提到的解决方法来记录它。
编辑:大约 3 年后,这个答案不再完全正确。链接页面包含在环回接口上捕获的说明。
在 Windows 平台上,还可以使用 Wireshark 捕获 localhost 流量。您需要做的是安装Microsoft 环回适配器,然后对其进行嗅探。
我实际上并没有尝试过,但是来自网络的这个答案听起来很有希望:
由于 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
通过立即读取RawCap的输出,您可以在 Wireshark 中实时查看环回流量。cmaynard在 Wireshark 论坛上描述了这种巧妙的方法。我将在这里引用它:
[...] 如果您想在 Wireshark 中查看实时流量,您仍然可以通过从一个命令行运行 RawCap 并从另一个命令行运行 Wireshark 来实现。假设您有 cygwin 的尾巴可用,这可以使用类似这样的方法来完成:
cmd1: RawCap.exe -f 127.0.0.1 dumpfile.pcap
cmd2: tail -c +0 -f dumpfile.pcap | Wireshark.exe -k -i -
它需要 cygwin 的尾巴,而我找不到使用 Windows 的开箱即用工具来做到这一点的方法。他的方法对我来说非常有效,并且允许我在实时捕获的环回流量上使用所有 Wiresharks 过滤器功能。
请尝试 Npcap:https ://github.com/nmap/npcap ,它基于 WinPcap,支持 Windows 上的环回流量捕获。Npcap 是 Nmap ( http://nmap.org/ ) 的一个子项目,所以请在 Nmap 的开发列表 ( http://seclists.org/nmap-dev/ )上报告任何问题。
对于Windows,
您无法在Wireshark中为Local Loopback捕获数据包,但是您可以使用一个非常小但有用的程序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 监控 localhost 流量