tcpdump 异常错误
tcpdump 进行抓包的时候,-w 提示 Permission denied:
sudo tcpdump -w test1.log
tcpdump: test1.log: Permission denied
开始以为是用户权限的问题,后来换用 root 账户还是不行,经搜索,是 AppArmor 的问题。
解决方案如下:
先查看当前的 tcpdump 的模式:
grep tcpdump /sys/kernel/security/apparmor/profiles
/usr/sbin/tcpdump (enforce)
上面显示是 enforce 模式,所以有这个问题,把它改成 complain 模式:
aa-complain /usr/sbin/tcpdump ------ This will change it to complain
再次使用 tcpdump 并写文件的时候就没问题了。
想在转换成 enforce 模式时:
aa-enforce /usr/sbin/tcpdump ----- This will renable the AppArmor profile for tcpdump
【注】 通过命令 aa-complain 或 aa-enforce 可以切换 profile 文件的状态。这需要先安装对应的 utils 工具: sudo apt-get install apparmor-utils
在抓包完成后,抓包的大小为0
一般的原因为磁盘满了,没有办法继续储存。
解决办法:
1、遇到该问题,先用df-h 命令,看一下磁盘的可用大小,排除是否为磁盘的原因
2、每次抓包在最后加一个参数,-v可以实时看到抓包大小的变化
在敲下命令,报错提示,No Space to left
这个问题的原因一般是inodes满了导致的
可以用df -i 命令,查看
安装tcpdump
用下面的命令检查一下是否已经安装了 tcpdump:
which tcpdump
这个截图就是没有安装tcpdump:

下面是安装了tcpdump的截图:

如果还没有安装 tcpdump,用如下命令安装 tcpdump:
sudo yum install -y tcpdump
tcpdump 依赖于 libpcap,该库文件用于捕获网络数据包。如果该库文件也没有安装,系统会根据依赖关系自动安装它。
用 tcpdump 抓包
使用 tcpdump 抓包,需要管理员权限,因此下面的示例中绝大多数命令都是以 sudo 开头。
首先,先用 tcpdump -D 命令列出可以抓包的网络接口:
sudo tcpdump -D

如上所示,可以看到我的机器中所有可以抓包的网络接口。其中特殊接口 any 可用于抓取所有活动的网络接口的数据包。
我们就用如下命令先对 any 接口进行抓包:
sudo tcpdump -i any
tcpdump 会持续抓包直到收到中断信号。你可以按 Ctrl+C 来停止抓包。正如上面示例所示,tcpdump 抓取了超过 10000 个数据包。在这个示例中,由于我是通过 ssh 连接到服务器,所以 tcpdump 也捕获了所有这类数据包。
-c 选项可以用于限制 tcpdump 抓包的数量:
sudo tcpdump -i any -c 3

如上所示,tcpdump 在抓取 3 个数据包后自动停止了抓包。这在有些场景中十分有用 —— 比如你只需要抓取少量的数据包用于分析。当我们需要使用过滤规则抓取特定的数据包(如下所示)时,-c 的作用就十分突出了。
在上面示例中,tcpdump 默认是将 IP 地址和端口号解析为对应的接口名以及服务协议名称。而通常在网络故障排查中,使用 IP 地址和端口号更便于分析问题;用 -n 选项显示 IP 地址,-nn 选项显示端口号:
sudo tcpdump -i any -c 3 -nn
理解抓取的报文
tcpdump 能够抓取并解码多种协议类型的数据报文,如 TCP、UDP、ICMP 等等。虽然这里我们不可能介绍所有的数据报文类型,但可以分析下 TCP 类型的数据报文,来帮助你入门。更多有关 tcpdump 的详细介绍可以参考其 帮助手册。tcpdump 抓取的 TCP 报文看起来如下:
12:43:24.047063 IP 202.106.2.140.22 > 202.106.2.116.52980: Flags [P.], seq 4020757562:4020757774, ack 1254862904, win 274, length 212
1列:12:43:24.047063 是该数据报文被抓取的系统本地时间戳。
2列:IP 是网络层协议类型,这里是 IPv4,如果是 IPv6 协议,该字段值是 IP6。
3列:202.106.2.140 是源 IP 地址和端口号 22
4列:202.106.2.116 是目的 IP 地址和端口号 52980
5列: TCP 报文标记段 Flags [P.]。该字段也可以是这些值的组合,例如 [S.] 代表 SYN-ACK 数据包。该字段通常取值如下:
| 值 | 标志类型 | 描述 |
| S | SYN | Connection Start |
| F | FIN | Connection Finish |
| P | PUSH | Data push |
| R | RST | Connection reset |
| . | ACK | Acknowledgment |
6列:接下来是该数据包中数据的序列号。对于抓取的第一个数据包,该字段值是一个绝对数字,后续包使用相对数值,以便更容易查询跟踪。例如此处 seq 4020757562:4020757774代表该数据包包含该数据流的第 XX 到 XXX 字节。
7列:接下来是 ack 值:ack 1254862904。该数据包是数据发送方,ack 值为 XXX。在数据接收方,该字段代表数据流上的下一个预期字节数据。
8列:接下来字段是接收窗口大小 win 274,它表示接收缓冲区中可用的字节数,后跟 TCP 选项如 MSS(最大段大小)或者窗口比例值。更详尽的 TCP 协议内容请参考 Transmission Control Protocol(TCP) Parameters。
9列:length 212代表数据包有效载荷字节长度。这个长度和 seq 序列号中字节数值长度是不一样的。
相关文章:
tcpdump 异常错误
tcpdump 进行抓包的时候,-w 提示 Permission denied: sudo tcpdump -w test1.log tcpdump: test1.log: Permission denied 开始以为是用户权限的问题,后来换用 root 账户还是不行,经搜索,是 AppArmor 的问题。 解决方…...
如何绘制【逻辑回归】中threshold参数的学习曲线
threshold参数的意义是通过筛选掉低于threshold的参数,来对逻辑回归的特征进行降维。 首先导入相应的模块: from sklearn.linear_model import LogisticRegression as LR from sklearn.datasets import load_breast_cancer from sklearn.model_selecti…...
4.1 数据库安全性概述
思维导图: 前言: - **第一章回顾**:数据库特点 - 统一的数据保护功能,确保数据安全、可靠、正确有效。 - 数据保护主要涵盖: 1. **数据的安全性**(本章焦点) 2. 数据的完整性(第…...
tftp服务的搭建
TFTP服务的搭建 1 先更新一下apt包 sudo apt-get update2 服务器端(虚拟机上)安装 TFTP相关软件 sudo apt-get install xinetd tftp tftpd -y3 创建TFTP共享目录 mkdir tftp_sharetftp_shaer的路径是/home/cwz/tftp_share 3.1 修改共享目录的权限 sudo chmod -R 777 tftp…...
c语言简介
C 语言最初是作为 Unix 系统的开发工具而发明的。 1969年,美国贝尔实验室的肯汤普森(Ken Thompson)与丹尼斯里奇(Dennis Ritchie)一起开发了 Unix 操作系统。Unix 是用汇编语言写的,无法移植到其他计算机&…...
OpenLayers.js 入门教程:打造互动地图的入门指南
本文简介 戴尬猴,我是德育处主任 本文介绍如何使用 OpenLayers.js (后面简称 ol)。ol 是一个开源 JavaScript 库,可用于在Web页面上创建交互式地图。 ol能帮助我们在浏览器轻松地使用地图功能,例如地图缩放、地图拖动…...
黑马头条:app端文章查看
黑马头条:app端文章查看 黑马头条:app端文章查看文章列表加载1. 需求分析2. 表结构分析3. 导入文章数据库3.1 导入数据库3.2 导入对应的实体类 4. 实现思路5. 接口定义6. 功能实现6.1:导入heima-leadnews-article微服务,资料在当天…...
常见使用总结篇(一)
Autowired和Resource注解的区别 Autowired注解是Spring提供的,Resource注解是J2EE本身提供Autowird注解默认通过byType方式注入(没有匹配会通过byName方式),而Resource注解默认通过byName方式注入(没有匹配会通过byType方式)Autowired注解注入的对象需要…...
【软考系统架构设计师】2023年系统架构师冲刺模拟习题之《数据库系统》
在数据库章节中可能会考察以下内容: 文章目录 数据库完整性约束🌟数据库模式🌟🌟ER模式🌟关系代数🌟🌟并发控制🌟数据仓库与数据挖掘🌟🌟反规范化技术&#x…...
北邮22级信通院数电:Verilog-FPGA(7)第七周实验(1):带使能端的38译码器全加器(关注我的uu们加群咯~)
北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 关注作者的uu们可以进群啦~ 目录 方法一ÿ…...
SIT3491ISO具有隔离功能,256 节点,全双工 RS422/RS485 芯片
SIT3491ISO 是一款电容隔离的全双工 RS-422/485 收发器,总线端口 ESD 保护能力 HBM 达到 15kV 以上,功能完全满足 EIA-422 以及 TIA/EIA-485 标准要求的 RS-422/485 收发器。 SIT3491ISO 包括一个驱动器和一个接收器,两者均…...
在windows服务器上部署一个单机项目以及前后端分离项目
目录 一. 单机项目在windows服务器上的部署 1.1 在本机上测试项目无误 1.1.1 在数据库中测试sql文件没问题 1.1.2 在tomcat中测试war文件无误 1.1.3 测试完成后,进入浏览器运行单机项目确保无误 1.2 在windows服务器中运行项目 二. 前后端分离项目在服务器上…...
使用jdbc技术,在数据库中存储大数据对象(使用字节IO流读取图片等给blob等二进制类型数据赋值)
在MySQL中,BLOB是一种数据类型,代表二进制大对象(Binary Large Object),可以存储大量的二进制数据,如图像、声音、视频等。BLOB类型的数据在存储和检索时会以二进制方式进行处理,而不是字符方式…...
统计学习方法 支持向量机(下)
文章目录 统计学习方法 支持向量机(下)非线性支持向量机与和核函数核技巧正定核常用核函数非线性 SVM 序列最小最优化算法两个变量二次规划的求解方法变量的选择方法SMO 算法 统计学习方法 支持向量机(下) 学习李航的《统计学习方…...
【python】如何注释
一:通过#注释行 #这个是个注释 print(hello world) 二:通过或"""注释段落 这个注释段落 这是注释段落 这是注释段落print(hello world) """ 这是多行注释,用三个双引号 这是多行注释,用三个双引…...
C++——C++入门(二)
C 前言一、引用引用概念引用特性常引用使用场景传值、传引用效率比较值和引用的作为返回值类型的性能比较 引用和指针的区别 二、内联函数概念特性知识点提升 三、auto关键字类型别名思考auto简介auto的使用细则auto不能推导的场景 四、基于范围的for循环范围for的语法范围for的…...
容联七陌百度营销通BCP解决方案,让营销更精准
百度营销通作为一个快速迭代、满足客户多元化营销需求的高效率营销工具成为众多企业的选择,通过百度营销通BCP对接,企业就可以在百度咨询页接入会话,收集百度来源的访客搜索关键词,通过百度推广获取更多的精准客户,从而…...
Transformer模型 | 用于目标检测的视觉Transformers训练策略
基于视觉的Transformer在预测准确的3D边界盒方面在自动驾驶感知模块中显示出巨大的应用,因为它具有强大的建模视觉特征之间远程依赖关系的能力。然而,最初为语言模型设计的变形金刚主要关注的是性能准确性,而不是推理时间预算。对于像自动驾驶这样的安全关键系统,车载计算机…...
贪心区间类题目
一、先排序 1、一般统计有几个重复区间、判断是否有重复区间,对右边界经行排序。 2、合并区间,对左边界经行排序,且尽量想到先放入一个元素到res中,然后不断更新res的右边界 二、判断重复 判断i是否和i-1重复,如果…...
npm改变npm缓存路径和改变环境变量
在安装nodejs时,系统会自动安装在系统盘C, 时间久了经常会遇到C盘爆满,有时候出现红色,此时才发现很多时候是因为npm 缓存保存在C盘导致的,下面就介绍下如何改变npm缓存路径。 1、首先找到安装nodejs的路径,…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
