常见的几种网络抓包及协议分析工具

常见的几种网络抓包及协议分析工具

引言

网络工程师必备技能-抓取网络数据。

在本篇博客中,我们将集中记下几个问题进行探讨:

  • 如何抓取电脑本机发送/接收的网络数据?
  • 如何在主机 A 上抓取 主机 B 上的网络数据?
  • 如何使用第三方设备抓取抓取 主机A 与 主机B 的网络数据?

Wireshark

Wireshark 是免费的抓取数据包、分析数据包的工具,兼容 Windows、Linux、Mac等主流平台。

使用 wireshark 抓包需要的工具是:安装了 wireshark 的 PC。

wireshark 抓包的范围是:抓取安装了 wireshark 的 PC 本机的网卡上流经的数据包。

其中,网卡指的是 PC 上网使用的模块,常见的包括:以太网网卡、wifi 无线网卡,PC 分别使用它们用于连接以太网、wifi 无线网络。

linux 或在 windows 下分别可使用 ifconfig 命令或者 ipconfig /all命令查看当前 PC 上已经安装了哪些网卡。以 linxu 系统为例子,在 linux 输入 ifconfig命令:

$ ifconfig
enp2s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 40:89:84:3c:6b:60  txqueuelen 1000  (以太网)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (本地环回)
        RX packets 12251  bytes 1382881 (1.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12251  bytes 1382881 (1.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.102  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::2ffd:2ae9:e62a:a40b  prefixlen 64  scopeid 0x20<link>
        ether 1c:d0:5a:4b:7d:d2  txqueuelen 1000  (以太网)
        RX packets 398700  bytes 540655478 (540.6 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 149381  bytes 20219957 (20.2 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

上述命令显示该台 linux 主机有两个网卡:一个以太网网卡:enp2s0,一个无线网卡:wlp3s0。

windows 下可以打开 cmd 窗口,输入 ipconfig /all 查看本机的网卡情况:

在这里插入图片描述
在使用 wireshark 时,可以选中这查询到的本机网卡,抓取通过以太网网卡的数据或者通过 wifi 无线网卡交互的数据。
在这里插入图片描述
**注意:**打开 wireshark 软件时,可能需要打开管理员权限才能正确打开上述界面。linux 下打开 wireshark 软件时,使用 sudo wireshark,命令打开它;windows 下打开 wireshark 时,右键选择以管理员权限打开

一些 wireshark 使用的示例可参考 wireshark基本使用(如果你感兴趣,可以留言或者点赞,你的支持,就是我的动力奥)。

wireshark 通常只能抓取本机(通常是电脑)网卡的发送和接受的网络数据,不能抓取其他主机、其他网络设备如路由器的网络数据。当一些设备是简单的网络设备,如手环、手机时,这些设备无法安装 wireshark,此时便无法通过这种方法进行抓包分析。

带抓包功能的路由器

路由器是网络环境中转发数据的设备,现在的路由器不仅提供以太网网线连接的功能,也充当 wifi 连接热点,有时为了分析网络数据,定位网络问题,拥有一台带抓包功能的路由器实在是开发人员的福利。

一些路由器提供了 开发者选项的功能,如这款华为 P20 型号的路由器,通过网页登陆路由器后,可以看到它提供了如图 2-1 所示的系统设置功能,在该选项下,可以使用如图 2-2 所示的“开发者选项”功能,该功能可以用于抓取流经路由器的数据包。但是,目前考虑到一些数据安全问题,拥有该功能的路由器不多,但对于网络设备的开发者而言,拥有一台这样的路由器是在是方便很多了。
在这里插入图片描述

图 2-1

在这里插入图片描述

图 2-2

路由器抓包功能可以抓取大部分流经路由器的数据,这为在一台主机 A 上,抓取局域网内另一台主机B的网络数据提供了方法(因为A与B连接的是同一个路由器,A <–>路由器<–>B,启动抓包后,经过路由器的数据包被记录下来,A 可以查看记录的数据包,分析主机B 的网络情况 )。如图 2-3,在 A 主机上,登陆路由器的网页,并点击开始抓包,抓取一定时间后,点击结束抓包,稍等一段时间后将提示正在下载抓取的数据包文件。在示例中,该文件为 如图 2-3 右上角pktDump.cap文件,它可以通过 wireshark 软件打开,并进行分析。
在这里插入图片描述

图 2-3

如图,在 wireshark 的数据包过滤选项中输入主机 B 的网卡 mac 地址,可以在主机 A 上查看 主机 B 发送到路由器以及路由器转发数据到主机 B 的数据(即主机 B发送和接收的数据)。

在这里插入图片描述

图 2-4

抓包网卡

抓包网卡是一种特殊的网卡,通常用于作为网络嗅探、网络扫描。当通信双方既不是能安装类似 wireshark 抓包工具,也不是能提供抓包功能的路由器时。比如通信双方是两个 wifi 模组(没有屏幕、键盘、windows/linux 系统)时,我们就无法使用上述两种方法实现抓取 A 和 B 的数据包了。一种常用的方法是使用抓包网卡,并配合特殊的抓包软件 Omnipeek(全称 WildPackets Omnipeek,空中无线抓包,并提供网络故障诊断功能),抓取并分析 A 和 B 的数据包。

如图 3-1 所示,A、B、C 三个主机在进行无线通信,抓包网卡 Omnipeek 的作用类似于一个“雷达”,接收它们三者的通信流量。其会将接收的通信数据保存到一个文件内,该文件可以被 wireshark 等网络分析软件打开分析。
在这里插入图片描述

图 3-1

常见的 Omnipeek 抓包网卡形状如下,它们有的像 U 盘,有的像天线。感谢强大的互联网,在很多电商平台,搜索 抓包网卡,我们就能看到很多类似的设备:
在这里插入图片描述

图 3-2

同样的,搜索关键字OmniPeek,我们也能看到一些如何安装及使用 OmniPeek软件的教程。

如果感兴趣,后续我将提供两个典型的案例,简要说明如何使用这种方法进行抓包(点赞更新快)。

其他抓包软件或者工具

就如同使用电工师傅测量电路的电流、电压一样,网络开发维护人员使用上述网络分析工具测量网络情况。除上述几种网络抓包分析工具外,常见的网络分析工具还有 Wirelessmon、Inssider、ixia chariot和 iperf 等工具,读者可自行搜索并了解它们。

点关注,不迷路。关注我,及时获取后续更新,Thanks.

码字不易,欢迎点赞及收藏。

  • 37
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
手机APP抓包是一种重要的测试和分析移动应用程序的方法。以下是几种常用的实用工具: 1. Charles:Charles是一款常用的跨平台抓包工具,支持Windows、Mac、Linux等操作系统。它能够截取手机APP和服务器之间的通信数据,包括请求和响应头信息以及传输的数据包。Charles还提供了类似断点式调试功能,方便开发人员对APP的网络请求进行分析和修改。 2. WiresharkWireshark是一款网络协议分析工具,也可用于手机APP抓包。它支持多种协议,可以分析APP的网络请求和响应,排查网络问题,如找出慢速请求或异常响应。Wireshark需要在电脑上安装,并通过电脑和手机进行网络数据捕获。 3. Fiddler:Fiddler是一款常用的网络调试工具,也能用于手机APP抓包。它可以截取HTTP和HTTPS请求数据,分析响应头信息和包含的数据内容。Fiddler除了提供数据抓包功能外,还可以修改请求和响应数据,实现动态调试。 4. Proxyman:Proxyman是一款专门为开发人员设计的抓包工具,支持iOS和Android设备。它可以截取APP的HTTP和HTTPS网络请求,并提供了可视化的界面展示请求和响应的详细信息。Proxyman还支持断点调试、自动重放和Mock数据等功能,方便开发人员进行APP的网络调试和测试。 这些工具都具有不同的特点和功能,开发人员可以根据自己的需求选择合适的工具进行手机APP抓包和调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

物联网老王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值