文档首页/ 弹性云服务器 ECS/ 最佳实践/ 云服务器运维与监控/ 使用抓包工具抓取网络数据包
更新时间:2026-04-22 GMT+08:00
分享

使用抓包工具抓取网络数据包

应用场景

当您的弹性云服务器访问目标端出现延迟增大、连接中断或丢包时,捕获网络接口的原始数据包是还原问题现场、定位故障根源的关键手段。

本文以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

更多关于tcpdump工具的参数及使用说明,可参考TCPDUMP MAN PAGE

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是首选的图形化抓包工具。

  1. 登录Windows云服务器。
  2. 下载安装并打开Wireshark,下载地址:Wireshark
  3. 选择“捕获” > “选项”,在捕获窗口根据接口名称或对应的IP地址选择需要进行抓包的网络,单击“开始”。
  4. 抓取足量数据包后,选择“捕获”>“停止”,停止后选择“文件”>“保存”,将抓包结果保存到指定文件。
  5. 在工具栏中选择“统计 > 会话”。
  6. 在会话窗口,可以看到所有网络通信,从链路层、IP层、TCP层分别给出了流量的具体情况和通信两端的流量情况。
  7. 通过抓取一段时间的网络包可以分析具体占用较高流量的连接、端口。

    更多关于Wireshark的使用方法和数据分析方法,可参考Wireshark官方网站

相关文档