简介
本文档介绍如何使用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)更有用。