Skip to content
Wireshark Wiki 中文翻译整理专题首页原始页面

Loopback 捕获设置

以下将对 loopback 接口上的捕获做一些说明。

如果你试图捕获一台机器发往自身的流量,即使该流量发送到该机器某个网络适配器上的地址,它也不会通过真实网络接口发送。这意味着,如果你尝试在例如分配了目标地址的适配器对应的接口设备上捕获,就看不到该流量。只有在“loopback interface”上捕获时才能看到它,前提是存在这样的接口并且可以在其上捕获;关于哪些平台可以在“loopback interface”上捕获,请参见下一节。

支持的平台

有关 Wireshark 在各平台上的捕获支持,请参见 CaptureSetup/NetworkMedia。总结:你可以在 Linux、包括 macOS 在内的各种 BSD、Solaris 11 以及 Digital/Tru64 UNIX 上的 loopback interface 捕获;在 Irix 和 AIX 上也许可以;但在 Solaris 11 之前的 Solaris、HP-UX 或未安装 Npcap 的 Windows 上绝对不能这样做。

Windows

从 Windows 7 开始:Npcap

Npcap 是 WinPcap 的更新版,使用 NDIS 6 Light-Weight Filter (LWF),由 Yang Luo 在 Google Summer of Code 2013 和 2015 期间为 Nmap 项目完成。Npcap 在 WinPcap 已有功能的基础上增加了若干新功能,包括 loopback 流量捕获。

在捕获接口列表中,选择 "Adapter for loopback traffic capture",然后像平常一样开始捕获。该适配器的数据链路类型为 DLT_NULL。

早期版本的 Npcap(0.9983 之前)会为此安装一个名为 "Npcap Loopback Adapter" 的软件网络适配器。现在不再需要它,并且在某些情况下它可能会干扰网络操作。如果较新安装中仍存在该适配器,可以从 Npcap 安装目录(通常是 C:\Program Files\Npcap)以管理员身份运行 NPFInstall.exe -ul 将其移除。检查 Device Manager(devmgmt.msc)以确保该适配器本身已卸载。

当前最新安装程序可在此处找到:https://npcap.com/#download,源代码可在此处找到:https://github.com/nmap/npcap

从 Wireshark 3.0.0 开始,Windows 安装程序包含并会安装较新版本的 Npcap。

IP 127.0.0.1

你无法使用 WinPcap 在本地 loopback 地址 127.0.0.1 上捕获。以下来自 "Windows network services internals" 的页面解释了原因:The missing network loopback interface。

不过,你可以使用 Npcap 或 RawCap 这样的 raw socket sniffer 在 Windows 中捕获 localhost 网络流量。更多内容见:

其他 IP

你可以添加一个名为 Microsoft Loopback Adapter 的虚拟网卡,但在多数情况下,它也可能无法得到预期结果。

该适配器由 Microsoft 提供:

  • Microsoft:How to install the Microsoft Loopback Adapter in Microsoft Windows Server 2003

  • Microsoft:How to install the Microsoft Loopback adapter in Windows XP

  • Microsoft:How To Install Microsoft Loopback Adapter in Windows 2000

……并且它与各种 UN*X 系统上可用的那些适配器有很大不同。这个适配器是一个可以添加的虚拟网络适配器,但它不能在 127.0.0.1 IP 地址上工作;它会使用自己的 IP 地址。顺便说一句:系统中只能添加一个 Loopback Adapter!

⚠️ 注意:从这个 Loopback Adapter 捕获需要 WinPcap 3.1 正式版,3.1 beta 版本不能工作!

假设你已将 loopback adapter 的 IP 地址设置为 10.0.0.10,并正在该接口上捕获。如果你 ping 这个 10.0.0.10 地址,会收到 ping replies,但你不会在 Wireshark 中看到任何此类流量(很像 127.0.0.1 问题)。如果你 ping 10.0.0.11,由于显然没有远程主机,你不会收到 ping replies,但会在 Wireshark 中看到相应的 ARP requests。

到目前为止,我能看到的唯一好处是,如果将它与 colinux(以及可能的其他 PC 虚拟化软件)一起使用,可以捕获 Windows 与虚拟机之间的流量。- UlfLamping

😃 配方(在 ms loopback adapter / Windows XP 上捕获流量):--- by mitra

1. go to MS Loopback adapter properties, set IP 10.0.0.10, MASK 255.255.255.02. ipconfig /all and look at the MAC-ID for your new adapter.3. arp -s 10.0.0.10 <MAC-ID>4. route add 10.0.0.10 10.0.0.10 mask 255.255.255.2555. to test: "telnet 10.0.0.10"

👍 我现在正在使用 loopback adapter 捕获我注入到 Dyanmips/Dynagen 虚拟路由器网络中的流量。这是一个可能非常有用的工具/功能,我将在未来几周继续测试。就目前而言,我可以将 loopback adapter 连接到虚拟路由器接口,并捕获 ping、arp 等。在不久的将来,我希望将带有 loopback adapter 的服务器连接到虚拟路由器,然后捕获跨 Dynamips/Dynagen 仿真网络的完整客户端/服务器类型交换。-- Scott Vermillion

NOTE:要进入 Microsoft Loopback Adapter Properties:Start -> Settings -> Control Panel -> System -> Device Manager -> Network Adapters,然后右键点击 Microsoft Loopback Adapter 选择 Properties。-- saran

商业替代方案

  • 名为 CommView(来自 TamoSoft)的商业 network sniffer 允许你在 localhost network adapter 上捕获 packet,但它解析的协议更少,因此你可以用 CommView 捕获 packet,将其保存到文件中,然后用 Wireshark 打开。

  • Local Network Monitor 3.2

  • Atelier Web Ports Traffic Analyzer

其他替代方案

  • 添加一条通过网络网关到本机的 route:
route add <your_IP> mask 255.255.255.255 <the_gateway> metric 1

其中 <your_IP> 应不同于 127.0.0.1。它应该(必须)是 ipconfig 命令结果中的 ip address 字段,<the_gateway> 必须是 ipconfig /all 结果中的 default gateway 字段。

这样做后,从你的机器发往自身的所有网络流量都将使用物理网络接口,然后到达网关,再返回给你。因此,你会看到每个 packet 两次,但可以在视图中过滤。

请小心,因为你的机器会使用实际网络与自身通信,这可能会使网络过载。完成测试后,删除新 route 可能是明智的:

route delete &lt;your_IP&gt;
  • Proxocket - A Winsock Proxy Sniffer 由 Luigi Auriemma 编写,这个很棒的工具似乎是一个 Layered Service Provider,可用于捕获应用程序与 Windows 中 Winsock functions 之间的调用。通过这样做,可以有效地按进程捕获 loopback 流量。

我自己使用 proxocket 的经历如下:将 proxocket 中的 ws2_32.dll 安装到一个包含 3 个通过 loopback interface 相互通信的二进制文件的目录中并全部启动后,它生成了 3 个独立的捕获文件,每个进程一个,然后我能够使用 mergecap 将它们合并为单个捕获文件。过滤掉文件中源 IP 地址为 0.0.0.0 的重复 packet 后,我得到了一个相当不错的捕获文件,其中包含 Windows 上的 loopback 流量。有些 packet 的顺序明显不正确,但我很容易发现它们并判断发生了什么。

虽然肯定不如在 *NIX 平台上捕获 loopback 流量那样好/简单,但在使用 RawCap 之前,这是我在 Windows 上获取 loopback 流量的最佳方式。话虽如此,用过 RawCap 之后,我不明白为什么还有人会想用这个。

从 powershell 设置 localhost 捕获

配方和说明在这里。(注意:由于该链接似乎不再有效,这里有一个归档版本。)

这是从法语翻译而来,基于这里描述的方法。

另请参见

  • Capturing on Ethernet Networks

  • Capturing on 802.11 Wireless Networks

  • Capturing on Token Ring Networks

  • Capturing on VLAN Protected Networks

  • Capturing on PPP Networks

  • Capturing on Frame Relay Networks

  • Capturing DOCSIS Traffic

  • Capturing Bluetooth Traffic

  • Capturing on ATM Networks

  • Capturing USB Traffic

  • Capturing IrDA Traffic

  • Capturing on Cisco HDLC Networks

  • Capturing SS7 Traffic

导入自 https://wiki.wireshark.org/CaptureSetup/Loopback,时间为 2020-08-11 23:11:56 UTC

相关 Wireshark Wiki 页面

网络分析技术档案