tcpdump(二)命令行参数讲解(一)
一 tcpdump实战详解
1、我们做'抓包',一般都需要指定'条件',保证对系统的'CPU、内存、磁盘'资源不会产生过大的响应备注: 遇到过tcpdump'持续抓包'导致系统'挂了'2、条件:1) tcpdump的 '基础命令选项参数'2) 真正的 '过滤条件'
抓包工具tcpdump用法说明
① 参数学习思路
思路: 掌握'常用'的'选项参数',其它遇到了'再学习'备注: 由于是'科普'类的文章,本文视图尽可能的'详细'罗列每个参数附加: man tcpdump

② 抓包应用场景
说明: 关注'2'、'4'、'5'

③ tcpdump工作原理
![]()

④ 面试题
目的: 考察'tcpdump'的工作原理

二 命令行选项参数

注意: 一些'默认'的'老6'行为

① tcpdump的组成
背景: 参数的'不确定性',让大多数人对 tcpdump 的学习始终'无法'得其'精髓'目的: 便于理解'每个位置'的'顺序'和'含义'



sudo tcpdump -vvnni any port 80 --> '看到HTTP详细信息'
② 网络接口
1、lvs配置'多业务'网卡,需要采用'-i any'2、只配置了一个业务网卡[例如:eth0],可以使用-i eth0.

常见: '无参'、'-i 网卡'、'-i any'无参: 如果不指定网络接口,tcpdump 在运行时会选择'编号最低'的网络接口,一般情况下是 eth0补充: any 这一'特定'的网络接口名用来让 tcpdump 监听'所有'的接口-i: 'interface' --> 抓取流经指定'网卡'所有网络接口,'限定'网络接口

说明: 一般通过'tcpdump -D'查询'网络接口',然后'tcpdump -i' 获取指定'网卡'流量

③ -n
![]()
优化: 设置'不解析域名'提升速度-n: 不把ip转化成'域名',直接显示 ip,避免执行 'DNS lookups' 的过程,速度会快很多-nn: 不把'协议'和'端口号'转化成'名字',速度也会快很多 --> "常用"思考: 'CDN' 场景,是否需要把'ip'解析为'域名'?



端口'与'服务名称解析linux'端口号'与'相应服务'的对应关系存放在'/etc/services'文件中,可以找到'大部分'端口备注: 使用netstat命令'显示的服务名称'也是从'这个文件'中找的附加: /etc/services关于'服务、协议、端口'关联

④ host、src、dst 基于ip地址过滤
![]()

数据包的 ip 可以再细分为'src 源ip'和'dst 目标ip'两种++++++++++++++++++ "分割线" ++++++++++++++++++
如果没有指定'类型',默认是'host'等价: tcpdump -ni eth0 src 10.1.1.2

遗留: 'src'和'dst'通过'逻辑符号'可以同时使用
⑤ net 基于网段过滤
说明: 网段'同样'可以再细分为'源'网段和'目标'网段tcpdump src net 192.168.1.0/24 --> 根据'源网段'进行过滤

⑥ port portrange 基于端口号过滤

1、tcpdump port 8088 --> 指定'特定端口'进行过滤2、tcpdump port 80 or port 8088 --> 同时指定'两个'端口简写: tcpdump port 80 or 80883、tcpdump src port 8088 --> 根据'源端口'进行过滤4、tcpdump portrange 8000-8080 --> 想抓取的是一个端口'范围'5、tcpdump src port http备注: 对于一些'常见协议'的'默认'端口,我们还可以直接使用'协议名',而不用具体的端口号附加: http == 80、https == 443

⑦ proto基于协议进行过滤
常见的'网络协议'有:tcp、udp、icmp、http、ip、ipv6 等强调: 旧版本有'proto'关键字,新版本没有,这里'Centos7.7' 默认的'4.9.2'没有补充: 不指定'协议类型',则抓取'所有'协议类型的包


⑧ tcpdump输出结构
说明: tcpdump '输出的内容'虽然多,却'很规律' --> '后续重点掌握'请求: http://other.wzj.com/index.yml '为例'来看一下
![]()
第一列: 时分秒毫秒 第二列: 网络协议 IP第三列: '发送方'的ip地址+端口号,其中172.20.20.1是 ip,而15605 是'端口号'第四列: 箭头 >, 表示'数据流向'第五列: '接收方'的ip地址+端口号,其中 172.20.20.2 是 ip,而5920 是端口号第六列: 冒号第七列: 数据包内容备注: 包括Flags 标识符,seq 号,ack 号,win 窗口,'数据长度' length附加: 其中 '[P.]' 表示 'PUSH 标志位为 1'说明: 分列是为了与'awk'结合提取'有用'的信息


相关文章:
tcpdump(二)命令行参数讲解(一)
一 tcpdump实战详解 1、我们做抓包,一般都需要指定条件,保证对系统的CPU、内存、磁盘资源不会产生过大的响应备注: 遇到过tcpdump持续抓包导致系统挂了2、条件:1) tcpdump的 基础命令选项参数2) 真正的 过滤条件 抓包工具tcpdump用法说明 ① 参数学…...
10_8C++
X-Mind #include <iostream>using namespace std; class Rect { private:int width;int heigjt; public:void init(int w,int h){width w;heigjt h;}void set_w(int w){width w;}void set_h(int h){heigjt h;}void show(){cout << "矩形的周长" <…...
JVM篇---第七篇
系列文章目录 文章目录 系列文章目录一、Minor GC与Full GC分别在什么时候发生?二、你知道哪些JVM性能调优参数?(简单版回答)三、对象一定分配在堆中吗?有没有了解逃逸分析技术?一、Minor GC与Full GC分别在什么时候发生? 新生代内存不够用时候发生MGC也叫YGC,JVM内存…...
更新Xcode 版本后运行项目出现错误 Unable to boot the Simulator 解决方法
错误截图 出现 Unable to boot the Simulator 错误原因很多,以下方法不一定都适用,我是通过以下方法解决的 打开命令终端输入以下命令,可能需要你输入开机密码 sudo rm -rf ~/Library/Developer/CoreSimulator/Caches...
winform窗体控件太多显示不过来,怎么实现滚动条
winform窗体控件太多显示不过来,怎么实现滚动条 Winform Panel实现滚动条 一、创建panel 在界面上拖拽一个父级Panel1,然后在Panel1里面拖拽一个子级Panel2 设置父级Panel1的AutoScroll属性为True 属性设置好后,当子级高度或者宽度大于父…...
WebSocket连接异常 Error parsing HTTP request header Connection reset by peer
问题描述 在使用spring的方式集成websocket时,在配置WebSocketConfigurer后 Configuration EnableWebSocket public class WebSocketConfiguration implements WebSocketConfigurer {ResourceServletWebSocketServerHandler servletWebSocketServerHandler;Overri…...
Spring中shutdown hook作用
在Spring框架中,Shutdown Hook(关闭钩子)是一种机制,用于在应用程序关闭时执行一些清理操作Spring会向JVM注册一个shutdown hook,在接收到关闭通知的时候,进行bean的销毁,容器的销毁处理等操作在…...
关于IvorySQL和OpenGauss包SPEC处理的一些思考
包的SPEC区可以定义下面三种类型(本篇只讨论SPEC区的情况) 变量类型(nested table等)(注意这是包内定义的类型,与SQL创建的不通)游标 这三种类型在PG原生中,是找不到相似的功能的&…...
我用PYQT5做的第一个实用的上位机项目(六)
将之前的画面和代码用复制粘贴的方法复制四份,就完成了整个主画面和主程序的基本构建。 下面的工作是关于PLC和通信。 上位机项目,其与PLC通信的模式很多都是这样的:在没有操作和设置的平常显示界面,按照预定周期从PLC读取当前页…...
【高级语言程序设计】python函数式编程(一)
基础知识 Python函数式编程的主要内容包括以下几个方面: (1)函数作为一等公民:在函数式编程中,函数被视为一等公民,可以像其他数据类型一样被传递、赋值以及作为返回值。 (2)不可变数据:函数式编程鼓励使用不可变数据…...
使用python查找指定文件夹下所有xml文件中带有指定字符的xml文件
文件夹目录如下(需要递归删除文件夹下的.DS_Store文件): labels文件夹下面是xml文件: import os import os.pathpath "name/labels" files os.listdir(path) # 得到文件夹下所有文件名称 s []for xmlFile in files:…...
flutter实现透明appbar(一)
前言 在项目中如何实现透明的appbar,方式一: 使用stack和positioned定位功能把appbar定位到页面的最上面, 实现 实现 Widget build(BuildContext context) {return Scaffold(body: Stack(children: [_homePage(), _appBar()],),);}_appbar…...
(四)正点原子STM32MP135移植——u-boot移植
一、概述 u-boot概述就不概述了,u-boot、kernel、dtb三件套,dddd 经过国庆艰苦奋战,已经成功把所有功能移植好了 二、编译官方代码 进入u-boot的目录 2.1 解压源码、打补丁 /* 解压源码 */ tar xf u-boot-stm32mp-v2022.10-stm32mp-r1-r0.…...
[计算机入门] 应用软件(办公类)
3.19 应用软件(办公类) 3.19.1 Microsoft office办公软件套件 Microsoft Office 是一套广泛使用的办公软件套件,由Microsoft公司开发和发布。它包含了多个应用程序,用于处理各种办公任务。以下是Office常见的几个应用程序: Microsoft Word…...
基于安卓android微信小程序音乐播放器
运行环境 小程序前端框架:uniapp 小程序运行软件:微信开发者 后端技术:javaSsm(SpringSpringMVCMyBatis)vue.js 后端开发环境:idea/eclipse 数据库:mysql 项目介绍 音乐播放器小程序的设计主要是对系统所要实现的功能进行详细考虑,确定所要…...
Java的指针、引用与C++的指针、引用的对比
笔者前两天在参加菜鸟面试的时候被面试官问到了这个问题,由于只在本科程序设计课上学过C,已经好久没有开发实际项目,所以对C相关的指针以及引用的记忆较为模糊,在此进行一定的知识汇总与梳理。 我们以面试中出现的问题为例来进行整…...
串级/级联控制知识点整理
串级控制系统是改善控制质量的有效方法之一,在过程控制中得到了广泛的应用。所谓串级控制,就是采用两个控制器串联工作,外环控制器的输出作为内环控制器的设定值,由内环控制器的输出去操纵控制阀,从而对外环被控量具有…...
数据产品读书笔记——认识数据产品经理
🌻大家可能听说的更多是产品经理这个角色,对数据产品经理可能或多或少了解一些,但又不能准确的描述数据产品经理的主要职能和与其他产品的不同,因此通过读一些书来对数据产品经理有一个准确且全面的认知。 目录 1. 数据的产品分类…...
从 0 到 1 ,手把手教你编写《消息队列》项目(Java实现) —— 创建虚拟机
文章目录 一、虚拟机二、关于消息的API发布消息直接交换机 DIRECT 转发规则扇出交换机 FANOUT 转发规则主题交换机 TOPIC 转发规则匹配规则Router类 订阅消息消费者队列如何给订阅的消费者发送消息自动发送消息至订阅者 应答消息 三、代码编写 一、虚拟机 接下来要创建虚拟机,…...
GIT版本控制--前言
欢迎来到《GIT版本控制》专栏!在当今软件开发和协作的世界中,版本控制是不可或缺的工具之一。无论您是一名初学者,一位经验丰富的开发者,还是一个项目团队的成员,都有可能会受益于对GIT的深入了解。 GIT是一个强大的分…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
CppCon 2015 学习:Time Programming Fundamentals
Civil Time 公历时间 特点: 共 6 个字段: Year(年)Month(月)Day(日)Hour(小时)Minute(分钟)Second(秒) 表示…...
