阿里云服务器ECS使用抓包工具进行网络数据包抓取(图文教程)

简介: 本文介绍2026年阿里云ECS服务器使用抓包工具排查网络异常的方法,涵盖Linux下tcpdump和Windows下Wireshark的安装、配置与抓包操作步骤,并提供具体命令示例及数据分析流程,助力高效定位丢包、延迟等问题。

2026年最新阿里云服务器ECS使用抓包工具进行网络数据包抓取(图文教程),如果源服务器在访问目标服务器时出现丢包、延时等异常,您可以通过抓包获取最原始的网络交互数据,以便进一步排查问题。本文阿小云转载官网的介绍在Linux和Windows环境下使用抓包工具进行抓包的具体方法。

抓包流程介绍

先创建一台云服务器ECS:https://www.aliyun.com/product/ecs  在网络异常情况下,抓取数据包是定位问题的重要手段之一。抓包操作通常包括以下流程步骤。

0.png

上述流程中涉及的关键要点说明如下。

序号

流程名称

说明

1

明确问题现象

明确问题现象时,可以使用ping,traceroute等工具来初步分析判断是否存在如下现象。

  • 是否存在丢包现象。
  • 网络延迟是否过高。
  • 是否特定服务或端口无法访问。

2

选择合适的抓包工具

根据您的需求、硬件以及软件环境,选择合适的抓包工具。

  • Linux实例:可以使用tcpdump工具。该工具是一个命令行工具,支持丰富的参数以满足抓包需求。
  • Windows实例:可以使用Wireshark工具。该工具是一款功能强大且具备图形化界面的网络数据包捕获工具。

3

安装并配置抓包工具

在执行抓包操作之前,建议您结合自己的实际抓包需求,为抓包工具配置过滤条件,以提高抓包效率。

4

执行抓包操作

执行抓包操作前,您需要明确如下信息。

  • 网络接口。
  • 目标端口。
  • 网络协议类型。

5

分析抓包数据

对抓包数据进行分析,以下为一些常见的分析方向。

  • 检查TCP握手过程。
  • 查找重传数据包。
  • 分析响应时间。
  • 排查错误代码。

6

解决问题并验证

在对抓包数据进行分析后,如果无法准确定位问题,您可以结合其他工具或方法以进一步排查。

  • 借助ping、traceroute等命令查看网络连通性、丢包及延迟情况。
  • 检查路由表配置或者相关网络设备日志,以进一步分析问题。

Linux实例中使用tcpdump工具

在Linux实例中,您可以使用tcpdump工具进行数据包捕获与分析。大多数Linux发行版已预装该工具。如果未安装,您可以通过软件包管理工具(如apt或yum)安装该工具。具体操作,请参见使用包管理工具管理软件

使用说明

有关tcpdump命令格式说明如下。

tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ]
               [ -c count ] [ --count ] [ -C file_size ]
               [ -E spi@ipaddr algo:secret,...  ]
               [ -F file ] [ -G rotate_seconds ] [ -i interface ]
               [ --immediate-mode ] [ -j tstamp_type ] [ -m module ]
               [ -M secret ] [ --number ] [ --print ] [ -Q in|out|inout ]
               [ -r file ] [ -s snaplen ] [ -T type ] [ --version ]
               [ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ]
               [ -z postrotate-command ] [ -Z user ]
               [ --time-stamp-precision=tstamp_precision ]
               [ --micro ] [ --nano ]
               [ expression ]

上述命令中,常用的参数用法及说明如下表所示。

参数

用法及说明

-s

用于设置数据包抓取长度。如果-s为0,则表示自动选择合适的长度来抓取数据包。

-w

用于将抓包结果导出到文件,而不是在控制台进行分析和打印输出。

-i

用于指定需要监听的接口(网卡)。

-vvv

用于输出详细的交互信息。

expression

是一个正则表达式,用于过滤报文,正则表达式的使用方式主要包含如下几种类型:

  • 指定类型:包括host(主机)、net(网络)和port(端口)。
  • 指定传输方向:包括src(源)、dst(目标)、dst or src(源或目标)和dst and src(源和目标)。
  • 指定协议:包括ICMP、IP、ARP、RARP、TCP和UDP等协议类型。

说明

更多关于tcpdump工具的其他参数及使用说明,请参见tcpdump man page。

使用示例

有关tcpdump命令的常见用法及示例输出信息如下所示。

  • 抓取指定接口及端口的数据包。
    执行以下命令,抓取eth0网卡与22端口的交互数据,并在控制台输出交互信息。
tcpdump -s 0 -i eth0 port 22
  • 在抓取过程中,将实时显示交互数据。用户可通过按下Ctrl+C键停止抓取。停止后,将显示本次数据抓取的信息摘要。
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
20:24:59.414951 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442372:442536, ack 53, win 141, length 164
20:24:59.415002 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442536:442700, ack 53, win 141, length 164
20:24:59.415052 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442700:442864, ack 53, win 141, length 164
20:24:59.415103 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442864:443028, ack 53, win 141, length 164
  • 抓取指定接口及端口的数据包,并输出详细交互信息。
    执行以下命令,抓取eth1网卡与22端口的交互数据,并在控制台输出详细交互信息。
tcpdump -s 0 -i eth1 -vvv port 22
  • 在抓取过程中,将实时显示交互数据。用户可通过按下Ctrl+C键停止抓取。停止后,将显示本次数据抓取的信息摘要。
tcpdump: listening on eth1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
15:45:54.817920 IP (tos 0x10, ttl 64, id 61958, offset 0, flags [DF], proto TCP (6), length 172)
    iZr1ulp9t4u4a8Z.ssh > 123.xxx.xxx.74.2057: Flags [P.], cksum 0x80cd (incorrect -> 0x2ee9), seq 890113592:890113724, ack 2345612678, win 592, length 132
15:45:54.894215 IP (tos 0x14, ttl 116, id 16850, offset 0, flags [DF], proto TCP (6), length 40)
    123.139.88.74.2057 > iZr1ulp9t4u4a8Z.ssh: Flags [.], cksum 0x1e6a (correct), seq 1, ack 132, win 1021, length 0
15:45:54.913403 IP (tos 0x10, ttl 64, id 61959, offset 0, flags [DF], proto TCP (6), length 172)
    iZr1ulp9t4u4a8Z.ssh > 123.xxx.xxx.74.2057: Flags [P.], cksum 0x80cd (incorrect -> 0x1105), seq 132:264, ack 1, win 592, length 132
15:45:54.988025 IP (tos 0x10, ttl 64, id 61960, offset 0, flags [DF], proto TCP (6), length 236)
    iZr1ulp9t4u4a8Z.ssh > 123.xxx.xxx.74.2057: Flags [P.], cksum 0x810d (incorrect -> 0x98d1), seq 264:460, ack 1, win 592, length 196
  • 抓取指定接口及IP地址的特定协议数据包。
    执行以下命令,抓取eth0网卡与指定IP地址的ping交互数据,并在控制台输出详细交互信息。
tcpdump -s 0 -i eth0 -vvv dst 123.xxx.xxx.74 and icmp
  • 在抓取过程中,将实时显示交互数据。用户可通过按下Ctrl+C键停止抓取。停止后,将显示本次数据抓取的信息摘要。
tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
15:43:29.116058 IP (tos 0x14, ttl 64, id 26185, offset 0, flags [none], proto ICMP (1), length 60)
    iZr1ulp9t4u4a8Z > 123.xxx.xxx.74: ICMP echo reply, id 2048, seq 65, length 40
15:43:30.129600 IP (tos 0x14, ttl 64, id 27043, offset 0, flags [none], proto ICMP (1), length 60)
    iZr1ulp9t4u4a8Z > 123.xxx.xxx.74: ICMP echo reply, id 2048, seq 66, length 40
15:43:31.141576 IP (tos 0x14, ttl 64, id 27201, offset 0, flags [none], proto ICMP (1), length 60)
    iZr1ulp9t4u4a8Z > 123.xxx.xxx.74: ICMP echo reply, id 2048, seq 67, length 40
15:43:32.153912 IP (tos 0x14, ttl 64, id 27802, offset 0, flags [none], proto ICMP (1), length 60)
    iZr1ulp9t4u4a8Z > 123.xxx.xxx.74: ICMP echo reply, id 2048, seq 68, length 40
  • 抓取数据包并保存至指定文件。
    运行如下命令,抓取系统内所有接口数据并保存至指定文件。
tcpdump -i any -s 0 -w test.cap
  • 回显信息示例如下,表明正在进行数据包抓取。
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
  • 如需停止抓取,请按下Ctrl+C键。停止后,将显示本次数据抓取的信息摘要。
^C97 packets captured
127 packets received by filter
0 packets dropped by kernel
  • 查看生成的抓包数据文件的内容。
    执行以下命令,查看tcpdump生成的抓包数据文件的内容。
tcpdump -r test.cap

Windows实例中使用Wireshark工具

本文将以在Windows实例中运用Wireshark工具进行数据包捕获与分析为例,为您介绍如何进行网络数据包抓取。

使用说明

  1. 安装并打开Wireshark工具。
    访问Wireshark官方网站,获取安装包并完成Wireshark工具的安装。
  2. 选择捕获 > 选项
  3. Wireshark 捕获选项页面,根据接口名称或对应的IP地址选择需要进行抓包的网卡,然后单击开始

  4. 抓取足量数据包后,选择捕获 > 停止
  5. 选择文件 > 保存,将抓包结果保存到指定文件。
  6. (可选)如需通过Wireshark查看抓包文件,请在Wireshark主界面的菜单栏中单击文件 > 打开,并选择相应的抓包文件进行查看。


详细请参考官方文档说明:https://help.aliyun.com/zh/ecs/user-guide/how-to-grab-data-packets-when-the-network-is-abnormal

相关文章
|
3月前
|
弹性计算 负载均衡 Linux
使用MTR工具测试阿里云服务器ECS的网络链路分析,2026图文教程
本文介绍如何使用MTR工具对阿里云ECS进行网络链路分析,通过图文教程详解安装、命令参数、结果解读及常见异常场景(如丢包、延迟、环路等),帮助用户精准定位网络问题。
|
2月前
|
Web App开发 人工智能 运维
3分钟让Chrome变聪明!Google AI保姆级激活教程!
本文手把手教你开启Chrome内置Gemini AI功能:自动网页总结、智能填表、购物比价、图片修改等。无需编程基础,提供“快捷方式”和“脚本激活”两种方法,适配美区账号+英文语言设置,5分钟即可让Chrome拥有AI大脑!
1985 9
|
12月前
|
人工智能 API 数据库
MCP Server 开发实战 | 大模型无缝对接 Grafana
以 AI 世界的“USB-C”标准接口——MCP(Model Context Protocol)为例,演示如何通过 MCP Server 实现大模型与阿里云 Grafana 服务的无缝对接,让智能交互更加高效、直观。
3800 124
|
25天前
|
人工智能 安全 JavaScript
小龙虾AI 🦞OpenClaw(Clawdbot)2026年攻略汇总:阿里云/本地部署+大模型API配置+Skill集成+问题排查
OpenClaw(别称Clawdbot,社区昵称小龙虾)作为2026年主流的开源自主AI助手框架,核心价值在于通过Skills技能体系实现从“聊天机器人”到“可执行任务的AI管家”的转变,能对接各类工具、平台与云服务完成自动化操作。与传统聊天模型不同,OpenClaw本身不内置大模型能力,需通过对接阿里云百炼等大模型API实现自然语言解析与任务规划,同时支持在阿里云、MacOS、Linux、Windows11等多环境本地部署,兼顾私有化部署的隐私性与云服务的便捷性。本文将从零基础部署入手,覆盖全系统部署流程、阿里云百炼API配置、Skills安装与安全规范、常见问题解答,让新手也能快速上手这款
848 3
|
10月前
|
算法 Java 测试技术
深度优化OSS上传性能:多线程分片上传 vs 断点续传实战对比
本文深入解析对象存储服务(OSS)文件上传性能优化技术,重点探讨多线程分片上传与断点续传两种方案。通过理论分析、代码实现和性能测试,对比其在不同场景下的表现差异,并提供选型建议与最佳实践,助力提升大文件上传效率与稳定性。
953 0
|
Web App开发 网络协议 安全
网络编程懒人入门(十六):手把手教你使用网络编程抓包神器Wireshark
Wireshark是一款开源和跨平台的抓包工具。它通过调用操作系统底层的API,直接捕获网卡上的数据包,因此捕获的数据包详细、功能强大。但Wireshark本身稍显复杂,本文将以用抓包实例,手把手带你一步步用好Wireshark,并真正理解抓到的数据包的各项含义。
5389 2
|
数据采集 自然语言处理 数据处理
通义灵码在 PyCharm 中的强大助力(上)
本文介绍了阿里云通义灵码与PyCharm结合的强大功能,涵盖安装配置、快速生成代码、优化代码结构等方面,通过实际案例展示了其在Python项目开发中的应用,显著提升开发效率和代码质量。
2545 12
通义灵码在 PyCharm 中的强大助力(上)
|
编解码 网络协议 机器人
顶顶通电话机器人开发接口对接大语言模型之实时流TTS对接介绍
大语言模型通常流式返回文字,若一次性TTS会导致严重延迟。通过标点断句或流TTS可实现低延迟的文本到语音转换。本文介绍了电话机器人接口适配流TTS的原理及技术点,包括FreeSWITCH通过WebSocket流TTS放音,以及推流协议和旁路流对接的详细说明。
1139 1