tcpdump,一个强大的Linux抓包分析工具

2024-04-08 15:04

本文主要是介绍tcpdump,一个强大的Linux抓包分析工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

更多精彩内容在公众号。

tcpdump是一个强大的命令行网络分析工具,它能够捕获网络上的数据包,并提供详细的分析信息。它支持多种网络协议,包括但不限于TCP、UDP、ICMP等,允许用户根据特定的过滤条件来筛选和分析数据包。tcpdump广泛应用于网络故障排查、网络安全分析、性能调优等领域。

核心特性

  • 多协议支持:tcpdump能够解析和显示多种网络协议的数据包,包括TCP、UDP、ICMP等。

  • 过滤表达式:用户可以通过构建过滤表达式来捕获特定类型的数据包,如特定IP地址、端口号、协议类型等。

  • 输出格式:tcpdump提供了丰富的输出格式,可以显示时间戳、协议类型、源/目的地址和端口、数据包内容等信息。

  • 性能优化:tcpdump利用libpcap库进行高效的数据包捕获和分析,减少了对系统资源的占用。

使用案例

1. 捕获特定IP地址的数据包

假设我们需要监控和分析IP地址为192.168.10.100的主机的所有网络活动,可以使用以下命令:

tcpdump host 192.168.10.100

这个命令会捕获所有与指定IP地址相关的数据包。

2. 捕获特定端口的HTTP流量

如果要分析端口80(HTTP服务通常使用的端口)上的流量,可以使用以下命令:

tcpdump tcp port 80

这个命令会捕获所有目标或源端口为80的TCP数据包。

3. 捕获特定协议的数据包

如果我们只对ICMP数据包感兴趣,可以使用以下命令来过滤出所有的ICMP数据包:

tcpdump icmp
4. 将捕获的数据包保存到文件

使用-w选项可以将捕获的数据包保存到文件中,以便于后续分析或使用其他工具(如Wireshark)打开:

tcpdump -w capture.pcap tcp port 8080

这个命令会将所有目标或源端口为8080的TCP数据包保存到capture.pcap文件中。

5. 从文件中读取数据包

如果已经有了一个保存了数据包的文件,可以使用-r选项来读取并分析这些数据包:

tcpdump -r capture.pcap
6. 限制捕获数据包的数量

使用-c选项可以限制tcpdump捕获数据包的数量,例如,只捕获前1000个数据包:

tcpdump -c 1000 tcp port 80
7. 实时分析TCP三次握手和四次挥手

为了实时监控TCP三次握手和四次挥手的过程,可以使用以下命令:

tcpdump -i lo0 tcp -S -nn -t

8 基于逻辑运算符过滤

tcpdump支持逻辑运算符andornot来组合多个过滤条件。例如,捕获所有从192.168.1.2发出或到达192.168.1.3的端口为22的数据包:

tcpdump src host 192.168.1.2 or dst host 192.168.1.3 and port 22```或者捕获所有不是从`192.168.1.2`发出的数据包:

9 基于特定标志位过滤例如,捕获所有TCP SYN标志位被设置的数据包:

 tcpdump 'tcp[tcpflags] & (tcp-syn) != 0'

10 基于数据包内容过滤. 可以捕获包含特定字符串的数据包:

tcpdump 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = "http"'

这篇关于tcpdump,一个强大的Linux抓包分析工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/885923

相关文章

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

sqlite3 命令行工具使用指南

《sqlite3命令行工具使用指南》本文系统介绍sqlite3CLI的启动、数据库操作、元数据查询、数据导入导出及输出格式化命令,涵盖文件管理、备份恢复、性能统计等实用功能,并说明命令分类、SQL语... 目录一、启动与退出二、数据库与文件操作三、元数据查询四、数据操作与导入导出五、查询输出格式化六、实用功

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

python中Hash使用场景分析

《python中Hash使用场景分析》Python的hash()函数用于获取对象哈希值,常用于字典和集合,不可变类型可哈希,可变类型不可,常见算法包括除法、乘法、平方取中和随机数哈希,各有优缺点,需根... 目录python中的 Hash除法哈希算法乘法哈希算法平方取中法随机数哈希算法小结在Python中,

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文