Wireshark感念:

一、wireshark是什么?

wireshark是非常流行的网络封包分析软件,简称小鲨鱼,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。

wireshark是开源软件,可以放心使用。可以运行在Windows和Mac OS上。对应的,linux下的抓包工具是 tcpdump。使用wireshark的人必须了解网络协议,否则就看不懂wireshark了。

二、Wireshark常用应用场景

1. 网络管理员会使用wireshark来检查网络问题

2. 软件测试工程师使用wireshark抓包,来分析自己测试的软件

3. 从事socket编程的工程师会用wireshark来调试

4. 运维人员用于日常工作,应急响应等等

三、Wireshark抓包原理

Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

Wireshark使用的环境大致分为两种,一种是电脑直连网络的单机环境,另外一种就是应用比较多的网络环境,即连接交换机的情况。

「单机情况」下,Wireshark直接抓取本机网卡的网络流量;

「交换机情况」下,Wireshark通过端口镜像、ARP欺骗等方式获取局域网中的网络流量。

端口镜像:利用交换机的接口,将局域网的网络流量转发到指定电脑的网卡上。

ARP欺骗:交换机根据MAC地址转发数据,伪装其他终端的MAC地址,从而获取局域网的网络流量。

Wireshark安装教程

Windows系统安装

  1. 访问Wireshark官网(https://www.wireshark.org/)下载最新稳定版安装包
  2. 运行下载的.exe文件,按向导提示完成安装
  3. 安装过程中勾选"Install WinPcap"或"Npcap"(需管理员权限)
  4. 完成安装后重启系统

macOS系统安装

  1. 通过Homebrew安装:执行brew install wireshark
  2. 或从官网下载.dmg镜像文件手动安装
  3. 首次启动需在系统偏好设置中授权

Linux系统安装

  1. Debian/Ubuntu系:执行sudo apt install wireshark
  2. RHEL/CentOS系:执行sudo yum install wireshark
  3. 将当前用户加入wireshark组:sudo usermod -aG wireshark $USER

Wireshark基础使用

捕获网络数据包

  1. 启动Wireshark,选择需要监控的网卡接口
  2. 点击左上角蓝色鲨鱼鳍图标开始捕获
  3. 使用红色方块按钮停止捕获

五、Wireshark抓包示例

先介绍一个使用wireshark工具抓取ping命令操作的示例,可以上手操作感受一下抓包的具体过程。

1、打开wireshark,主界面如下:

2、选择菜单栏上 捕获 -> 选项,勾选WLAN网卡。这里需要根据各自电脑网卡使用情况选择,简单的办法可以看使用的IP对应的网卡。点击Start,启动抓包。

3、wireshark启动后,wireshark处于抓包状态中。

4、执行需要抓包的操作,如在cmd窗口下执行ping www.baidu.com。

5、操作完成后相关数据包就抓取到了,可以点击 停止捕获分组 按钮。

过滤数据包

  • 显示过滤器:在过滤栏输入表达式如httpip.addr == 192.168.1.1
  • 捕获过滤器:开始捕获前在捕获选项设置,语法如host 8.8.8.8

6、为避免其他无用的数据包影响分析,可以通过在过滤栏设置过滤条件进行数据包列表过滤,获取结果如下。说明:ip.addr == 39.156.70.46 and icmp 表示只显示ICPM协议且主机IP为139.156.70.46的数据包。说明:协议名称icmp要小写。

7、wireshark抓包完成,并把本次抓包或者分析的结果进行保存,就这么简单。关于wireshark显示过滤条件、抓包过滤条件、以及如何查看数据包中的详细内容在后面介绍。

常用分析功能

  1. 右键数据包选择"Follow TCP Stream"查看完整会话
  2. 使用"Statistics"菜单分析流量特征
  3. 通过"Edit > Preferences"调整显示选项

高级技巧

命令行工具使用

  • 捕获到文件:tshark -i eth0 -w capture.pcap
  • 读取已有文件:tshark -r capture.pcap
  • 过滤输出:tshark -r capture.pcap -Y "http"

解码SSL/TLS流量

  1. 配置SSLKEYLOGFILE环境变量
  2. 在Wireshark的SSL协议设置中添加密钥文件路径
  3. 重新捕获HTTPS流量即可解密

性能优化

  • 调整"Capture Options"中的缓冲区大小
  • 使用捕获过滤器减少无关流量
  • 禁用不需要的协议解析器

常见问题解决

无法捕获数据包

  1. 检查是否以管理员/root权限运行
  2. 确认网卡支持混杂模式
  3. 验证驱动程序兼容性

显示乱码问题

  1. 检查"View > Packet Bytes"的字符编码设置
  2. 确保协议解码器选择正确
  3. 更新到最新版本Wireshark

内存占用过高

  1. 限制捕获文件大小和数量
  2. 关闭不需要的实时更新功能
  3. 增加系统交换空间
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐