# 使用抓包工具抓取网络数据包
#### 应用场景
当您的弹性云服务器访问目标端出现延迟增大、连接中断或丢包时，捕获网络接口的原始数据包是还原问题现场、定位故障根源的关键手段。
本文以Linux和Windows系统为例，介绍使用tcpdump与wireshark工具进行抓包的标准流程与实用技巧。
#### 总体流程
系统化的网络排查通常遵循以下六个阶段，每个阶段的目标与产出物需清晰定义，以确保高效定位问题。
| 序号   | 阶段     | 核心任务                                                                                                                                                                                                                                                                                                                                       | 关键产出                             |
|:---|:---|:---|:---|
| 1  | 症状界定   | 使用ping、traceroute等工具确认异常类型： - 持续丢包  - 高峰时段延迟高  - 特定端口（如80/443）无响应                                                       | 明确异常发生的目标IP、端口及时间规律。            |
| 2   | 工具选型 | 根据操作系统选择： - Linux实例首选命令行工具tcpdump  - Windows实例推荐图形化工具Wireshark                                                                                                                    | 选定与系统及场景匹配的抓包工具。                |
| 3  | 预置过滤 | 配置抓包过滤规则，如指定主机、端口或协议，避免捕获大量无关数据淹没关键线索。                                                                                                                                                                                                                                                                                                     | 生成精准的抓包过滤表达式。                    |
| 4 | 数据捕获    | 在问题发生时段启动抓包，并明确记录捕获起止时间、网络接口、目的端口、网络协议及数据包大小。                                                                                                                                                                                                                                                                                                | 获取包含异常时刻的网络数据包文件（如.cap或.pcap）。 |
| 5  | 深度分析  | 分析数据包，一般常见思路： - 检查TCP握手过程  - 查找重传数据包  - 分析响应时间  - 排查错误代码   | 定位到具体异常的数据包或交互模式。              |
| 6  | 验证闭环  | 若分析结果无明确根因，可结合其他工具或方法进一步排查。 - 利用ping、traceroute等命令查看网络连通性、丢包及延迟情况。  - 结合路由表、安全组日志或系统日志，验证问题原因。                                                                                  | 形成"假设-验证-解决"的闭环记录。               |
   
#### Linux实例抓包工具tcpdump介绍和使用
tcpdump是Linux系统内置的强大命令行抓包工具，几乎所有的华为云公共镜像（如CentOS、Ubuntu）均已预装。
若因精简安装缺失，可使用包管理器安装：sudo yum install tcpdump -y 或 sudo apt-get install tcpdump -y 。
**查看tcpdump使用说明**
```
tcpdump --help
```
![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002526823820.png "点击放大")
![](https://support.huaweicloud.com/bestpractice-ecs/public_sys-resources/note_3.0-zh-cn.png)
更多关于tcpdump工具的参数及使用说明，可参考[TCPDUMP MAN PAGE](https://www.tcpdump.org/manpages/tcpdump.1.html)。
tcpdump工具的常见使用场景如下。
- **场景一：抓取指定接口及端口的数据包**
  ```
  tcpdump -s 0 -i eth0 port 22
  ```
  ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002526983988.png "点击放大")
  
- **场景二：抓取指定接口及端口的数据包，并输出详细交互信息**
  ```
  tcpdump -s 0 -i eth0 -vvv port 22
  ```
  ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002557983883.png "点击放大")
  
- **场景三：抓取指定接口及IP地址的特定协议数据包**
  ```
  tcpdump -s 0 -i eth0 -vvv dst 123.xxx.xxx.74 and icmp
  ```
  ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002557864355.png "点击放大")
  
- **场景四：抓取数据包并保存在指定文件**
  ```
  tcpdump -i any -s 0 -w test.cap
  ```
  ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002526984500.png "点击放大")
  
- **场景五：查看生成的抓包数据文件的内容**
  ```
  tcpdump -r test.cap
  ```
  ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002557865183.png "点击放大")
  
 
#### Windows实例抓包工具Wireshark介绍和使用
在Windows操作系统的弹性云服务器上，Wireshark是首选的图形化抓包工具。
1. 登录Windows云服务器。
2. 下载安装并打开Wireshark，下载地址：[Wireshark](https://www.wireshark.org/download.html)。
3. 选择"捕获" \> "选项"，在捕获窗口根据接口名称或对应的IP地址选择需要进行抓包的网络，单击"开始"。![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002556501129.png "点击放大")
4. 抓取足量数据包后，选择"捕获"\>"停止"，停止后选择"文件"\>"保存"，将抓包结果保存到指定文件。
5. 在工具栏中选择"统计 \> 会话"。
6. 在会话窗口，可以看到所有网络通信，从链路层、IP层、TCP层分别给出了流量的具体情况和通信两端的流量情况。
7. 通过抓取一段时间的网络包可以分析具体占用较高流量的连接、端口。 ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002556501147.png "点击放大")
   ![](https://support.huaweicloud.com/bestpractice-ecs/public_sys-resources/note_3.0-zh-cn.png)
   更多关于Wireshark的使用方法和数据分析方法，可参考[Wireshark官方网站](https://www.wireshark.org/download.html)。
   
 
