网络故障排查和流量分析利器-Tcpdump命令

Tcpdump是一个在Unix/Linux系统上广泛使用的命令行网络抓包工具。它能够捕获经过网络接口的数据包,并将其以可读的格式输出到终端或文件中。Tcpdump是一个强大的命令行工具,能够捕获和分析网络数据包,为网络管理员和安全专业人员提供了深入了解网络通信的途径。本文将介绍Tcpdump的基本用法、功能和一些常见的应用场景。

Tcpdump VS Wireshark

在我的专栏介绍《Wireshark从入门到精通》了大量关于wireshark图形界面,命令行,插件,使用技巧等诸多内容,为什么还要介绍Tcpdump呢,最主要的原因如下:

  • 在处理数十万,数百万数量级的数据包的时候tcpdump展现出比wireshark/tshark更为强大的性能,使得tcpdump仍旧由一定的用武之地。
  • tcpdump是多数Unix/Linux等系统自带的功能,要想在这些系统上使用最新的wireshark,需要自己下载源码编译,不够方便。
  • 支持BPF过滤器能够满足常见场景的需求,命令行的方式能导出到文本格式利于后续的分析。
  • 在处理大流量数据包额时候,先使用Tcpdump过滤然后再使用Wireshark详细分析是一种不错的策略。

Tcpdump使用举例

Tcpdump的使用非常简单,支持的参数如下:
在这里插入图片描述
图1

捕获数据包

在这里插入图片描述
图2
图2 -i参数将捕获指定网络接口上的所有流量,在没有制定输出文件的情况下,会输出到终端,因此使用-w参数输出到文件。如果在捕获数据包的时候想要做更多的限制,例如限制捕获数据包的数量,限制每个数据包的大小,可以使用如下的命令:

tcpdump -i <interface> -s <snaplen> -c <count>

-s 选项可以限制每一个捕获的数据包大小,使用 -c 选项可以设置捕获的数据包数量,达到指定数量后自动停止,有助于减小输出量。

解析数据包

在这里插入图片描述
图3
图3默认情况下只会显示pcap的一些摘要信息,要想显示payload的信息,需要使用-A参数,如图4:
在这里插入图片描述
图4
图4的 -A参数会将payload以ASCII的形式打印出来。

BPF过滤器

上述无论是数据包的抓取还是文件的解析,都没有使用过滤器,因此默认会抓取所有的数据包,默认读取展示所有的数据包。要想抓取或者展示特定的数据包,则需要借助BPF表达式,捕获过滤规则使用BPF语法,主要提供以下三类原语,这几类原语可以通过运算符组合成为复杂的过滤规则。常见的运算符包括逻辑运算符and or not ,即与或非,以及比较运算符> < 等。当然理解这些概念之前,可能需要对网络协议有一定的了解,关于网络协议内容,可以参考专栏《网络攻防协议实战分析》,见这里。
1,类型原语,包括地址原语 host 和net、端口原语 port port range:

host含义比较广泛,既可以表示以太网层的主机地址,也可以是IP层主机地址,也可以是主机名。因此可以使用如三种表达式:

ether host 00:00:5e:00:53:00
host 192.168.0.115
host test 

net可以用于过滤多个IP地址,当然当一个域名www.example.com 对应着多个IP地址的时候,也相当于过滤多个IP。

net 192.168.0.0/24
port 53 过滤单个端口
portrange 1-1024 过滤一组端口

2,方向原语,主要是src和dst:

src host 192.168.0.115 源IP地址192.168.0.115
dst host 192.168.0.116 目的IP地址192.168.0.116

3,协议原语,包括常见的ether,arp,rarp,ip,ip6,tcp,udp。如果想要确认是否支持该协议的捕获过滤,在图1中输入该协议的名称,如果过滤规则变绿说明支持,如果为红则不支持。

not arp and port not 53 非ARP以及非53号端口报文
ip[2:2] > 100 IP协议第三个字节开始取两个字节表示的长度(也就是IP协议的length值)大于100个字节

例如只过滤host的值为特定地址的数据包的命令如下:
在这里插入图片描述
图5
可以看到使用src表达式只会过滤出源IP地址是特定地址的数据包,当然也可以使用逻辑运算符将类型原语,协议原语,方向原语组合过滤出更为精准的结果。当然也可以在抓包的时候使用,只捕获想要的数据包。关于BPF表达式的更多的内容详见官网,这里。

当然关于tcpdump的更多命令的详解可以使用man tcpdump进行查看,也可以参考这里,里面总结了常见的参数含义以及常见的BPF表达式的的用法,如图6:
在这里插入图片描述
图6

结论

TCPDUMP作为一款强大的网络抓包工具,为网络管理、安全分析和协议研究提供了有力支持。通过熟练掌握TCPDUMP的基本用法和高级功能,能够更有效地解决各种网络相关和安全相关的问题。

本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里。

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

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

相关文章

手写视频裁剪框

<!-- 截取框 --><divv-show"isShow"class"crop-box":style"{width: cropWidth px,height: cropHeight px,left: cropX px,top: cropY px,}"ref"cropBox"mousedown"startInteraction"><!-- 内容在这里 --…

mysql 单表 操作 最大条数验证 以及优化

1、背景 开车的多年老司机&#xff0c;是不是经常听到过&#xff0c;“mysql 单表最好不要超过 2000w”,“单表超过 2000w 就要考虑数据迁移了”&#xff0c;“你这个表数据都马上要到 2000w 了&#xff0c;难怪查询速度慢”。 2、实验 实验一把看看… 建一张表 CREATE TABL…

Java BIO、NIO、AIO、Netty知识详解(值得珍藏)

1. 什么是IO Java中I/O是以流为基础进行数据的输入输出的&#xff0c;所有数据被串行化(所谓串行化就是数据要按顺序进行输入输出)写入输出流。简单来说就是java通过io流方式和外部设备进行交互。 在Java类库中&#xff0c;IO部分的内容是很庞大的&#xff0c;因为它涉及的领…

[Ray Tracing: The Rest of Your Life] 笔记

前言 开年第一篇博客~ 整理了三四个小时才整理完orz。 这一部分是光线追踪三部曲的最后一部&#xff0c;主要介绍了蒙特卡洛积分、重要性采样等内容。场景上没有什么大的改变&#xff0c;基本上就是在Cornell Box中渲染的&#xff0c;本篇主要在加速收敛&#xff0c;提升渲染效…

Docker 安装Mysql

目录 Docker Mysql安装 ✨安装和配置mysql ✨远程连接mysql远程连接 MySQL 是世界上最流行的开源数据库。根据 DB-Engines的调查数据&#xff0c;MySQL 是第二受欢迎的数据库&#xff0c;仅次于 Oracle 数据库。MySQL在过去由于性能高、成本低、可靠性好&#xff0c;已经成…

五、HTML 标题

在 HTML 文档中&#xff0c;标题很重要。 一、HTML 标题 标题&#xff08;Heading&#xff09;是通过 <h1> - <h6> 标签进行定义的。<h1> 定义最大的标题。 <h6> 定义最小的标题。 <h1>这是一个标题。</h1> <h2>这是一个标题。&l…

分类预测 | Python实现基于SVM-RFE-LSTM的特征选择算法结合LSTM神经网络的多输入单输出分类预测

分类预测 | Python实现基于SVM-RFE-LSTM的特征选择算法结合LSTM神经网络的多输入单输出分类预测 目录 分类预测 | Python实现基于SVM-RFE-LSTM的特征选择算法结合LSTM神经网络的多输入单输出分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 基于SVM-RFE-LSTM的特征…

bootstrap5实现宠物商店网站 Cat-Master

一、需求分析 宠物商店网站是指专门为宠物商店或宠物用品商家而建立的在线平台。这种网站的功能通常旨在提供以下服务&#xff1a; 产品展示&#xff1a;宠物商店网站通常会展示宠物食品、玩具、床上用品、健康护理产品等各种宠物用品的图片和详细信息。这样&#xff0c;潜在的…

MybatisPlus—快速入门

目录 1.使用MybatisPlus的基本步骤 1.1引入MybatisPlus的起步依赖 1.2 定义Mapper 2.MybatisPlus常用注解 2.1 TableName 2.2 TableId 2.3 TableField 2.4 小结 3. 常用配置 4. 总结 1.使用MybatisPlus的基本步骤 1.1引入MybatisPlus的起步依赖 MyBatisPlus官方提…

安徽省暨合肥市“希望工程·梦想计划”小盖茨机器人捐赠启动仪式举行

1月5日&#xff0c;安徽省暨合肥市“希望工程梦想计划”小盖茨机器人捐赠启动仪式在合肥市一六八玫瑰园学校东校区举行。共青团安徽省委副书记叶征&#xff0c;北京儒布特教育科技有限公司董事牛俊明&#xff0c;北京儒布特教育科技有限公司市场总监高进&#xff0c;安徽省青基…

基于JavaWeb+SSM+Vue四六级词汇微信小程序系统的设计和实现

基于JavaWebSSMVue四六级词汇微信小程序系统的设计和实现 源码获取入口KaiTi 报告Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 KaiTi 报告 &#xff08;1&#xff09;课题背景 伴随着社会的快速发展, 现代社…

【ASP.NET Core 基础知识】--环境设置

一、简介 1.1 .NET Core SDK 概述 .NET Core SDK&#xff08;Software Development Kit&#xff09;是Microsoft推出的一个开源跨平台框架&#xff0c;用于开发和部署.NET应用程序。它是.NET Core平台的核心组件之一&#xff0c;为开发者提供了在多个操作系统上构建高性能、可…

WPF 使用矢量字体图标

矢量字体图标 在WPF项目中经常需要显示图标&#xff0c;但是项目改动后&#xff0c;有时候需要替换和修改图标&#xff0c;这样非常麻烦且消耗开发和美工的时间。为了快速开发项目&#xff0c;节省项目时间&#xff0c;使用图标矢量字体图标是一个非常不错的选择。 矢量字体图标…

使用爬虫爬取热门电影

文章目录 网站存储视频的原理M3U8文件解读网站分析代码实现 网站存储视频的原理 首先我们来了解一下网站存储视频的原理。 一般情况下&#xff0c;一个网页里想要显示出一个视频资源&#xff0c;必须有一个<video>标签&#xff0c; <video src"xxx.mp4"&…

大学生搜题软件,未来可期吗?

作为一家专注于软件开发的公司《智创有术》&#xff0c;我们致力于为客户提供创新、高效和可靠的解决方案。通过多年的经验和专业知识&#xff0c;我们已经在行业内建立了良好的声誉&#xff0c;并赢得了客户的信任和支持。 支持各种源码&#xff0c;网站搭建&#xff0c;APP&a…

JavaWeb 页面上显示中文乱码解决~

你们好&#xff0c;我是金金金。 场景 我正在学习servlet&#xff0c;通过write()方法向页面上写入中文数据&#xff0c;没想到显示的都是?? 乱码&#xff0c;如图 排查 很明显可以看出来页面上显示的是??&#xff0c;我猜想肯定是字符编码的问题&#xff0c;导致乱码 造成…

数据结构之堆——学习笔记

1.堆的简介&#xff1a; 接下来看一下堆的建立&#xff1b; 接下来是如何在堆中插入数据以及删除数据&#xff1a; 大根堆的插入操作类似只是改变了一下大于和小于符号&#xff0c;同时插入操作的时间复杂度为O&#xff08;logn&#xff09;。 来看几个问题&#xff1a; 答案当…

Http与Tcp协议的原理以及应用

OSI七层模型和相关协议 七层模型从上到下如下所示&#xff1a; 应用层&#xff1a;负责应用之间的通信&#xff0c;处理请求和响应的具体格式表示层&#xff1a;对于数据格式进行处理会话层&#xff1a;负责建立和断开通信连接&#xff0c;传输层&#xff1a;负责建立端口之间…

分布式【Zookeeper】

1.1 ZooKeeper 是什么 ZooKeeper 是 Apache 的顶级项目。ZooKeeper 为分布式应用提供了高效且可靠的分布式协调服务&#xff0c;提供了诸如统一命名服务、配置管理和分布式锁等分布式的基础服务。在解决分布式数据一致性方面&#xff0c;ZooKeeper 并没有直接采用 Paxos 算法&…

适用于生物行业的生信云平台

随着基因检测技术的不断发展&#xff0c;生物信息云平台在基因检测行业的应用越来越广泛。生物信息云平台是一种基于云计算的技术&#xff0c;可以将基因检测数据存储在云端&#xff0c;并通过数据分析、挖掘等技术手段&#xff0c;对基因数据进行处理、分析和解读。 这种技术的…