分享几款好用的抓包软件

在生产部署环境中,特别是在排错或者测试,都离不开抓包分析,今天给大家推荐几款抓包软件。

Wireshark

Wireshark:这是一个免费的开源抓包工具,可以实时分析 Windows、Mac、Unix 和 Linux 系统的网络流量,可以捕获通过网络接口(例如以太网、LAN 或 SDR)的数据包,可以拦截网络流量进行分析处理。它支持所有网络数据包协议,是世界上使用最广泛的网络协议分析器。

官方下载链接:https://www.wireshark.org/download.html

如何使用Wireshark进行抓包

首先,你需要下载并安装Wireshark软件,你可以从官网下载Wireshark的安装包,根据你的操作系统选择合适的版本。安装过程中,你需要同意安装WinPCAP或者Npcap,这是一个必要的组件,用于捕获网络数据包。

其次,你需要启动Wireshark软件,并选择一个网络接口进行抓包,你可以在主界面看到不同的网络接口,例如以太网、无线网、本地回环等。你可以根据你的需求选择一个合适的网络接口,例如如果你想抓取无线网的数据包,你就可以选择无线网接口。双击一个网络接口后,Wireshark就会开始捕获该接口的数据包,并实时显示在界面上。

第三,你需要设置一些过滤条件来筛选你感兴趣的数据包,Wireshark支持多种过滤语法和表达式,你可以在过滤器栏输入你想要的过滤条件,例如如果你只想看HTTP协议的数据包,你就可以输入http,然后按回车键。Wireshark就会只显示HTTP协议的数据包。你也可以使用更复杂的过滤条件,例如ip.src == 192.168.1.1 && tcp.port == 80,这表示只显示源IP地址为192.168.1.1且目标端口为80的TCP协议的数据包。

第四,你需要分析和解析你捕获到的数据包,Wireshark会将每个数据包分成三个部分:概要、详细和原始。概要部分会显示每个数据包的基本信息,例如序号、时间、源地址、目标地址、协议、长度等。详细部分会显示每个数据包的具体内容,按照不同的协议层次进行展开和解释。原始部分会显示每个数据包的十六进制和ASCII码形式。你可以通过点击或者双击一个数据包来查看它的详细和原始部分。Wireshark还提供了一些工具和功能来帮助你分析和解析数据包,例如颜色标记、统计图表、流量跟踪、解码器等。

Charles

Charles:这是一款HTTP代理/HTTP监视器/反向代理工具,可以查看计算机与Internet之间的所有HTTP和SSL/HTTPS通信。这包括请求,响应和HTTP标头(其中包含cookie和缓存信息)等。它可以调试web应用、修改http请求和响应数据;重定向请求数据,DNS欺骗,手机app抓包等。它只支持应用层协议,但在代理抓包方面很优秀。

官方下载链接:https://www.charlesproxy.com/download/

如何使用Charles进行抓包

首先,你需要下载并安装Charles软件,你可以从官网下载Charles的安装包,根据你的操作系统选择合适的版本。安装过程中,你需要同意安装WinPCAP或者Npcap,这是一个必要的组件,用于捕获网络数据包。

其次,你需要启动Charles软件,并设置代理模式。你可以在主界面看到不同的网络接口,例如以太网、无线网、本地回环等。你可以根据你的需求选择一个合适的网络接口,例如如果你想抓取无线网的数据包,你就可以选择无线网接口。双击一个网络接口后,Charles就会开始捕获该接口的数据包,并实时显示在界面上。你也可以在菜单栏选择Proxy -> Proxy Settings来配置代理端口、支持的协议、过滤条件等。

第三,如果你想抓取HTTPS协议的数据包,你需要安装和配置SSL证书。你可以在菜单栏选择Help -> SSL Proxying -> Install Charles Root Certificate来安装Charles根证书到你的电脑上。然后,你需要在菜单栏选择Proxy -> SSL Proxying Settings来添加需要抓取HTTPS协议的域名和端口号。如果你想抓取手机端的HTTPS协议的数据包,你还需要在手机上安装和信任Charles根证书,并设置手机的代理为电脑的IP地址和端口号。

第四,你需要分析和解析你捕获到的数据包,Charles会将每个数据包分成三个部分:概要、详细和原始。概要部分会显示每个数据包的基本信息,例如序号、时间、源地址、目标地址、协议、长度等。详细部分会显示每个数据包的具体内容,按照不同的协议层次进行展开和解释。原始部分会显示每个数据包的十六进制和ASCII码形式。你可以通过点击或者双击一个数据包来查看它的详细和原始部分。Charles还提供了一些工具和功能来帮助你分析和解析数据包,例如颜色标记、统计图表、流量跟踪、解码器等。

第五,如果你想对某个数据包进行修改或者重新发送,你可以使用Composer功能。Composer允许你自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中拖拽一个现有的请求。在Composer界面中,你可以编辑请求方法、URL、头部、正文等信息,并且可以选择不同的执行方式(Execute、Replay、Replay All等)。点击执行按钮后,Charles就会发送你自定义的请求,并且在会话表中显示结果。你可以使用Composer功能来调试或者测试某个请求的效果。

第六,如果你想对某个数据包进行拦截或者替换,你可以使用Map Local或者Map Remote功能。Map Local允许你从本地返回文件,而不用将http request发送到服务器上。这样你可以模拟服务器的响应,或者替换一些资源文件。Map Remote允许你将请求重定向到另一个远程地址,而不用访问原始地址。这样你可以修改请求的目标或者参数。在Map Local或者Map Remote界面中,你可以添加一些规则,指定当某个请求匹配某个条件时,返回什么样的文件或者操作。

Fiddler

Fiddler:这也是一款HTTP代理/HTTP监视器/反向代理工具,与Charles类似,可以记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据。它也可以进行手机app抓包等操作。

官方下载链接:https://www.telerik.com/fiddler

如何使用Fiddler进行抓包

首先,你需要下载并安装Fiddler软件,你可以从官网或者其他可信的网站下载Fiddler的安装包,根据你的操作系统选择合适的版本。安装过程中,你需要同意安装WinPCAP或者Npcap,这是一个必要的组件,用于捕获网络数据包。

其次,你需要启动Fiddler软件,并选择一个网络接口进行抓包,你可以在主界面看到不同的网络接口,例如以太网、无线网、本地回环等。你可以根据你的需求选择一个合适的网络接口,例如如果你想抓取无线网的数据包,你就可以选择无线网接口。双击一个网络接口后,Fiddler就会开始捕获该接口的数据包,并实时显示在界面上。

第三,你需要设置一些过滤条件来筛选你感兴趣的数据包,Fiddler支持多种过滤语法和表达式,你可以在过滤器栏输入你想要的过滤条件,例如如果你只想看HTTP协议的数据包,你就可以输入http,然后按回车键。Fiddler就会只显示HTTP协议的数据包。你也可以使用更复杂的过滤条件,例如ip.src == 192.168.1.1 && tcp.port == 80,这表示只显示源IP地址为192.168.1.1且目标端口为80的TCP协议的数据包。你可以参考Fiddler的官方文档或者其他教程 来学习更多关于过滤语法和表达式的知识。

第四,你需要分析和解析你捕获到的数据包,Fiddler会将每个数据包分成三个部分:概要、详细和原始。概要部分会显示每个数据包的基本信息,例如序号、时间、源地址、目标地址、协议、长度等。详细部分会显示每个数据包的具体内容,按照不同的协议层次进行展开和解释。原始部分会显示每个数据包的十六进制和ASCII码形式。你可以通过点击或者双击一个数据包来查看它的详细和原始部分。Fiddler还提供了一些工具和功能来帮助你分析和解析数据包,例如颜色标记、统计图表、流量跟踪、解码器等。你可以参考Fiddler的官方文档或者其他教程 来学习更多关于分析和解析数据包的知识。

第五,如果你想对某个数据包进行修改或者重新发送,你可以使用Composer功能。Composer允许你自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中拖拽一个现有的请求。在Composer界面中,你可以编辑请求方法、URL、头部、正文等信息,并且可以选择不同的执行方式(Execute、Replay、Replay All等)。点击执行按钮后,Fiddler就会发送你自定义的请求,并且在会话表中显示结果。你可以使用Composer功能来调试或者测试某个请求的效果。

第六,如果你想对某个数据包进行拦截或者替换,你可以使用AutoResponder功能。AutoResponder允许你从本地返回文件,而不用将http request发送到服务器上。这样你可以模拟服务器的响应,或者替换一些资源文件。在AutoResponder界面中,你可以添加一些规则,指定当某个请求匹配某个条件时,返回什么样的文件或者操作。你可以使用正则表达式、精确匹配、搜索等方式来定义规则。你也可以选择暂停数据流,人工干预。你可以使用AutoResponder功能来模拟或者修改某个请求的响应。

Microsoft Network Monitor

Microsoft Network Monitor:这是一款微软出品的强大网络抓包工具,它功能强大且个人觉得在GUI体验方面胜于wireshark,有直观的数据包分组分级展现。它支持所有网络数据包协议,并且可以进行进程抓包,还有强大的过滤与一键任意窗口抓包功能。遗憾的是它仅支持Windows系列系统,并不支持macOS及Linux。

官方下载链接:https://www.microsoft.com/en-us/download/details.aspx?id=4865

如何使用Microsoft Network Monitor进行抓包

首先,你需要下载并安装Microsoft Network Monitor软件,你可以从官网[或者其他可信的网站下载Microsoft Network Monitor的安装包,根据你的操作系统选择合适的版本。安装过程中,你需要同意安装WinPCAP或者Npcap,这是一个必要的组件,用于捕获网络数据包。

其次,你需要启动Microsoft Network Monitor软件,并选择一个网络接口进行抓包,你可以在主界面看到不同的网络接口,例如以太网、无线网、本地回环等。你可以根据你的需求选择一个合适的网络接口,例如如果你想抓取无线网的数据包,你就可以选择无线网接口。双击一个网络接口后,Microsoft Network Monitor就会开始捕获该接口的数据包,并实时显示在界面上。

第三,你需要设置一些过滤条件来筛选你感兴趣的数据包,Microsoft Network Monitor支持多种过滤语法和表达式,你可以在过滤器栏输入你想要的过滤条件,例如如果你只想看HTTP协议的数据包,你就可以输入http,然后按回车键。Microsoft Network Monitor就会只显示HTTP协议的数据包。你也可以使用更复杂的过滤条件,例如ip.src == 192.168.1.1 && tcp.port == 80,这表示只显示源IP地址为192.168.1.1且目标端口为80的TCP协议的数据包。你可以参考Microsoft Network Monitor的官方文档或者其他教程来学习更多关于过滤语法和表达式的知识。

第四,你需要分析和解析你捕获到的数据包,Microsoft Network Monitor会将每个数据包分成三个部分:概要、详细和原始。概要部分会显示每个数据包的基本信息,例如序号、时间、源地址、目标地址、协议、长度等。详细部分会显示每个数据包的具体内容,按照不同的协议层次进行展开和解释。原始部分会显示每个数据包的十六进制和ASCII码形式。你可以通过点击或者双击一个数据包来查看它的详细和原始部分。Microsoft Network Monitor还提供了一些工具和功能来帮助你分析和解析数据包,例如颜色标记、统计图表、流量跟踪、解码器等。

Wireshark和Fiddler有什么区别

Wireshark和Fiddler是两种常用的抓包工具,它们都可以用来捕获和分析网络上的数据包,但是它们也有一些区别,主要有以下几点:

  • Fiddler是一个HTTP代理/HTTP监视器/反向代理工具,它专门用来捕获HTTP和HTTPS的数据包,可以修改请求和响应的数据,也可以进行手机app抓包等操作。Fiddler是以代理服务器的形式工作的,它使用代理地址127.0.0.1,端口8888。Fiddler可以解密HTTPS流量,但是需要安装证书。
  • Wireshark是一个网络协议分析器,它可以捕获所有网络层的数据包,包括TCP、UDP、IP、ARP等协议。Wireshark是以网卡监听的形式工作的,它可以实时分析网络流量,也可以保存和打开数据包文件。Wireshark可以获取HTTPS流量,但是不能解密HTTPS流量,除非导入浏览器的session key。

总之,如果你只关注HTTP和HTTPS协议的通信内容,那么Fiddler可能更适合你,因为它可以方便地修改和调试请求和响应的数据。如果你想分析其他协议或者更底层的网络数据包,那么Wireshark可能更强大,因为它可以支持所有网络数据包协议,并且有强大的协议解析能力。你可以根据你的需求和喜好选择合适的抓包工具来使用。

Fiddler和Charles有什么区别

Fiddler和Charles是两种常用的抓包工具,它们都可以用来捕获和分析网络上的数据包,但是它们也有一些区别,主要有以下几点:

  • Fiddler只能运行在Windows平台,而Charles是基于Java实现的,基本上可以运行在所有主流的桌面系统,例如MacOS和Linux。这对于不同操作系统的用户来说,可能会影响他们的选择。
  • Fiddler开源免费,而Charles是收费的。这对于有一定预算的用户来说,可能会考虑到成本问题。
  • Fiddler和Charles都可以捕获HTTP和HTTPS的数据包,但是安装和配置证书的方式不同。Fiddler可以通过访问一个特定的网址来安装证书。
  • Fiddler和Charles都可以进行断点调试、请求替换、构造请求、代理功能等操作,但是在细节上可能有一些差异。例如,在模拟弱网的时候,Charles是限制带宽来调整模拟弱网的测试,针对局部可以进行一个带宽的一个模拟的效果。而Fiddler是延迟响应时间,而且是整个手机应用都延迟了响应的时间。