Wireshark localhost流量捕获

Uda*_*age 111 networking localhost packet-capture wireshark packet-sniffers

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

cni*_*tar 65

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

简介:您可以在Linux上的环回接口,包括Mac OS X和Digital/Tru64 UNIX的各种BSD上捕获,您可能可以在Irix和AIX上进行捕获,但在Solaris,HP上绝对不能这样做-UX或Windows.


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

  • 我发现仅仅将自己的IP放在wireshark而不是环回中是不够的; 添加路线是必要的,它在我的情况下工作. (7认同)

Mil*_*kic 48

出于某种原因,以前的答案都不适用于我的情况,所以我会发布一些可以解决问题的方法.有一个名为RawCap的小宝石可以在Windows上捕获本地主机流量.好处:

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

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

几点建议:


cip*_*hor 47

在Windows平台上,还可以使用Wireshark捕获localhost流量.您需要做的是安装Microsoft环回适配器,然后嗅探它.

  • 我在Win 7上运行了同样的工作.设备管理器 - >添加旧硬件 - >我会选择 - >网络 - >微软 - >环回适配器.安装完成后,使用您选择的IP地址进行配置.然后:**重新安装wireshark**以便它将在新接口上重新安装捕获驱动程序 - 这必须在您向Windows,loopback或real添加新接口时执行. (17认同)
  • 在Win 7上遵循了@antiduh说明,虽然我确实看到了一些netbios查询,但我没有在localhost上看到HTTP流量. (4认同)

feu*_*ene 26

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

由于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

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

  • 我试过这个,发现它运作得很好. (6认同)

Yan*_*Luo 10

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

  • 很高兴知道 NPcap 在商业环境中使用有一些许可限制。 (2认同)

Lev*_*glu 8

对于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
Run Code Online (Sandbox Code Playgroud)


Ric*_*fer 8

您可以通过立即读取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过滤功能.

  • **更新**:Netresec 今天(2020 年 1 月 30 日)刚刚发布了新版本的 RawCap,现在支持写入管道或“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 (4认同)
  • 对我来说,关键部分是启动第二个cmd命令有一些延迟,否则Wireshark无法读取.pcap文件.据推测,因为开始时需要记录一些流量. (3认同)

cmd*_*cmd 6

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

RawCap 可以捕获任何 ip 上的原始数据包,包括127.0.0.1(本地主机/环回)。Rawcap 也可以生成pcap文件。您可以pcap使用Wireshark打开和分析该文件。

有关如何使用 RawCap 和 Wireshark 监视 localhost 的完整详细信息,请参见此处