Wireshark 使用教程

从入门到精通的详细指南

安装配置

1

下载适合的版本

根据您的操作系统选择合适的Wireshark版本。Wireshark支持Windows、macOS和Linux等多种操作系统。

  • Windows用户:选择Windows安装版或便携版
  • macOS用户:选择Mac版(通用二进制,支持Intel和Apple Silicon芯片)
  • Linux用户:可以通过包管理器安装或下载源代码编译

您可以在我们的下载页面获取最新版本。

2

Windows系统安装

双击下载的安装程序(.exe文件),按照安装向导进行操作:

  1. 选择安装语言(推荐使用默认的简体中文)
  2. 接受许可协议
  3. 选择安装组件(建议全选,包括Wireshark、WinPcap/Npcap和USBPcap)
  4. 选择安装位置
  5. 选择开始菜单文件夹
  6. 安装WinPcap/Npcap(这是捕获网络数据包所必需的)
  7. 完成安装
3

macOS系统安装

双击下载的DMG文件,然后将Wireshark拖到Applications文件夹中:

  1. 打开DMG文件
  2. 将Wireshark图标拖到Applications文件夹
  3. 首次运行时,系统可能会提示"无法打开Wireshark,因为它来自身份不明的开发者"
  4. 前往"系统偏好设置" > "安全性与隐私" > "通用"选项卡
  5. 点击"仍要打开"按钮
  6. 按照提示安装必要的组件
4

首次运行配置

首次启动Wireshark时,您可能需要进行一些基本配置:

  • 选择界面语言:编辑 > 首选项 > 外观 > 语言
  • 配置捕获选项:编辑 > 首选项 > 捕获
  • 配置名称解析:编辑 > 首选项 > 名称解析
  • 配置字体和颜色:编辑 > 首选项 > 外观

建议以管理员权限运行Wireshark,以获得完整的捕获功能。

基本操作

1

启动Wireshark

从开始菜单(Windows)或应用程序文件夹(macOS)启动Wireshark。启动后,您将看到Wireshark的主界面,包括网络接口列表。

2

选择网络接口

在主界面中,您可以看到可用的网络接口列表。选择您想要捕获数据包的接口:

  • 双击接口名称开始捕获
  • 或者选择接口后点击工具栏上的"开始捕获"按钮
  • 您也可以通过"捕获"菜单 > "开始"来启动捕获

接口列表中会显示每个接口的实时流量情况,帮助您选择正确的接口。

3

查看捕获的数据包

开始捕获后,Wireshark会实时显示捕获到的数据包。主界面分为三个主要部分:

  • 数据包列表面板:显示所有捕获的数据包,包括编号、时间戳、源地址、目标地址、协议和信息
  • 数据包详情面板:显示选中数据包的详细信息,按协议分层显示
  • 数据包字节面板:显示选中数据包的原始字节数据
4

停止和保存捕获

要停止捕获,可以使用以下方法:

  • 点击工具栏上的"停止捕获"按钮
  • 通过"捕获"菜单 > "停止"
  • 使用快捷键Ctrl+E(Windows)或Command+E(macOS)

停止捕获后,您可以保存捕获的数据包:

  • 点击工具栏上的"保存"按钮
  • 通过"文件"菜单 > "保存"
  • 使用快捷键Ctrl+S(Windows)或Command+S(macOS)

Wireshark默认使用PCAPNG格式保存捕获文件,也支持其他格式如PCAP。

捕获过滤

1

什么是捕获过滤

捕获过滤器用于在数据包被Wireshark捕获之前进行过滤,减少捕获的数据量,提高捕获效率。捕获过滤器使用BPF(Berkeley Packet Filter)语法。

2

设置捕获过滤器

在开始捕获前,可以设置捕获过滤器:

  1. 在主界面中选择要使用的网络接口
  2. 在接口列表下方的"捕获过滤器"文本框中输入过滤表达式
  3. 点击"开始捕获"按钮

您也可以在捕获选项对话框中设置捕获过滤器:

  1. 点击工具栏上的"捕获选项"按钮
  2. 在"捕获过滤器"文本框中输入过滤表达式
  3. 点击"开始"按钮
3

常用捕获过滤表达式

以下是一些常用的捕获过滤表达式示例:

# 过滤特定主机的流量
host 192.168.1.1

# 过滤特定网段的流量
net 192.168.1.0/24

# 过滤特定端口的流量
port 80

# 过滤特定协议的流量
tcp
udp
icmp

# 组合过滤条件
host 192.168.1.1 and port 80
tcp port 80 or tcp port 443
not arp

# 过滤特定源或目标的流量
src host 192.168.1.1
dst host 192.168.1.1
src port 80
dst port 80
4

捕获过滤的优缺点

优点:

  • 减少捕获的数据量,节省磁盘空间
  • 提高捕获效率,减少系统资源占用
  • 可以过滤掉不需要的流量,专注于感兴趣的数据包

缺点:

  • 过滤后的数据包无法恢复,如果过滤条件设置不当,可能会丢失重要数据
  • 语法相对复杂,需要一定的学习成本
  • 只能在捕获前设置,无法在捕获过程中修改

提示:如果您不确定需要捕获哪些流量,建议先不设置捕获过滤器,捕获所有流量,然后使用显示过滤器进行过滤。

显示过滤

1

什么是显示过滤

显示过滤器用于在已捕获的数据包中筛选出符合条件的数据包进行显示,不会影响已捕获的数据。显示过滤器使用Wireshark自己的过滤语法,功能强大且灵活。

2

设置显示过滤器

在Wireshark主界面的顶部有一个显示过滤器文本框,您可以在这里输入过滤表达式:

  1. 点击显示过滤器文本框
  2. 输入过滤表达式
  3. 按Enter键或点击文本框右侧的箭头按钮应用过滤器

Wireshark提供了显示过滤器表达式的自动补全功能,当您输入时会显示可能的选项。

3

常用显示过滤表达式

以下是一些常用的显示过滤表达式示例:

# 过滤特定主机的流量
ip.addr == 192.168.1.1

# 过滤特定网段的流量
ip.addr >= 192.168.1.0 and ip.addr <= 192.168.1.255

# 过滤特定端口的流量
tcp.port == 80
udp.port == 53

# 过滤特定协议的流量
http
dns
icmp

# 组合过滤条件
ip.addr == 192.168.1.1 and tcp.port == 80
tcp.port == 80 or tcp.port == 443
not arp

# 过滤特定源或目标的流量
ip.src == 192.168.1.1
ip.dst == 192.168.1.1
tcp.srcport == 80
tcp.dstport == 80

# 过滤特定长度的数据包
frame.len > 100

# 过滤包含特定字符串的数据包
http.request.uri contains "login"

# 过滤特定HTTP方法的请求
http.request.method == "GET"
http.request.method == "POST"
4

显示过滤的高级技巧

保存和加载显示过滤器:

  • 点击显示过滤器文本框右侧的"保存"按钮可以保存当前过滤器
  • 点击"保存"按钮旁边的下拉箭头可以选择已保存的过滤器

清除过滤器:

  • 点击显示过滤器文本框右侧的"清除"按钮
  • 或者删除文本框中的内容并按Enter键

使用过滤器表达式构建器:

  • 点击显示过滤器文本框右侧的"表达式"按钮
  • 在弹出的对话框中选择协议和字段
  • 选择比较运算符
  • 输入值
  • 点击"确定"按钮将表达式添加到过滤器文本框

协议分析

1

协议分层显示

Wireshark以分层方式显示数据包的协议信息,按照OSI模型或TCP/IP模型的层次结构组织。在数据包详情面板中,您可以展开或折叠各个协议层,查看详细信息。

通常,数据包的协议层次结构如下(从下到上):

  • 物理层(通常不显示)
  • 数据链路层(如Ethernet)
  • 网络层(如IP)
  • 传输层(如TCP、UDP)
  • 应用层(如HTTP、DNS、SMTP)
2

分析HTTP协议

HTTP是最常用的应用层协议之一,Wireshark提供了强大的HTTP协议分析功能:

  1. 使用显示过滤器http过滤HTTP流量
  2. 在数据包列表中选择一个HTTP数据包
  3. 在数据包详情面板中展开HTTP部分,查看请求或响应的详细信息
  4. 您可以查看HTTP方法、URL、头部字段、Cookie等信息

对于HTTP请求和响应的正文内容,可以在数据包详情面板的底部找到"HTTP payload"或类似部分。

3

分析TCP协议

TCP是一种面向连接的传输层协议,Wireshark可以帮助您分析TCP连接的建立、数据传输和关闭过程:

  1. 使用显示过滤器tcp过滤TCP流量
  2. 查找TCP三次握手:寻找SYN、SYN-ACK和ACK数据包
  3. 分析TCP标志位:SYN、ACK、FIN、RST、PSH等
  4. 查看TCP窗口大小、序列号和确认号
  5. 寻找TCP四次挥手:FIN-ACK、ACK、FIN-ACK、ACK数据包

Wireshark还提供了TCP流分析功能,可以重组TCP会话中的所有数据:

  1. 右键点击一个TCP数据包
  2. 选择"跟踪流" > "TCP流"
  3. 在弹出的对话框中查看完整的TCP会话数据
4

分析DNS协议

DNS协议用于域名解析,Wireshark可以帮助您分析DNS查询和响应:

  1. 使用显示过滤器dns过滤DNS流量
  2. 分析DNS查询:查看查询的域名、查询类型(A、AAAA、MX等)
  3. 分析DNS响应:查看返回的IP地址、TTL值等
  4. 识别DNS记录类型:A记录、AAAA记录、CNAME记录、MX记录等

提示:您可以使用显示过滤器dns.flags.response == 0只显示DNS查询,使用dns.flags.response == 1只显示DNS响应。

统计功能

1

基本统计信息

Wireshark提供了丰富的统计功能,帮助您分析网络流量的特征和模式。要访问统计功能,请点击菜单栏中的"统计"选项。

常用的统计功能包括:

  • 捕获文件属性:显示捕获文件的基本信息
  • 协议分层:显示各层协议的分布情况
  • 会话:显示网络会话的详细信息
  • 端点:显示网络端点的通信情况
  • IP统计:显示IP地址的使用情况
  • HTTP统计:显示HTTP请求和响应的统计信息
2

协议分层统计

协议分层统计显示了各层协议的数据包数量和字节数,帮助您了解网络流量的协议分布:

  1. 点击"统计"菜单 > "协议分层"
  2. 查看各层协议的数据包数量、字节数和百分比
  3. 可以选择是否显示子协议
  4. 可以导出统计结果

这对于快速了解网络中使用的主要协议非常有用。

3

会话分析

会话分析显示了网络中所有的通信会话,包括通信双方、使用的协议、数据量等信息:

  1. 点击"统计"菜单 > "会话"
  2. 选择要显示的会话类型(TCP、UDP、IP等)
  3. 查看会话的详细信息,包括源地址、目标地址、端口、数据包数量、字节数等
  4. 可以按不同的列进行排序
  5. 双击会话可以过滤显示该会话的所有数据包

会话分析对于识别大量数据传输的连接和潜在的网络问题非常有用。

4

流量图表

Wireshark提供了多种流量图表,帮助您直观地分析网络流量的变化趋势:

  1. 点击"统计"菜单 > "I/O图表"
  2. 查看数据包数量或字节数随时间的变化
  3. 可以自定义图表的时间范围、Y轴单位等
  4. 可以添加多个图表,显示不同类型的流量

另外,您还可以使用"统计"菜单 > "流量图"查看更详细的流量可视化。

流量图表对于识别网络流量的峰值、周期性模式和异常情况非常有用。

高级技巧

1

使用专家信息

Wireshark的专家信息功能可以自动分析捕获的数据包,识别潜在的问题和异常情况:

  1. 点击"分析"菜单 > "专家信息"
  2. 查看不同级别的警告和错误信息:聊天、备注、警告、错误、严重
  3. 点击具体的信息可以过滤显示相关的数据包

专家信息对于快速识别网络问题非常有用,如TCP重传、重复ACK、零窗口等。

2

使用着色规则

Wireshark允许您为不同类型的数据包设置不同的颜色,帮助您快速识别特定类型的流量:

  1. 点击"视图"菜单 > "着色规则"
  2. 查看或编辑现有的着色规则
  3. 点击"新建"按钮创建新的着色规则
  4. 设置规则名称、过滤器表达式和颜色

默认情况下,Wireshark已经为常见的协议和情况设置了着色规则,如TCP SYN数据包为绿色,TCP RST数据包为红色等。

3

使用命令行参数

Wireshark支持多种命令行参数,可以在启动时指定各种选项:

# 启动Wireshark并开始捕获
wireshark -i eth0 -k

# 打开指定的捕获文件
wireshark capture.pcapng

# 使用特定的显示过滤器启动Wireshark
wireshark -Y "http"

# 启动Wireshark并应用捕获过滤器
wireshark -f "host 192.168.1.1" -i eth0 -k

# 静默模式启动(不显示主窗口)
wireshark -q -i eth0 -w capture.pcapng

命令行参数对于自动化捕获和分析任务非常有用。

4

使用自动保存功能

Wireshark的自动保存功能可以定期将捕获的数据保存到文件,避免数据丢失并方便后续分析:

  1. 点击"捕获"菜单 > "选项"
  2. 在"输出"选项卡中,勾选"自动创建新文件"
  3. 设置文件大小限制或时间限制
  4. 设置文件命名模式
  5. 点击"开始"按钮开始捕获

自动保存功能对于长时间捕获和监控网络非常有用。

5

使用远程捕获

Wireshark支持从远程设备捕获数据包,这对于分析远程服务器或网络设备的流量非常有用:

  1. 在远程设备上安装并运行Wireshark的捕获服务(如rpcapd)
  2. 在本地Wireshark中,点击"捕获"菜单 > "选项"
  3. 点击"管理接口"按钮
  4. 点击"远程接口"选项卡
  5. 点击"添加"按钮,输入远程设备的IP地址和端口
  6. 选择远程接口并开始捕获

远程捕获功能对于无法直接在目标设备上运行Wireshark的情况非常有用。

开始使用 Wireshark

下载最新版本的 Wireshark,按照本教程开始您的网络分析之旅。

免费下载 Wireshark 4.6.4
下载