WireShark 用户界面
WireShark 主窗口如下所示:
整个就是常规的 GUI 程序组件,从上到下依次为:
- 菜单(menu): 用于启动对应操作
- 主工具栏(main toolbar): 提供对菜单中常用操作的快速访问
- 过滤器工具栏(filter toolbar): 允许用户设置显示过滤器(display filters)来过滤要在窗格中显示的数据包
- 数据包列表窗格(packet list pane): 显示捕获的每个数据包的摘要,通过点击窗格中的数据包可以控制其他两个窗格中显示的内容
- 数据包详细信息窗格(packet details pane): 更详细的显示在数据包列表窗格中的数据包
- 数据包字节信息窗格(packet bytes pane): 显示数据包中的数据
- 数据包图例窗格(packet diagram pane): 以教科书中网络协议图例的形式显示数据包的协议组成(上图没有该窗格,需要在设置中设置)
- 状态栏(statusbar): 相似有关当前程序状态和捕获数据的一些信息
菜单
所有包含了对应的操作,他们被分为几类:
- 文件(File): 包含用于打开和合并捕获文件,保存、打印或导出捕获文件等功能
- 编辑(Edit): 用于查找数据包、时间参考和标记一个或多个数据包、处理配置文件以及设置首选项(Preferences)
- 视图(View): 控制捕获数据的相似,包括数据包着色、缩放字体、在单独窗口中显示数据包、扩展和折叠数据包信息树等
- 跳转(Go): 包含要跳转到特定数据包的操作
- 捕获(Capture): 启动和停止捕获以及编辑捕获过滤器(capture filters)
- 分析(Analyze): 用于操作显示过滤器、启动和禁用协议剖析、配置用户指定的解码以及遵循 TCP 流等相关操作
- 统计(Statistics): 显示各种统计信息窗口,包括已捕获的数据包的摘要、相似协议层次结构等
- 电话(Telephony): 用于显示各种电话相关的统计窗口,包括媒体分析、流程图等
- 无线(Wireless): 此菜单包含用于显示蓝牙和 IEEE 802.11 无线统计信息
- 工具(Tools): 包含 WireShark 中可用的各种工具,例如创建防火墙 ACL 规则
- 帮助(Help): 用户帮助
主工具栏
主工具栏提供了常用的命令,用户无法自定义此工具栏,可以在view -> Main ToolBar
来显示和隐藏主工具栏:
主工具栏大致被分为四部分:
Start|Stop|Restart|Options...
: 对应的是捕获(Capture)菜单的内容Open|Save|Close|Reload
: 对应的是文件(File)菜单的常用操作Find|Go Back|Go Forward|Go Packet|Go First|Go First
: 对应的是跳转(Go)菜单的常用操作Zoom|Resize
: 对应的是视图(View)中的部分操作
过滤器工作栏
通过过滤器工作栏可以快速编辑和应用显示过滤器来定位需要的数据包:
从左到右的图标含义依次为:
- 书签(Bookmark): 管理以保存的过滤器(默认会提供一些常见的过滤器)
- 过滤器输入(Filter Input): 用于输入过滤器表达式,对于无效的输入背景将变为红色
- 清除(Clear): 重置当前显示过滤器并清除过滤器输入区域
- 应用(Apply): 应用过滤器输入区域的显示过滤器
- 最近输入(Recent): 就是 Apply 按钮右侧的倒三角,弹出最近应用的过滤器列表来选择
- 添加(Add): 添加行的过滤器
窗格
WireShark 包含了四种窗格,默认显示数据包列表、数据包详细信息和数据包字节信息窗格,可以在 Preferences -> Appearance -> Layout
中设置:
数据包列表窗格
数据包列表窗格默认位于整个界面的中心位置,用于显示当前捕获的所有数据包:
数据包列表中的每一行对应了捕获的一个数据包,其中还会显示一些数据包的基本信息:
No.
: 数据包序号,没什么意义就是一个流水号Time
: 数据包的时间戳,可以在View -> Time Display Format
来更改显示样式Source
: 数据包的来源地址Destination
: 数据包要发送到的地址Protocol
: 协议名称Length
: 每个数据包的长度Info
: 有关数据包内容的其他信息
还有就是最左边会以图标的形式显示其他数据包和当前所选数据包的关系:
Request(-|->)/Response(<-|-)
: 例如 HTTP 协议请求和响应:
- 选定数据包确认此数据包,如果是两个对号表示选定的数据包是对此数据包的双重确认:
- 将会话作为一个整体:
⎾
表示会话的第一个数据包|
表示会话的一部分,也可能是虚线表示不是所选会话的一部分⏋
表示会话的最后一个数据包
数据包详细信息窗格
数据包详细信息顾名思义显示所选的数据包的详细信息:
他以树的形式显示了各网路层的详细信息,其中子树标签展示了数据包的协议和摘要:
Bash
Frame ... # 物理层的数据帧概况
Ethernet II ... # 数据链路层以太网桢头部信息
Internet Protocol Version 4 ... # 网络层 IPv4 协议
User Datagram Protocol ... # 传输层 UDP 协议
Domain Name System ... # 应用层 DNS 协议
其中每个树都可以打开,来对应不同的数据信息,其中两类信息比较特殊,他们并不是数据包的一部分而是由 WireShark 自动生成的具有特殊含义的信息:
- 自动生成字段(Generated Fileds): 使用 [] 包括的字段,这些信息并不包含在数据包中,而是 WireShark 自动生成的关于该协议的额外信息,包括响应时间、TCP 分析、IP 地理位置信息等
- 链接(Links): 带有下划线,能够跳转到对应的数据包,WireShark 在捕获过程中会检测到该数据包和其他数据包有联系就会生成指向联系数据包的链接
数据包字节信息窗格
数据包字节信息显示数据包传输的数据内容,他们以十六进制展示:
我们在数据包详细信息中选择对应的字段,同时数据包字节信息中对应的数据也会被高亮显示:
数据包图例信息窗格
数据包图例信息将当前数据包涉及的协议以图例的形式展示出来:
Tips
默认 Pane Layout 并不会显示该窗格,需要手动调出来
他是学习各种协议的一个非常好的方式,并且鼠标选择对应协议的某给数据段会自动在数据包字节信息或数据包详细信息中显示对应的内容:
状态栏
状态栏显示一些消息性信息: