WireShark如何抓取本地localhost的包

今天将自己的电脑既作为客户端又作为服务端进行一个程序的测试,想着用WireShark来抓包分析一下问题,但由于WireShark只能抓取经过电脑网卡的包,由于我是使用localhost或者127.0.0.1进行测试的,流量是不经过电脑网卡的,所以WireShark无法抓包,一番查找之下找到了解决方法。

1 . 以管理员身份打开命令提示符

2 . 输入 route add 本机ip mask 255.255.255.255 网关ip
如果不知道本机ip和网关ip,可以在命令行输入ipconfig查看
例如我的 : route add 192.168.0.106 mask 255.255.255.255 192.168.0.1

这句话的作用是将发给电脑的包转发给路由器,路由器再发给自己的电脑。。避免本地回环

3 . 将我们程序里面的localhost或者127.0.0.1替换成本机ip

4 . 使用WireShark即可抓到本地包

注:在测试完之后,使用route delete 本机ip mask 255.255.255.255 网关ip来删除我们上面的更改,不然我们本机的所有报文都会先经过网卡再回到本机,会比较消耗性能。

 

三、使用 RawCap

需要管理员权限运行 RawCap 。

进入终端(cmd),然后运行:

RawCap.exe 127.0.0.1 dumpfile.pcapRawCap.exe 本地IP dumpfile.pcap

抓好包后,按 Ctrl C,停止抓包。此时会在 RawCap 的同级目录下生成一个dumpfile.pcap文件。用 Wireshark 打开,就可以看到本地环回的数据包了。

四、使用 Npcap

Npcap 是对当前最流行的 WinPcap 工具包进行改进的一个项目。

安装前请先卸载 WinPcap(可以在Wireshark 的Help一栏查看是否在使用 Npcap) 。

安装时要勾选

Use DLT_NULL protocol sa Loopback ...

install npcap in winpcap api-compat mode(选这个,是要兼容 WinPcap)

npcap-0.78-r2

npcap-0.78-r2

安装完成启动 Wireshark, 可以看到在网络接口列表中,多了一项 Npcap Loopback adapter,这个就是来抓本地环回包的网络接口。

wireshark-npcap 捕获界面

wireshark-npcap 捕获界面

发表评论