网络故障排查和流量分析利器-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.mzph.cn/news/588755.shtml

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

相关文章

【网络面试(6)】IP协议对网络包的转发

在前面的博客中&#xff0c;我们提到过&#xff0c;网络传输的报文是有真实的数据包和一些头部组成&#xff0c;目前我们了解的头部就有TCP头、IP头、MAC头&#xff0c;而且这三个头部信息都是在应用程序委托给协议栈之后&#xff0c;被写入的相关信息&#xff0c;这些头部都是…

修改jenkins的目录(JENKINS_HOME)

默认JENKINS_HOME是/var/lib/jenkins/ 现要修改为/home/jenkins_data/jenkins 最开始 sudo cp -a /var/lib/jenkins/ /home/jenkins_data/ 然后如下操作&#xff1a; 1、首先 /etc/sysconfig/jenkins&#xff1a;jenkins配置文件&#xff0c;“端口”&#xff0c;“JENKIN…

08-接口文档管理工具-项目集成knife4j__ev

2、knife4j快速入门 2.1 knife4j介绍 knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍! gitee地址&#xff1a;knife4j: Knife4j是一个集Swagger2 和 OpenAPI3为一体的增…

第二十六周:学习笔记

第二十六周&#xff1a;学习笔记 摘要Abstract全卷积网络 FCN1. CNN 与 FCN2. 全连接层 --> 成卷积层3. FCN的缺点 摘要 全卷积神经网络&#xff08;Fully Convolutional Network&#xff0c;FCN&#xff09;是一种用于图像分割和语义分割任务的深度学习模型。与传统的卷积…

使用python快速开发与PDF文档对话的Gemini聊天机器人

检索增强生成(Retrieval-augmented generation&#xff0c;RAG)使得我们可以让大型语言模型(LLMs)访问外部知识库数据(如pdf,word、text等)&#xff0c;从而让人们可以更加方便的通过LLM来学习外部数据的知识。今天我们将利用之前学习到的RAG方法&#xff0c;谷歌Gemini模型和l…

费曼学习法应用:谈自私和教育的引导

今天这个还是来源于我和九迁的对话&#xff0c;起因是中午吃饭的时候&#xff0c;九迁在学校与班主任老师和数学老师对话中带来的思考。 先听音频&#xff1a; 对话内容&#xff08;以下内容可以边听边看&#xff0c;属于语音转换过来的文字&#xff0c;最后有个总结&#xff0…

U4_3 语法分析-自底向上分析-LR0/LR1/SLR分析

文章目录 一、LR分析法1、概念2、流程3、LR分析器结构及分析表构造1&#xff09;结构2&#xff09;一些概念 二、LR(0)分析法1、流程2、分析动作1&#xff09;移近2&#xff09;归约(reduce) 3、总结1&#xff09;LR分析器2&#xff09;构造DFA3&#xff09;构造LR(0)的方法(三…

基于Vite创建简单Vue3工程

首先安装node.js环境&#xff0c;没有node.js环境&#xff0c;便没有npm命令。 1、Vue3创建执行命令 D:\TABLE\test>npm create vuelatestVue.js - The Progressive JavaScript Framework√ 请输入项目名称&#xff1a; ... vue_test √ 是否使用 TypeScript 语法&#xff…

网络安全-真实ip获取伪造与隐藏挖掘

目录 真实ip获取应用层网络层网络连接TOAproxy protocol ip伪造应用层网络层TOA攻击proxy protocol 隐藏代理 挖掘代理多地ping历史DNS解析记录国外主机解析域名网站RSS订阅网络空间搜索引擎 总结参考 本篇文章学习一下如何服务如何获取真实ip&#xff0c;隐藏自己的ip&#xf…

yolov8 tracking编码为web 和 rtsp流输出

1 基础工作 打开cmd 输入 conda env list 输入 conda activate py38 查看 nvidia-smi 查看 nvcc&#xff0c;如下图所示 cuda为11.7 &#xff0c;为确认可以查看program files 下面的cuda 安装&#xff0c;看到11.7 就行了&#xff0c;读者可以自行确认自己的版本。 查看nvid…

【基础】【Python网络爬虫】【2.请求与响应】常用请求报头和常用响应方法

Python网络爬虫基础 爬虫基础请求与相应HTTP/HTTPS 协议HTTP/HTTPS的优缺点HTTP 的缺点HTTPS的优点 请求与响应概述请求请求目标&#xff08;url&#xff09;请求体&#xff08;response&#xff09;常用的请求报头查看请求体&#xff08;requests 模块&#xff09; 响应HTTP响…

PS实现圆角矩形选取

在我们日常的工作当中,经常需要做圆角矩形的图片,因为圆角的图片给人的感觉比较圆润,漂亮,但是PS在这方面显然比较弱智,因此如何做圆角矩形选择,这里给出了两个方法,希望能帮到大家。 进入正题(方法一): 第一步-PS 右上角-打开一张图片 第二步-左列-选择矩形-选择目…

2024新年快乐

今天就不讲题解了&#xff0c;2024年&#xff0c;祝所有博客身体健康&#xff0c;粉丝越多&#xff0c;点赞越高&#xff01;&#xff01;&#xff01; #include<bits/stdc.h> using namespace std; int main(){cout<<"新年快乐!!";return 0&#xff1b;…

【小沐学Python】Python实现免费天气预报获取(OpenWeatherMap)

文章目录 1、简介1.1 工具简介1.2 费用1.3 注册1.4 申请key 2、接口说明2.1 One Call 3.02.2 Current Weather and Forecasts collection2.2.1 API 调用2.2.2 API 参数 2.3 Historical Weather collection2.4 Weather Maps collection2.5 Other weather APIs 3、接口测试3.1 例…

JavaFX:MVC模式学习01-使用PropertyValueFactory将模型与视图绑定

PropertyValueFactory类是“TableColumn cell value factory”,绑定创建列表中的项。示例如下&#xff1a; TableColumn<Person,String> firstNameCol new TableColumn<Person,String>("First Name");firstNameCol.setCellValueFactory(new PropertyVal…

IIS服务器发布PHP网站

IIS服务器&#xff0c;相信开发者都不会陌生&#xff0c;它的英文全称是Internet Information Services&#xff0c;是由微软公司提供的基于运行Microsoft Windows的互联网基本服务&#xff0c;常用于Windows系统的Web项目部署&#xff0c;本篇以PHP项目为例&#xff0c;讲解如…

R_handbook_作图专题

ggplot基本作图 1 条形图 library(ggplot2) ggplot(biopics) geom_histogram(aes(x year_release),binwidth1,fill"gray") 2 堆砌柱状图 ggplot(biopics, aes(xyear_release)) geom_bar(aes(fillsubject_sex)) 3 堆砌比例柱状图 ggplot(biopics, aes(xyear_rele…

idea 出现Cannot resolve symbol ‘springframework‘解决方法

Maven手动重新加载 1&#xff09;File–>Invalidate Caches / Restart… 清理缓存&#xff0c;重启idea客户端 2&#xff09;File–>Maven–>Reload project重新从maven中加载工程依赖的组件

51单片机项目(24)——基于51单片机的温控风扇protues仿真

1.功能设计 使用传感器测量温度&#xff0c;并将温度显示在LCD1602上。如果温度超过阈值&#xff0c;那么就打开风扇&#xff0c;否则风扇不打开。&#xff08;仿真的时候&#xff0c;用直流电机模拟风扇&#xff09;。 仿真截图如下&#xff1a; 此时温度是27度&#xff0c;我…

FA组件详解

1、了解FA核心组件以及功能 &#xff08;1&#xff09;TC&#xff08;Thin Client&#xff1a;瘦终端&#xff09;&#xff1a;就是类似于机顶盒的一个小盒子&#xff0c;里面有CPU、内存、USB、MIC、HDMI等接口&#xff0c;可以理解为小型电脑&#xff0c;但是它里面是没有操作…