Wireshark localhost流量捕获

时间:2011-05-01 07:40:07

标签: networking localhost wireshark packet-capture packet-sniffers

我在C中编写了一个在localhost上运行的简单服务器应用程序。如何使用Wireshark捕获localhost流量?

9 个答案:

答案 0 :(得分:63)

如果您使用的是Windows ,则无法 - 请参阅下文。您可以使用机器的本地地址,然后您就可以捕获内容。请参阅 CaptureSetup/Loopback

  

总结:你可以捕捉到   Linux上的loopback接口,on   各种BSD,包括Mac OS X和   在Digital / Tru64 UNIX上,你可能会   能够在Irix和AIX上完成它,但是   你肯定不能这样做   Solaris,HP-UX或Windows


编辑:大约3年后,这个答案不再完全正确。链接页面包含在环回接口上捕获的说明

答案 1 :(得分:47)

在Windows平台上,还可以使用Wireshark捕获localhost流量。 您需要做的是安装Microsoft loopback adapter,然后嗅探它。

答案 2 :(得分:46)

出于某种原因,以前的答案都没有在我的案例中有效,所以我会发布一些可以解决问题的方法。有一个名为RawCap的宝石可以捕获Windows上的本地主机流量。优点:

  • 只有17 kB!
  • 无需外部库
  • 使用极其简单(只需启动它,选择环回接口和目标文件即可)

捕获流量后,您可以打开它并正常检查Wireshark。我发现的唯一缺点是你不能设置过滤器,即你必须捕获所有可能很重的localhost流量。关于Windows XP SP 3还有一个bug

更多建议:

答案 3 :(得分:26)

我还没有尝试过这个,但网上的答案听起来很有希望:

  

Wireshark实际上无法在Windows XP上捕获本地数据包   Windows TCP堆栈的本质。发送数据包时   在同一台机器上收到他们似乎无法通过网络   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

http://forums.whirlpool.net.au/archive/1037087,刚刚访问过。

答案 4 :(得分:10)

请尝试Npcap:https://github.com/nmap/npcap,它基于WinPcap并支持Windows上的环回流量捕获。 Npcap是Nmap(http://nmap.org/)的子项目,因此请报告Nmap开发列表中的任何问题(http://seclists.org/nmap-dev/)。

答案 5 :(得分:7)

您可以通过立即读取RawCap的输出来查看Wireshark中的环回流量。 cmaynard描述了这个巧妙的approach at the Wireshark forums。我会在这里引用它:

  

[...]如果你想在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过滤功能。

答案 6 :(得分:4)

对于 Windows

您无法在 Wireshark 中捕获本地环回的数据包,但是,您可以使用一个名为 RawCap 的非常小但有用的程序;

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

答案 7 :(得分:3)

您无法在Solaris,HP-UX或Windows上捕获环回,但是您可以使用 RawCap 等工具轻松解决此限制。

RawCap可以捕获任何IP上的原始数据包,包括127.0.0.1(localhost / loopback)。 Rawcap还可以生成pcap文件。您可以使用 Wireshark 打开并分析pcap文件。

有关如何使用RawCap和Wireshark监控localhost的详细信息,请参阅here

答案 8 :(得分:2)

是的,您可以使用Npcap回送适配器监视本地主机流量