Tcpdump教程及示例

TCP泵 是一个日常使用的包嗅探器。有很多包嗅探器,但tcpdump的通用性和易用性不同。Tcpdump使用libcap库,这是用于数据包嗅探的核心库。这里我们将看一看包嗅探的一般用法示例。请注意,要使用tcpdump,tcpdump应该有足够的特权和安全机制,如SELinux、AppArmor应该给予许可。捕获的数据通常写入具有pcap扩展名的文件中。Pcap文件可以通过流行的基于GUI的网络工具Wireshark读取和解析。

null

Tcpdump命令人

更详细的信息可以从tcpdump手册页获得,如下所示。

$ man tcpdump
Man Tcpdump
手动泵

列出与Tcpdump的网络接口

在标准的Linux系统上,有很多接口。我的意思是不仅仅是网络接口,USB接口也存在。Tcpdump可以从USB接口和其他特殊的内核设备上监听USB协议。Tcpdump编号作为可选接口 用法。首先选择接口列表tcpdump可以嗅探和捕获的接口。

$ tcpdump -D
List Interfaces
列出接口

正如我们从截图上看到的,tcpdump可以嗅探这个Ubuntu系统上的10个接口。Tcpdump还提供了一些有关接口状态的信息,如up/down和连接类型。有一个特殊的接口类型,编号为2,名为 任何 可以从这些接口嗅探到所有接口的通信量

为数据包捕获选择网络接口

使用列出的 接口 可以使用接口名称或索引。这里有一个名为any的特殊接口,它捕获所有接口。

$ tcpdump -i 2

或者

$ tcpdump -i ens3

使用Tcpdump捕获指定端口

默认情况下,全部 网络流量 是用 tcpdump . 这可能会产生巨大的产出。如果我们只想捕获特定的端口,我们可以使用 port 选项。在本例中,我们将只使用 port http .

$ sudo tcpdump -i 2 "port http"
Capturing Specified Port with Tcpdump
使用Tcpdump捕获指定端口

使用Tcpdump捕获数据包的详细输出

捕获数据包时,只显示IP报头信息。要获取有关数据包的更多详细信息,应指定verbose选项。

$ tcpdump -i 2  port http -v
Verbose Output
详细输出

增加冗长

要查看比当前详细信息更多的详细信息,可以使用 -变压阀 通过添加新的 v 选择下面的选项。

$ tcpdump -i 2  port http -vvv
Increase Verbosity
增加冗长

减少冗长

它可以减少默认的详细程度,以获得更优雅的包嗅探选项输出 -问 .

$ tcpdump -i 2  port http -q
Decrement Verbosity
减少冗长

显示器 以ASCII或文本格式捕获的数据包

在捕获数据包时,我们可能希望将它们显示为 ASCII码 或文本。例如,在HTTP通信中,我们可以将HTTP头直接输出到控制台。

$ tcpdump -i 2  "port http" -A
Print Captured Packets ASCII or Text
打印捕获的数据包ASCII或文本

以十六进制格式显示捕获的数据包

另一种显示捕获文件的方法是十六进制格式。

$ tcpdump -i 2  "port http" -X
Display Captured Packets In Hex
以十六进制显示捕获的数据包

显示端口,以数字格式承载信息

默认情况下,端口号和ip号显示为文本,例如端口80将显示为http或ip地址将显示为主机名(如果可以解析)。这些信息可以用数字表示,如下所示。

$ tcpdump -i 2  port http -q -n
Display Port, Hosts As Number
显示端口,主机号

设置要捕获的数据包计数

在某些情况下,我们希望限制捕获的数据包计数,例如,为了识别通常需要启动TCP会话的网络流量。指定捕获数据包的计数这里我们将其设置为5。

$ tcpdump -i 2  "port http" -c 5 
Set Packet Count To Capture
设置要捕获的数据包计数

设置要捕获的数据包大小

限制捕获的另一个类似选项是为每个数据包设置总捕获大小。每个包可以有不同的大小这些选项将为每个捕获的包设置标准大小。为捕获的数据包设置大小,我们在这里设置100字节这在将捕获重定向到文件时非常有用。

$ tcpdump -i 2 "port http" -C 100
Set Packet Size To Capture
设置要捕获的数据包大小

仅捕获TCP数据包

通常,所有网络层协议都从以太网协议保存到应用程序协议。但是只有一个特定的层可以通过指定一个协议来捕获,比如下面的TCP。

$ tcpdump -i 2  tcp

仅捕获Udp数据包

像Tcp包一样,只有Udp包可以被捕获,如下所示。

$ tcpdump -i 2  udp

仅捕获Icmp数据包

此命令将仅捕获和嗅探ICMP数据包。

$ tcpdump -i 2  icmp

仅捕获Arp数据包

Tcpdump只能捕获Arp数据包,如下所示。

$ tcpdump -i 2  arp

仅捕获IP数据包

如前面的示例所示,我们可以捕获特定的协议。在本例中,我们将只捕获IP数据包。

$ tcpdump -i 2  ip

仅捕获指定的目标IP流量

在使用tcpdump时,另一个有用的网络流量过滤器是根据目标IP地址进行过滤。可以使用指定目标IP地址 夏令时 就像下面一样。

$ tcpdump -i 2  dst google.com
Capture According To Destination IP
根据目标IP捕获

仅捕获指定的网络流量

我们以前根据主机名过滤捕获的数据包。我们也可以使用 网络过滤器 根据指定的网络进行过滤。

$ tcpdump -i 2  net 172.217.17.0/24
Capture According To Network
按网络抓取

仅捕获指定的端口范围

为过滤指定多个端口不是一个实际的解决方案。Tcpdump提供了使用 港口范围 选项。

$ tcpdump -i 2  portrange 70-90
Capture According To Port Range
根据端口范围捕获

将捕获的数据包保存到Pcap文件

捕获的数据包信息被打印到控制台(默认情况下是命令行)。如果要按照命令将保存到文件,请将捕获的文件保存到名为 德涅姆.pcap . 实际上有很多支持的捕获文件格式,但是 pcap公司 这是常见的用法。文件

$ tcpdump -i 2 "port http" -w deneme.pcap
Saving Captured Packets To Pcap File
将捕获的数据包保存到Pcap文件

正在读取Pcap捕获文件

保存捕获文件后,tcpdump可以通过以下命令读取该文件并向终端显示输出。

$ tcpdump -i 2 -r deneme.pcap
Reading Pcap Capture File
正在读取Pcap捕获文件

 Tcpdump Tutorial With Examples Infographic
Tcpdump教程及示例信息图

相关文章: Windows截图工具截取桌面截图

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享