作者:大侠aaaaaaaaaaa_225 | 来源:互联网 | 2023-10-13 05:42
目录 1.场景描述2.方法一:(Wireshark+Npcap实现)3. 方法二:(Wireshark+WinPcap+routeadd实现)–推荐1.场景描述为什么Wiresha
目录
1. 场景描述
2. 方法一:(Wireshark+Npcap实现)
3. 方法二:(Wireshark+WinPcap+route add实现)–推荐
1. 场景描述
为什么Wireshark本地回环无法抓包?
因为发往本机的数据包是通过回环地址的,即:数据包不会通过真实的网络接口发送,因此我们需要通过设置路由规则来让本来发到虚拟网络接口的数据包发送到真实网络接口即可。
场景描述:在网络程序开发的过程中,有时候会把本机既作为客户端又作为服务器端来调试代码,使得本机自己和自己通信。但是wireshark此时是无法抓取到数据包的,需要通过简单的设置才可以。
2. 方法一:(Wireshark+Npcap实现)
windows系统没有提供本地回环网络的接口,用wireshark监控网络的话只能看到经过网卡的流量,看不到访问localhost的流量,因为wireshark在windows系统上默认使用的是WinPcap来抓包的,现在可以用Npcap来替换掉WinPcap,Npcap是基于WinPcap 4.1.3开发的,api兼容WinPcap。
1) 下载安装Npcap
下载Npcap安装包, 安装过程中会检测是否安装了WinPcap,如果安装会提示卸载,卸载之后继续完成安装。当然,如果还没有安装wireshark安装,安装wireshark不要安装WinPcap了
2) 抓包
安装完成启动wireshark, 可看到在网络接口列表中,多了一项Npcap Loopback adapter,这个就是来抓本地回环包的网络接口了。不仅可以抓URL是localhost的,也可以是127.0.0.1,当然,抓本机IP也是完全可以的
这里我本地启动了UDP的客户端和服务端demo,进行抓取通信的数据流量,并进行追踪流UDP流。
3) 注意事项:
Npcap安装后可能会影响电脑无线网卡无法正常使用,感叹号,提示连接不成功,即使是没有mac绑定的无线路由。卸载Npcap后就OK。所以建议Wireshark+WinPcap抓包,想抓本地回环包,使用文中方法二。
3. 方法二:(Wireshark+WinPcap+route add实现)–推荐
参考官网
1) 以管理员身份运行cmd: 执行ipconfig查看本机的ip以及网关信息
2) 添加路由规则: route add 本机IP mask 255.255.255.255 网关 metric 1
管理员cmd运行: route add 172.20.34.22 mask 255.255.255.255 172.20.34.254 metric 1
3) wireshark进行抓包
此时便可以抓到本机自己同自己的通信包,这样配置的原因是将发往本机的包发送到网关,而此时wireshark可以捕获到网卡驱动的报文实现抓包。
这里我本地启动了UDP的客户端和服务端demo,进行抓取通信的数据流量,并进行追踪流UDP流。
4) 删除路由规则: route delete 本机IP
管理员cmd运行:route delete 172.20.34.22
原因:抓包完毕后,删除路由,否则所有本机报文都经过网卡出去走一圈回来,很耗性能。
注意:此方法有一个缺点,就是本地请求的URL的IP只能写本地的IP地址,不能写localhost或127.0.0.1,否则还是抓不到包。