简介
本文档介绍如何使用Wireshark捕获和分析用于诊断的网络流量。
概述
Wireshark是免费的应用程序,可用于读取和分析数据包捕获(也称为“TCP转储”)。 数据包捕获在数据包级别显示通过网络适配器进行的所有通信,因此可以查看DNS、HTTP、ping和其他流量类型。数据包捕获作为深度故障排除的诊断步骤尤其重要,随着SIG的引入,数据包捕获现在已经成为诊断过程的基本部分。
注意:Wireshark捕获选定适配器上的所有流量。由于数据包捕获通常包含个人身份信息(PII),因此请始终使用安全方法(如Box链接)与支持人员共享捕获文件。
 
获取Wireshark
您可以在以下位置下载适用于Windows、macOS或Linux的Wireshark:https://www.wireshark.org/
收集数据包捕获
- 选择连接到Internet的网络适配器,然后在Wireshark中开始捕获。
 
- 捕获时,重现要诊断的问题。
 
- 完成后停止捕获并将文件另存为
.pcap。 
基本端口和协议
- 大多数数据包在传输层协议TCP或UDP上通信
- 例如,默认情况下,“DNS”在UDP的“顶部”运行。如果TCP失败,它会切换到UDP。
 
 
- HTTP和DNS是在传输协议+端口的组合上运行的常见协议。
 
传输层协议
 | 
端口
 | 
协议名称
 | 
使用率
 | 
| TCP | 
22 | 
SSH | 
远程VA访问 | 
| TCP | 
25 | 
SMTP | 
VA监控 | 
| IP | 
50 | 
ESP(封装安全负载) | 
机密性、数据完整性、源身份验证 | 
| IP | 
51 | 
AH(身份验证报头) | 
数据完整性、源身份验证 | 
| UDP | 
53 | 
DNS | 
DNS默认值 | 
| TCP | 
53 | 
DNS | 
DNS故障转移 | 
| TCP | 
80 | 
HTTP | 
Web流量(未加密)、API | 
| UDP | 
123 | 
NTP | 
VA时间同步 | 
| TCP | 
443 | 
HTTPS | 
加密网络流量、API、AD连接器至VA | 
| UDP | 
443 | 
HTTPS | 
RC加密DNS查询 | 
| UDP | 
500 | 
IKE | 
IPsec隧道协商 | 
| UDP | 
4500 | 
NAT-T | 
IPsec隧道的NAT穿越 | 
| TCP | 
8080 | 
HTTP | 
AD连接器与VA通信 | 
了解协议名称、端口及其用途有助于您识别和分析Wireshark中的相关流量。
基本运算符
在Wireshark中构建过滤器字符串时,请使用以下运算符:
==:等于(示例:ip.dst==1.2.3.4) 
!=:不等于(示例:ip.dst!=1.2.3.4) 
&:和(示例:ip.dst==1.2.3.4 && ip.src==208.67.222.222) 
||:或(示例:ip.dst==1.2.3.4) || ip.dst==1.2.3.5) 
有关高级过滤器选项,请参阅Wireshark文档:6.4.构建显示过滤器表达式
过滤器
数据包捕获可能包含数千个数据包。过滤器可帮助您关注特定流量类型:
- 
按协议:
dns — 仅显示DNS流量 
http || dns -显示HTTP或DNS流量 
 
- 
按IP地址:
ip.addr==<IP> — 所有来往流量<IP> 
ip.src==<IP> -来自<IP>的所有流量 
ip.dst==<IP> -发往<IP>的所有流量 
 
- 
其他:
tcp.flags.reset.1==检查TCP重置(超时) 
dns.qry.name包含“[domain]” — 与域匹配的DNS查询 
tcp.port==80 || udp.port==80 -端口80上的TCP或UDP流量 
 
查看和分析数据包
找到数据包后,展开Wireshark中的数据段以分析详细信息。熟悉协议结构有助于解释这些详细信息,甚至可在需要时重新构建数据。
跟随数据流
使用数据包列表查找请求和响应对。右键单击数据包,然后选择Follow > TCP Stream、UDP Stream、TLS Stream或HTTP Stream以查看相关请求和响应序列。
- 对于具有多个交换的协议(例如HTTP),这比对于单请求协议(例如DNS)更有用。