Tcpdump如何捕获和分析数据包

2024年 3月 20日 156.3k 0

Tcpdump是一个强大的网络分析工具,用于Linux系统和macOS中的网络流量分析。网络管理员使用tcpdump进行网络嗅探、捕获和分析TCP/IP数据包。它使用了一个"libpcap"库来帮助有效地捕获网络流量。此外,tcpdump还有助于定期进行网络故障排除和监控网络活动。该工具将捕获的数据存储在一个"pcap"文件中。使用TCP/IP数据包分析工具(如Wireshark)或其他命令行工具进一步分析这些文件。

在本指南中,我们将演示如何在Linux系统上安装TCPDUMP,以及如何使用TCPDUMP捕获和分析TCP/IP数据包。

如何安装Tcpdump

Tcpdump预装在许多Linux发行版上。但如果您的系统上尚未安装tcpdump,则可以在Linux系统上安装tcpdump。要在Ubuntu 22.04系统上安装tcpdump,请使用以下命令:

$sudo apt安装tcpump

要在Fedora/CentOS上安装tcpump,请使用以下命令:

$sudo DNF安装tcpump

如何使用Tcpdump命令捕获数据包

要使用tcpdump捕获数据包,请使用"Ctrl + Alt + t"以sudo权限启动终端。该工具包括不同的选项和过滤器来捕获TCP/IP数据包。如果您想捕获当前或默认网络接口的所有流动数据包,请使用不带任何选项的"tcpdump"命令。

tcpdump

给定的命令捕获系统默认网络接口的数据包。

在该命令执行结束时,所有捕获和过滤的数据包计数都会显示在终端上。

让我们来了解一下输出。

Tcpdump支持TCP/IP数据包头的分析。它为每个数据包显示一行,命令将继续运行,直到你按下“Ctrl + C”停止它。

tcpdump提供的每一行都包含以下详细信息:

  • Unix时间戳(例如,02:28:57.839523)
  • 方案(IP)
  • 源主机名或IP和端口号
  • 目标主机名或IP和端口号
  • TCP标志(例如,Flags [F.])用S(SYN)、F(FIN)、. (ACK),P(PUSH),R(PUSH)
  • 数据包中数据的序列号(例如,SEQ 5829:6820)
  • 确认编号(例如,(ACK 1016)
  • 窗口尺寸(例如,win 65535),表示接收缓冲区中的可用字节,后面是TCP选项
  • 数据有效载荷的长度(例如,长度991)

要列出系统的所有列出网络接口,请使用带有“-D”选项的“tcpump”命令。

$sudo tcpump-D

$tcpdump——list—interruptions

此命令列出了Linux系统上连接或运行的所有网络接口。

捕获指定网络接口的数据包

如果要捕获通过特定接口的TCP/IP数据包,请将"—i"标志与"tcpdump"命令一起使用,并指定网络接口名称。

$sudo tcpdump—i lo

给定的命令捕获"lo"接口处的流量。如果要显示数据包的详细信息,请使用"—v"标志。要打印更全面的详细信息,请在"tcpdump"命令中使用"—vv"标志。定期使用和分析有助于维护一个强大和安全的网络环境。

同样,您可以使用以下命令捕获任何接口的流量:

$sudo tcpump-i任意

使用特定端口捕获数据包

您可以通过指定接口名称和端口号来捕获和过滤数据包。例如,要使用端口22捕获通过“enp0s3”接口的网络数据包,请使用以下命令:

$tcpdump—i enp0s3端口22

上一个命令捕获来自"enp0s3"接口的所有流动数据包。

使用Tcpdump捕获有限的数据包

您可以使用"—c"标志和"tcpdump"命令来捕获指定数量的数据包。例如,要在"enp0s3"接口捕获四个数据包,请使用以下命令:

$tcpdump—i enp0s3—c 4

使用您的系统替换接口名称。

用于捕获网络流量的有用Tcpdump命令

在下面,我们列出了一些有用的“tcpump”命令,它们将帮助您高效地捕获和过滤网络流量或数据包:

使用“tcpump”命令,您可以捕获具有已定义的目的IP或源IP的接口的数据包。

$tcpdump—i {interface—name} dst {destination—ip}

您可以捕获快照大小为65535字节的数据包,这与默认大小262144字节不同。在旧版本的tcpdump中,捕获大小被限制为68或96字节。

$tcpdump—i enp0s3—s 65535

如何将捕获的数据包保存到文件中

如果您想将捕获的数据保存到一个文件中以供进一步分析,您可以这样做。如果它捕获指定接口的流量,然后将其保存到“.pcap.”文件中。使用以下命令将捕获的数据存储到文件中:

$tcpdump—i—s 65535—w. pcap

例如,我们有“enps03”接口。将此捕获的数据保存到以下文件中:

$sudo tcpdump—i enps03—w dump. pcap

将来,您可以使用Wireshark或其他网络分析工具读取此捕获的文件。因此,如果你想使用Wireshark分析数据包,请使用"—w"参数并将其保存到". pcap"文件中。

结论

在本教程中,我们通过不同的示例演示了如何使用tcpump捕获和分析数据包。我们还学习了如何将捕获的流量保存到“.pCap”文件中,您可以使用Wireshark和其他网络分析工具查看和分析该文件。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论