Wireshark 技巧75 条

Wireshark 自定义列

右键字段 → Apply as Column 把关注的字段(如自增编号、http.request.uri、tcp.time_delta)固定成列,列表视图直接扫出关键信息。

自定义列是什么

Wireshark 报文列表的列可以自己加:在详情区右键任意字段选择 Apply as Column,该字段就常驻为列表中的一列。这样不必逐包展开协议树,扫一眼列表就能横向比较多个包的同一个字段。常用列包括请求完整 URL、与上一包的时间差、TLS 的服务器名、DNS 查询名等。

基本信息

适用工具Wireshark 3.x / 4.x
入口右键字段 → Apply as Column;列管理在 Preferences → Appearance → Columns
保存范围按配置文件 Profile 保存,可建独立 Profile 隔离不同任务
支持字段任何已解析字段,也可填自定义表达式
临时停用在列管理里取消勾选,不必删除

典型使用场景

  • 排接口问题时把完整 URL 加为列,一屏看完所有请求
  • 看交互节奏:把与上一包的时间差做成列,异常停顿立刻显形
  • 多站点混合流量中把 SNI 或 Host 加为列,按业务维度分辨流量
  • 把重传标记、RTT 之类的分析字段做成列,快速比较不同包的时延

常用列字段

常用列字段
http.request.full_uri                    # 完整请求 URL
tcp.time_delta                           # 与上一包的时间差
tls.handshake.extensions_server_name     # TLS SNI
dns.qry.name                             # DNS 查询域名
tcp.analysis.ack_rtt                     # 该包的往返时延

字段用途对照

字段含义典型用途
http.request.full_uri含主机与路径的完整 URL接口级定位
tcp.time_delta与上一个报文的时间差发现交互停顿
tls.handshake.extensions_server_name握手中声明的服务器名判断实际访问的站点
dns.qry.nameDNS 查询的域名解析行为排查
tcp.analysis.ack_rtt确认往返时延比较各包时延
列加得多会挤占其他列宽度,按任务建列更实用;用独立 Profile 保存不同场景的列组合即可随时切换。
一个包里同一字段可能出现多个实例,列表只显示解析到的第一个值,要看全部取值仍需进详情区。

进阶要点

  • 常用字段做成列后配合显示过滤器,能得到接近表格的分析视图
  • 列宽可手动拖拽,长文本字段限制宽度以免挤占其他列
  • 自定义列属于显示层改动,导出的字段数据不受影响
  • 团队协作时把列配置分享给同事,能统一排查口径
  • 临时任务用右键菜单增删列,长期使用再写进配置
不同任务的列需求差异大,用独立配置文件保存几套列组合,切换场景时一键载入。

易错点

  • 列显示的是首个字段实例:多值字段(如多个 DNS 答案、多个 TCP 选项)在列表里看不全,据此下结论容易片面
  • 把列配置改乱后不知道默认长什么样:新建 Profile 或在列管理里恢复默认即可
  • 误以为加列会改变抓包内容:列只影响显示,导出的字段数据以过滤器与字段接口为准

数据来源与参考

  • Wireshark User's Guide(Columns)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌