当前位置: 首页 > news >正文

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​​ 数据包。该字段通常取值如下:
 

标志类型描述
SSYNConnection Start
FFINConnection Finish
PPUSHData push
RRSTConnection reset
.ACKAcknowledgment

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们可以进群啦~ 目录 方法一&#xff…...

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的路径&#xff0c…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

Bean 作用域有哪些?如何答出技术深度?

导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答&#xff0c…...