使用抓包工具抓取网络数据包
应用场景
当您的弹性云服务器访问目标端出现延迟增大、连接中断或丢包时,捕获网络接口的原始数据包是还原问题现场、定位故障根源的关键手段。
本文以Linux和Windows系统为例,介绍使用tcpdump与wireshark工具进行抓包的标准流程与实用技巧。
总体流程
系统化的网络排查通常遵循以下六个阶段,每个阶段的目标与产出物需清晰定义,以确保高效定位问题。
| 序号 | 阶段 | 核心任务 | 关键产出 |
|---|---|---|---|
| 1 | 症状界定 | 使用ping、traceroute等工具确认异常类型:
| 明确异常发生的目标IP、端口及时间规律。 |
| 2 | 工具选型 | 根据操作系统选择:
| 选定与系统及场景匹配的抓包工具。 |
| 3 | 预置过滤 | 配置抓包过滤规则,如指定主机、端口或协议,避免捕获大量无关数据淹没关键线索。 | 生成精准的抓包过滤表达式。 |
| 4 | 数据捕获 | 在问题发生时段启动抓包,并明确记录捕获起止时间、网络接口、目的端口、网络协议及数据包大小。 | 获取包含异常时刻的网络数据包文件(如.cap或.pcap)。 |
| 5 | 深度分析 | 分析数据包,一般常见思路:
| 定位到具体异常的数据包或交互模式。 |
| 6 | 验证闭环 | 若分析结果无明确根因,可结合其他工具或方法进一步排查。
| 形成“假设-验证-解决”的闭环记录。 |
Linux实例抓包工具tcpdump介绍和使用
tcpdump是Linux系统内置的强大命令行抓包工具,几乎所有的华为云公共镜像(如CentOS、Ubuntu)均已预装。
若因精简安装缺失,可使用包管理器安装:sudo yum install tcpdump -y 或 sudo apt-get install tcpdump -y 。
tcpdump --help

tcpdump工具的常见使用场景如下。
- 场景一:抓取指定接口及端口的数据包
tcpdump -s 0 -i eth0 port 22

- 场景二:抓取指定接口及端口的数据包,并输出详细交互信息
tcpdump -s 0 -i eth0 -vvv port 22

- 场景三:抓取指定接口及IP地址的特定协议数据包
tcpdump -s 0 -i eth0 -vvv dst 123.xxx.xxx.74 and icmp

- 场景四:抓取数据包并保存在指定文件
tcpdump -i any -s 0 -w test.cap

- 场景五:查看生成的抓包数据文件的内容
tcpdump -r test.cap

Windows实例抓包工具Wireshark介绍和使用
在Windows操作系统的弹性云服务器上,Wireshark是首选的图形化抓包工具。
- 登录Windows云服务器。
- 下载安装并打开Wireshark,下载地址:Wireshark。
- 选择“捕获” > “选项”,在捕获窗口根据接口名称或对应的IP地址选择需要进行抓包的网络,单击“开始”。

- 抓取足量数据包后,选择“捕获”>“停止”,停止后选择“文件”>“保存”,将抓包结果保存到指定文件。
- 在工具栏中选择“统计 > 会话”。
- 在会话窗口,可以看到所有网络通信,从链路层、IP层、TCP层分别给出了流量的具体情况和通信两端的流量情况。
- 通过抓取一段时间的网络包可以分析具体占用较高流量的连接、端口。

