Windows安装Wireshark实现127.0.0.1抓包
简介
Wireshark(前称Ethereal)是一个网络封包分析软件。官网下载
Npcap 支持 Win7 及以上系统,基于 WinPcap 库,可以抓取通过 127.0.0.1 本地环回地址的包。官网
WinPcap 是 Wireshark 默认抓包工具,据 Wireshark 和 Npcap 的官网说不再更新了。官网
我们的系统是 Win7,原先安装的 Wireshark + WinPcap 组合不支持抓取环回地址的包,所以我们要重新选择安装 Wireshark + Npcap 的组合。
卸载
安装 Npcap
- 第一项:loopback_support,这部分功能现在由 Microsoft loopback Adapter 来支持,所以不需要勾选。传送门:Microsoft loopback Adapter 安装教程
- 第二项:admin_only,勾选后权限控制,只有管理员才能使用 npcap。目前大家都是个人PC没必要勾选
- 第三项:dot11_support,勾选后支持抓取 802.11 WiFi 包,但是也不是所有硬件和网络都支持
- 第四项:winpcap_mode,勾选后兼容 winPcap,默认勾选。
注意:
如果杀毒或防护软件弹出提示,那么请允许 Npcap 的操作权限
如果照此教程安装完 Wireshark 还不支持抓取本地环回地址的包,那你需要确认你本地是否安装过 Microsoft loopback Adapter,教程上面已经给出了,最终结果图如下:
安装 Wireshark
------------恢复内容开始------------
简介
Wireshark(前称Ethereal)是一个网络封包分析软件。官网下载
Npcap 支持 Win7 及以上系统,基于 WinPcap 库,可以抓取通过 127.0.0.1 本地环回地址的包。官网
WinPcap 是 Wireshark 默认抓包工具,据 Wireshark 和 Npcap 的官网说不再更新了。官网
我们的系统是 Win7,原先安装的 Wireshark + WinPcap 组合不支持抓取环回地址的包,所以我们要重新选择安装 Wireshark + Npcap 的组合。
卸载
安装 Npcap
- 第一项:loopback_support,这部分功能现在由 Microsoft loopback Adapter 来支持,所以不需要勾选。传送门:Microsoft loopback Adapter 安装教程
- 第二项:admin_only,勾选后权限控制,只有管理员才能使用 npcap。目前大家都是个人PC没必要勾选
- 第三项:dot11_support,勾选后支持抓取 802.11 WiFi 包,但是也不是所有硬件和网络都支持
- 第四项:winpcap_mode,勾选后兼容 winPcap,默认勾选。
注意:
如果杀毒或防护软件弹出提示,那么请允许 Npcap 的操作权限
如果照此教程安装完 Wireshark 还不支持抓取本地环回地址的包,那你需要确认你本地是否安装过 Microsoft loopback Adapter,教程上面已经给出了,最终结果图如下:
安装 Wireshark
通过 开始 打开开始菜单> 右击“计算机” 打开子菜单> 左击属性,这样就可以打开下图了:
我们是 64 位的系统,所以我选择从官网下载 Wireshark-win64-3.2.5.exe
(2020年,目前是最新版本)
打开 exe 文件之后,一直选中下一步(Next),默认选项就可以了。
其中最后一步是询问是否要安装 USBPcap,官网,正如其名,是用来抓取 USB 口的数据的。
我用不到,所以就没选。最后点击安装(Install)。
捕获回环地址数据报
- 最重要的是要选择 Adapter for loopback traffic capture,这个能够捕捉到本地发出,本地接收的报文
- 我这里选择过滤 port 8080,因为我本地服务器代码指定的是 8080 端口
过滤器
我这里仅展示了一种过滤器语法使用,想要知道更多,推荐一下这篇 传送门
修改 Wireshark 列首选项
关于打开 Column Preferences,你可以选择右击列,从菜单中打开。也可以选择编辑 => 首选项,展开外观 => 选择列
这里还可以编辑你关心的列
总结
总之,你需要安装的有 Npcap,Microsoft loopback Adapter 和 Wireshark,来实现本地回环地址抓包。
本文中没有具体展示抓包过程,不过我相信你使用 wireshark 抓本地包,一定已经是一名技术过硬的软件工程师了,你可能正在用 Go/Python/Java/C++ 中的一门语言进行网络编程。按照以上步骤操作,基本上能实现你运行代码时,底层数据的抓包要求了!祝你好运,我的朋友!