Linux命令:tcpdump - 网络分析

news/发布时间2024/5/2 14:54:50

tcpdump是一个功能强大的命令行网络协议分析器。

主要功能:

  • 数据包捕获(抓包)
  • 数据包过滤
  • 数据分析
  • 网络故障排除和诊断

常用选项

  • -i:指定要监听的网络接口
  • -D:列出可用于抓包的接口
  • -s:设置抓取的数据包长度,超过这个长度的部分会被截断
  • -c:指定要抓取的数据包的数量
  • -w:将抓包数据保存在文件中,通常是.pcap格式
  • -r:从指定的文件中读取并显示数据包
  • -C:指定文件大小,与 -w 配合使用
  • -F:从文件中读取抓包的表达式
  • -n:不进行DNS解析,直接显示IP地址而非主机名
  • -nn:除了不解析主机名外,也不解析端口名称,直接显示端口号。
  • -p:不让内核修改网络接口的状态(例如改变混杂模式或监控模式),以防止影响正常网络流量。
  • -P:指定要抓取的包是流入还是流出的包,可以指定的值 inoutinout
  • -e:输出信息中包含数据链路层头部信息
  • -t:显示时间戳,tttt 显示更详细的时间
  • -X:显示十六进制格式
  • -B:设置内核缓冲区大小
  • -tt:在打印时间戳时,以绝对时间而非相对时间显示。
  • -v-vv-vvv:详细程度递增,提供更详尽的数据包信息。

基本用法

  1. 安装tcpdump命令
yum install tcpdump -y
  1. 抓取eth0网卡上的所有数据包 -i
tcpdump -i eth0
  1. 抓包时不解析主机和端口名 -n
tcpdump -n -i eth0
  1. 抓取指定主机的所有数据表 host
tcpdump -ni eth0 host 192.168.1.112
  1. 抓取指定主机发送的数据包 src host
tcpdump -ni eth0 src host 192.168.1.112
  1. 抓取发送给192.168.1.112 dst src
tcpdump -ni eth0 dst host 192.168.1.112
  1. 抓取指定数量的包 -c
tcpdump -i eth0 -c 10
  1. 指定端口 dst port
tcpdump -ni eth0 dst port 22
  1. 抓取arp数据包
tcpdump -ni eth0 arp
  1. 使用十六进制输出
tcpdump -ni eth0 -c 1 arp -x
  1. 只抓取IPv6流量
tcpdump -ni eth0 ip6
  1. 抓取指定网段的流量 net
tcpdump -ni eth0 net 192.168.1.0/24
  1. 抓取指定端口范围的流量 portrange
tcpdump -ni eth0 portrange 80-9000

进阶用法

  1. 抓取指定客户端访问ssh的数据包
tcpdump -ni eth0 src 192.168.1.112 dst port 22
  1. 抓取从某个网段来,到某个网段去的流量
tcpdump -ni eth0 src net 192.168.1.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16
  1. 抓取来自某个主机,发往非ssh端口的流量
tcpdump -ni eth0 src 192.168.1.112 and not dst port 22
  1. 基于包大小进行删选
# 大小小于64字节
tcpdump -ni eth0 less 64# 大小等于64字节
tcpdump -ni eth0 length == 64# 大小大于64字节
tcpdump -ni eth0 greater 64
  1. 过滤TCP特殊标记的数据包
# 抓取某主机发送的RST数据包
tcpdump -ni eth0 src host 192.168.1.112 and 'tcp[tcpflags] & (tcp-rst) != 0'# 抓取某主机发送的SYN数据包
tcpdump -ni eth0 src host 192.168.1.112 and 'tcp[tcpflags] & (tcp-syn) != 0'# 抓取某主机发送的FIN数据包
tcpdump -ni eth0 src host 192.168.1.112 and 'tcp[tcpflags] & (tcp-fin) != 0'# 抓取 TCP 连接中的 SYN 或 FIN 包
tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0'
  1. 抓取所有非ping类型的ICMP包
tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'


Linux命令系列:

  • Linux命令:logrotate - 日志轮转
  • Linux命令:tcpdump - 网络分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/10344715.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

洛谷 P1656 炸铁路

题意:n个点,m条边,问有哪条边是去掉之后,会造成之前连通的点不再连通的?n <= 150, m <= 5000. 思路:连通算法有dfs+bool数组记录,或者dsu,感觉dsu更方便。m * n 不超过1e6,直接暴力。 class DisjointSet{ public:DisjointSet(int sz): sz_(sz){set_size_.assign…

Codegen方言介绍

Codegen方言介绍 主要介绍CodeGen过程中使用的Dialect(方言),以及对设计演变的一些观察。 介绍 对MLIR基础架构中CodeGen功能的简化概述,特别是LLVM项目代码库中可用的部分(upstream或intree)。虽然偶尔会提到LLVM项目代码库之外的MLIR用户,但没有被深入分析,只是为了说明…

结对项目:四则运算题目生成器

这个作业属于哪个课程 软件工程2024这个作业要求在哪里 结对项目这个作业的目标 学会两个人合作完成一个项目,了解如何分工合作Github地址:点击进入仓库 队员介绍成员姓名 学号杨文琦 3222004727韦兰健 3222004724一、PSP表格PSP2.1 Personal Software Process Stages 预估耗…

【EF Core】EFCore 8.0 -CodeFirst方式生成SQLite实体对象

EFCoreFirst使用流程 1、引入工具包Microsoft.EntityFrameworkCore.SqlServer 核心程序包,封装了关键的核心代码,使用EF必须引用这个包Microsoft.EntityFrameworkCore.Design 设计包,用于在命令行工具下EF Core开发的工具套件Microsoft.EntityFrameworkCore.Tools 用于数据库…

【EF core】模型可视化 EF Core Power Tools 【工具】

Visual Studio中的EF Core Power Tools 扩展来可视化模型。编程是个人爱好

模型可视化 EF Core Power Tools 【工具】

Visual Studio中的EF Core Power Tools 扩展来可视化模型。编程是个人爱好