Wireshark无法捕获127.0.0.1的报文

默认情况下,Wireshark无法捕获127.0.0.1的报文,也就是说:当你本地测试一个socket程序,发送/接收到本地端口的时候,Wireshark就无能为力了。

解决方案

方案1 安装npcap,替换默认的winpacp

重新启动Wireshark,就可以看到一个名字中含有Loopback的接口,针对它来抓包就行了。好像比较麻烦

1.如果已经安装了WireShark,并且使用的是WinPacp,那么需要先卸载WireShark。

2.WireShark的版本号必须是高于1.12.8和1.99.9,建议使用2.0.5以上的版本。下载地址为:https://www.wireshark.org/download/,注意:一定要使用这个链接,从首页点击进入的页面下载的时候,会错误的定位到一个不正常的CDN服务器上,导致下载速度极慢。也可以在本站下载:Wireshark-win64-2.0.5

3.下载并且安装最新的Npcap,下载链接地址https://github.com/nmap/npcap/releases,为了防止出现被墙的问题,也可以在本服务器下载:npcap-0.08-r4

安装的时候,需要勾选"Install Npcap in WinPcap API-compatible Mode",否则WireShark是没办法识别到Npcap是否已经安装。

4.WireShark启动之后选择"Npcap Loopback Adapter"进行抓包。如下图:

Wireshark无法捕获127.0.0.1的报文
5.目前遇到的问题就是Npcap还不够稳定,有线情况下,基本都是正常的,但是在WiFi情况下的公司网络中,有时候会导致无法访问网络。此时的解决方法是在出口网卡属性中禁用(不需要在全部网卡中禁用,只需要在出口网卡中禁用即可)。
Wireshark无法捕获127.0.0.1的报文
方案2 RawCap

RawCap是Windows的免费命令行网络嗅探器,它使用原始套接字。

RawCap快速事实:

  • 可以嗅探具有IPv4地址的任何接口,包括127.0.0.1(localhost / loopback)
  • RawCap.exe仅为48 kB
  • 除了.NET Framework,不需要任何外部库或DLL
  • 无需安装,只需下载RawCap.exe并嗅探
  • 可以嗅探大多数接口类型,包括WiFi,WWAN(移动宽带)和PPP接口
    使用简单

这个工具的原理就是先通过该工具截取码流为pcap格式,然后再通过wireshark打开。

具体命令如下:
1.进入命令行(cmd),运行代码如下:

RawCap.exe 127.0.0.1 dumpfile.pcap 或者
RawCap.exe 本地IP dumpfile.pcap

抓好包后,按Ctrl+C,停止抓包。这个时候会在RawCap的同级目录下显示一个dumpfile.pcap文件。通过wireshark打开,就可以看到本地环回的数据包。

下载链接https://www.netresec.com/index.ashx?page=RawCap

现在已经有了新版,可以直接发送消息至wireshark,实现实时监控效果,下面是原文的新旧版本功能对照表。
Wireshark无法捕获127.0.0.1的报文