linux下的网络抓包(tcpdump)介绍
linux下的网络抓包[tcpdump]介绍
- 前言
- tcpdump
- 1. 安装 tcpdump
- 2. 基本抓包命令
- 3. 过滤器使用
- 4. 保存捕获的数据包
- 异常指标
- 1. 连接建立与断开相关指标
- 异常 SYN 包
- 异常 FIN 或 RST 包
- 2. 流量相关指标
- 异常流量峰值
- 异常源或目的 IP 流量
- 3. 端口相关指标
- 异常端口使用
- 端口扫描
- 4. 数据包大小相关指标
- 异常大或小的数据包
- 注意事项
- 1. 权限问题
- 2. 性能影响
- 3. 数据安全
- 4. 法律合规
前言
-
抓包原理
抓包工具通过将网络接口设置为混杂模式(Promiscuous Mode)来工作,在混杂模式下,网络接口会接收所有经过它的数据包,而不仅仅是目标地址为本机的数据包,抓包工具会捕获这些数据包,并将其存储或显示出来,以便后续分析 -
数据包结构
数据包通常由头部和数据两部分组成,头部包含了源地址、目的地址、协议类型、端口号等信息,而数据部分则是实际传输的内容,不同的协议有不同的头部结构,了解这些结构有助于分析数据包 -
协议分析
常见的网络协议如 TCP、UDP、HTTP、HTTPS 等,每个协议都有其特定的工作方式和数据包格式,抓包后,需要根据协议的特点来分析数据包,例如 TCP 协议的三次握手、四次挥手过程,HTTP 协议的请求和响应报文结构等
tcpdump
1. 安装 tcpdump
yum install tcpdump
2. 基本抓包命令
- 捕获所有数据包:
tcpdump
该命令会捕获所有经过网络接口的数据包,并将其显示在终端上,由于会捕获大量数据包,可能会导致终端输出信息过多,所以一般会结合过滤器配合使用
- 指定网络接口进行抓包:
tcpdump -i ens33
这里的 ens33 是网络接口的名称,可以根据实际情况替换为其他接口,可通过ifconfig查看,使用 -i 选项可以指定要捕获数据包的网络接口
- 抓包示例数据分析:
15:37:56.674379 IP 192.168.3.7.50852 > localhost.localdomain.pqsp: Flags [S], seq 3449650029, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
15:37:56.932674 IP 192.168.3.7.50852 > localhost.localdomain.pqsp: Flags [.], ack 1083, win 1022, length 0
15:37:56.982326 IP 192.168.3.7.50852 > localhost.localdomain.pqsp: Flags [P.], seq 169:179, ack 1097, win 1022, length 10
以其中一条记录 15:37:56.932674 IP 192.168.3.7.50852 > localhost.localdomain.pqsp: Flags [.], ack 1083, win 1022, length 0 为例:
- 时间戳
15:37:56.932674
这是数据包被捕获的时间,精确到微秒,格式为 时:分:秒.微秒,这里表示数据包是在当天的 15 时 37 分 56 秒 932674 微秒被捕获的
- 协议类型
IP
表示该数据包使用的是 IP(Internet Protocol,网际协议),这是网络层的基础协议,用于在不同网络之间传输数据包
- 源地址和端口、目的地址和端口
192.168.3.7.50852 > localhost.localdomain.pqsp
-
源地址和端口:192.168.3.7 是发送数据包的主机的 IP 地址,50852 是该主机上发送此数据包的应用程序所使用的端口号
-
目的地址和端口:localhost.localdomain 是接收数据包的主机名,通常 localhost 代表本地主机,对应的 IP 地址是 127.0.0.1;pqsp 代表接收方应用程序使用的端口,不过这里的 pqsp 可能是一个不太常见的服务名,在网络中端口一般用数字表示,系统可能将某个端口号映射成了 pqsp 这个服务名
-
标志位(Flags)
Flags [.]
标志位用于表示 TCP 数据包的不同状态或操作,常见的标志位有:
- S(SYN):用于建立连接的同步信号
- F(FIN):表示请求关闭连接
- R(RST):用于重置连接
- P(PSH):表示需要尽快将数据推送给应用层
- A(ACK):用于确认收到数据包
- U(URG):表示紧急指针有效
这里的 [.] 表示只有 ACK 标志位被设置,说明这是一个确认数据包
- 确认号(ack)
ack 1083
确认号表示发送方期望接收的下一个数据包的序列号,这里表示接收方已经成功接收了序列号小于 1083 的所有数据包,期望下一个收到的数据包序列号为 1083
- 窗口大小(win)
win 1022
窗口大小表示接收方当前可用的缓冲区大小,单位是字节,这里表示接收方当前有 1022 字节的缓冲区可以用来接收数据,发送方在发送数据时,需要考虑接收方的窗口大小,以避免发送过多数据导致接收方缓冲区溢出
- 数据包长度(length)
length 0
表示该数据包中携带的数据长度为 0 字节,此数据包可能只包含控制信息,如确认信息等,而没实际的应用层数据
- 其他示例分析
15:37:56.982326 IP 192.168.3.7.50852 > localhost.localdomain.pqsp: Flags [P.], seq 169:179, ack 1097, win 1022, length 10
- Flags [P.]:表示 PSH 和 ACK 标志位被设置,PSH 标志表示发送方希望接收方尽快将数据推送给应用层,ACK 表示确认
- seq 169:179:序列号范围,说明此数据包中数据的起始序列号是 169,结束序列号是 179,数据包携带的数据长度为 179 - 169 = 10 字节,与后面的 length 10 相呼应
- ack 1097:表示期望接收的下一个数据包序列号为 1097
- win 1022:接收方可用缓冲区大小为 1022 字节
- length 10:数据包携带的数据长度为 10 字节
15:37:56.674379 IP 192.168.3.7.50852 > localhost.localdomain.pqsp: Flags [S], seq 3449650029, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
- Flags [S]:表示 SYN 标志位被设置,说明是一个用于建立 TCP 连接的同步数据包,是 TCP 三次握手的第一步
- seq 3449650029:发送方随机选择的初始序列号
- win 64240:发送方的初始窗口大小为 64240 字节
- options [mss 1460,nop,wscale 8,nop,nop,sackOK]:TCP 选项字段,包含了一些额外的信息:
- mss 1460:最大段大小(Maximum Segment Size),表示发送方期望接收的最大 TCP 数据段大小为 1460 字节
- wscale 8:窗口缩放因子,用于扩大窗口大小
- sackOK:表示支持选择确认(Selective Acknowledgment),允许接收方更精确地确认收到的数据包
- length 0:此数据包只用于建立连接,不携带实际数据
3. 过滤器使用
- 根据 IP 地址过滤:
- 捕获源 IP 地址为 192.168.1.100 的数据包:
tcpdump -i ens33 ip src 192.168.1.100
- 捕获目的 IP 地址为 192.168.1.200 的数据包:
tcpdump -i ens33 ip dst 192.168.1.200
- 根据端口号过滤:
- 捕获源端口为 80 的数据包:
tcpdump -i ens33 tcp src port 80
- 捕获目的端口为 443 的数据包:
tcpdump -i ens33 tcp dst port 443
- 根据协议过滤:
- 捕获 TCP 协议的数据包:
tcpdump -i ens33 tcp
- 捕获 UDP 协议的数据包:
tcpdump -i ens33 udp
- host 选项
host 是一个过滤表达式,用于指定要捕获特定主机(IP 地址或主机名)发送或接收的数据包
tcpdump host <host>
- 捕获来自或发往 IP 地址为 192.168.1.100 的主机的所有数据包:
tcpdump host 192.168.1.100
- 捕获来自或发往主机名为 example.com 的主机的所有数据包:
tcpdump host example.com
-i 和 host 组合使用
可以将 -i 和 host 结合起来,指定在某个特定的网络接口上捕获特定主机的数据包
tcpdump -i <interface> host <host>
- 在接口 ens33 上捕获来自或发往 IP 地址为 192.168.1.100 的主机的所有数据包:
tcpdump -i ens33 host 192.168.1.100
- 在无线接口 wlan0 上捕获来自或发往主机名为 example.com 的主机的所有数据包:
tcpdump -i wlan0 host example.com
还可以在上述命令的基础上添加其他过滤条件,例如指定协议、端口等
- 在 ens33 接口上捕获来自或发往 192.168.1.100 主机的 TCP 数据包:
tcpdump -i ens33 host 192.168.1.100 and tcp
- 在 wlan0 接口上捕获来自或发往 example.com 主机的端口为 80 的 HTTP 数据包:
tcpdump -i wlan0 host example.com and port 80
4. 保存捕获的数据包
tcpdump -i ens33 > test.log
这里的 test.log 是保存的文件名,保存后的文件可以使用 Wireshark 等工具进行进一步分析
异常指标
1. 连接建立与断开相关指标
异常 SYN 包
- 指标特征:大量 SYN 包但缺少后续的 SYN - ACK 或 ACK 响应,正常的 TCP 连接建立需要经过三次握手(客户端发送 SYN,服务器返回 SYN - ACK,客户端再发送 ACK),如果只有大量的 SYN 包发送出去,而没有完成后续的握手过程,可能是遭受了 SYN 洪水攻击
- 判断方法:使用 tcpdump 命令结合过滤规则,例如:
tcpdump -i ens33 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack == 0'
捕获只有 SYN 标志位设置的数据包,如果在短时间内此类数据包数量急剧增加,就可能存在异常
异常 FIN 或 RST 包
- 指标特征:频繁出现 FIN 或 RST 包,FIN 包用于正常关闭 TCP 连接,RST 包用于异常终止连接,如果在短时间内某个 IP 地址频繁发送 FIN 或 RST 包,可能表示该主机存在应用程序崩溃、网络故障或者遭受攻击等情况
- 判断方法:使用过滤规则,如:
tcpdump -i ens33 'tcp[tcpflags] & (tcp-fin|tcp-rst) != 0'
捕获设置了 FIN 或 RST 标志位的数据包,统计特定 IP 地址发送这些包的频率,如果频率过高则可能存在异常
2. 流量相关指标
异常流量峰值
- 指标特征:某个时间段内网络流量突然大幅增加或减少,流量突然增加可能是因为遭受了 DDoS 攻击、有大文件下载或者某个应用程序出现异常;流量突然减少可能是网络设备故障、线路中断等原因
- 判断方法:可以通过 tcpdump 持续捕获数据包并统计流量,例如,每隔一段时间(如 1 分钟)统计捕获的数据包总字节数,绘制流量变化曲线,当曲线出现明显的峰值或谷值时,需要进一步分析原因
异常源或目的 IP 流量
- 指标特征:某个特定 IP 地址的流量远远高于或低于其他 IP 地址,如果某个 IP 地址的流量异常高,可能是该主机正在进行大规模的数据传输、遭受攻击或者存在恶意软件;如果某个 IP 地址的流量异常低,可能是该主机出现故障或者被隔离
- 判断方法:使用 tcpdump 捕获数据包,并结合工具(如 awk)统计每个 IP 地址的流量,例如:
tcpdump -i ens33 -c 1000 | awk '{print $3}' | cut -d '.' -f 1-4 | sort | uniq -c | sort -nr
可以统计前 1000 个数据包中每个源 IP 地址的出现次数,间接反映其流量情况
3. 端口相关指标
异常端口使用
- 指标特征:使用了不常见的端口进行通信,一些恶意软件或攻击者可能会使用不常见的端口来绕过防火墙或隐藏其活动,例如,通常 Web 服务使用 80 或 443 端口,如果发现有大量数据通过其他不常见的端口(如 12345)传输,就可能存在异常
- 判断方法:使用 tcpdump 捕获数据包并分析端口号,例如:
tcpdump -i ens33 'tcp port not (80 or 443)'
可以捕获除 80 和 443 端口之外的 TCP 数据包,对这些数据包进行进一步分析,查看是否存在异常的通信行为
端口扫描
- 指标特征:短时间内对大量端口进行连接尝试,攻击者通常会使用端口扫描工具来发现目标主机开放的端口,以便寻找攻击漏洞,如果在短时间内某个 IP 地址对多个端口发送 SYN 包,就可能是在进行端口扫描
- 判断方法:使用过滤规则:
tcpdump -i ens33 'tcp[tcpflags] & tcp-syn != 0'
捕获 SYN 包,然后统计每个源 IP 地址尝试连接的端口数量,如果某个 IP 地址在短时间内尝试连接的端口数量较多,就可能存在端口扫描行为
4. 数据包大小相关指标
异常大或小的数据包
- 指标特征:出现大量异常大或小的数据包,异常大的数据包可能是因为应用程序发送了大文件、存在数据泄露或者遭受了分片攻击;异常小的数据包可能是因为应用程序设计不合理、存在网络故障或者遭受了攻击
- 判断方法:使用 tcpdump 捕获数据包并查看其长度,例如:
tcpdump -i ens33 -vvv
可以显示详细的数据包信息,包括数据包长度,统计数据包长度的分布情况,当发现有大量数据包的长度偏离正常范围时,需要进一步分析原因
注意事项
1. 权限问题
由于抓包涉及到对网络接口的底层操作,需要具有管理员权限
2. 性能影响
长时间或大规模的抓包操作可能会对系统性能产生一定的影响,尤其是在高流量的网络环境中,因此,在进行抓包时,应尽量使用过滤器来减少捕获的数据包数量
3. 数据安全
捕获的数据包可能包含敏感信息,如用户名、密码、信用卡号等,在处理和存储捕获的数据包时,应注意保护这些信息的安全,避免泄露
4. 法律合规
在某些情况下,未经授权的抓包行为可能违反法律法规,在进行抓包操作前,应确保有合法的权限,并且遵守相关的法律规定
相关文章:
linux下的网络抓包(tcpdump)介绍
linux下的网络抓包[tcpdump]介绍 前言tcpdump1. 安装 tcpdump2. 基本抓包命令3. 过滤器使用4. 保存捕获的数据包 异常指标1. 连接建立与断开相关指标异常 SYN 包异常 FIN 或 RST 包 2. 流量相关指标异常流量峰值异常源或目的 IP 流量 3. 端口相关指标异常端口使用端口扫描 4. 数…...
深入理解 Linux 中的 -h 选项:让命令输出更“人性化”
在 Linux 系统中,命令行工具是系统管理员和普通用户最常用的交互方式之一。然而,命令行输出往往充满了技术性术语和数字,对于初学者或非技术用户来说可能显得晦涩难懂。幸运的是,许多 Linux 命令都提供了一个非常实用的选项&#…...
selenium的鼠标操作
1、鼠标操作 鼠标时间对应的方法在那个类中? ActionChains类,实例化 鼠标对象 1、context_click(element) # 右击 2、double_click(element) #双击 3、double_and_drop(source, target) # 拖拽 4、move_to_element(element) # 悬停 【重点】 5、perform() …...
STM32——GPIO介绍
GPIO(General-Purpose IO ports,通用输入/输出接口)模块是STM32的外设接口的核心部分,用于感知外界信号(输入模式)和控制外部设备(输出模式),支持多种工作模式和配置选项。 1、GPIO 基本结构 STM32F407 的每个 GPIO 引脚均可独立配置,主要特性包括: 9 组 GPIO 端口…...
Word 小黑第15套
对应大猫16 修改样式集 导航 -查找 第一章标题不显示 再选中文字 点击标题一 修改标题格式 格式 -段落 -换行和分页 勾选与下段同页 添加脚注 (脚注默认位于底部 )在脚注插入文档属性: -插入 -文档部件 -域 类别选择文档信息,域…...
linux自启动服务
在Linux环境中,systemd是一个系统和服务管理器,它为每个服务使用.service文件进行配置。systemctl是用于控制系统服务的主要工具。本文将详细介绍如何使用systemctl来管理vsftpd服务,以及如何设置服务自启动。 使用Systemd设置自启动服务 创…...
react使用拖拽,缩放组件,采用react-rnd解决 -完整版
屏幕录制2025-03-10 10.16.06 以下代码仅提供左侧可视化区域 右侧数据根据你们的存储数据来 大家直接看Rnd标签设置的属性即可!!!!! /*** 用户拖拽水印的最终位置信息*/ export interface ProductWatermarkValue {wat…...
通过 ElasticSearch的Python API和`curl` 命令获取Elasticsearch 所有索引名称
导言 在大数据管理和实时搜索场景中,Elasticsearch 是一款不可或缺的工具。无论是开发调试、数据维护,还是系统监控,快速列出所有索引名称都是一个高频需求。本文将手把手教你如何通过 Python 客户端连接 Elasticsearch,并用两种方…...
Flutter:StatelessWidget vs StatefulWidget 深度解析
目录 1. 引言 2. StatelessWidget(无状态组件) 2.1 定义与特点 2.2 代码示例 3. StatefulWidget(有状态组件) 3.1 定义与特点 3.2 代码示例 4. StatelessWidget vs StatefulWidget 对比 5. StatefulWidget 生命周期 5.1…...
[密码学实战]Java实现国密TLSv1.3单向认证
一、代码运行结果 1.1 运行环境 1.2 运行结果 1.3 项目架构 二、TLS 协议基础与国密背景 2.1 TLS 协议的核心作用 TLS(Transport Layer Security) 是保障网络通信安全的加密协议,位于 TCP/IP 协议栈的应用层和传输层之间,提供: • 数据机密性:通过对称加密算法(如 AE…...
蓝桥杯省赛真题C++B组2024-握手问题
一、题目 【问题描述】 小蓝组织了一场算法交流会议,总共有 50 人参加了本次会议。在会议上,大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手(且仅有一次)。但有 7 个人,这 7 人彼此之间没有进行握手(但这…...
项目实操分享:一个基于 Flask 的音乐生成系统,能够根据用户指定的参数自动生成 MIDI 音乐并转换为音频文件
在线体验音乐创作:AI Music Creator - AI Music Creator 体验者账号密码admin/admin123 系统架构 1.1 核心组件 MusicGenerator 类 负责音乐生成的核心逻辑 包含 MIDI 生成和音频转换功能 管理音乐参数和音轨生成 FluidSynth 集成 用于 MIDI 到音频的转换 …...
Java开发者如何接入并使用DeepSeek
目录 一、准备工作 二、添加DeepSeek SDK依赖 三、初始化DeepSeek客户端 四、数据上传与查询 五、数据处理与分析 六、实际应用案例 七、总结 【博主推荐】:最近发现了一个超棒的人工智能学习网站,内容通俗易懂,风格风趣幽默ÿ…...
多方安全计算(MPC)电子拍卖系统
目录 一、前言二、多方安全计算(MPC)与电子拍卖系统概述2.1 多方安全计算(MPC)的基本概念2.2 电子拍卖系统背景与需求三、MPC电子拍卖系统设计原理3.1 系统总体架构3.2 电子拍卖中的安全协议3.3 数学与算法证明四、数据加解密模块设计五、GPU加速与系统性能优化六、GUI设计与系…...
【数据库系统概论】第十一章 并发控制
第十一章 并发控制 11.1 并发控制概述(1)丢失修改(2)不可重复读(3)读“脏”数据 11.2 封锁11.2.1 封锁的概念11.2.2 基本封锁类型(1)排它锁/X锁/写锁(2)共享锁…...
C语言_数据结构总结4:不带头结点的单链表
纯C语言代码,不涉及C 0. 结点结构 typedef int ElemType; typedef struct LNode { ElemType data; //数据域 struct LNode* next; //指针域 }LNode, * LinkList; 1. 初始化 不带头结点的初始化,即只需将头指针初始化为NULL即可 void Init…...
用CSS画一条0.5px的线
上次面试前端被问到了这个问题,感觉有点懵懵的,我就回答了一个scaleY(0.5),这个是真的没想到,希望有需要的朋友可以去看看。随便记住一种就行。 1.第一种方式:通过缩放1px的线条实现视觉上的0.5px效果,兼容性较好。 …...
知识库全链路交互逻辑
阶段顺序 URL输入 → 网络连接 → 前端请求 → 后端处理 → 数据库交互 → 数据返回 → 前端渲染 → 连接关闭 阶段1:用户输入URL 用户行为:在浏览器地址栏输入 https://knowledge.com/search?keyword金融趋势 浏览器动作: “浏览器解析U…...
BambuStudio学习笔记:Model
# Model.hpp 核心模型结构说明## 文件概述 该头文件定义了3D打印数据处理的核心数据结构,包含模型对象、体积、实例、材料等关键类。主要功能包括: - 三维模型数据存储与管理 - 模型变换操作(平移/旋转/缩放) - 打印参数配置 - 多…...
Spring (八)AOP-切面编程的使用
目录 实现步骤: 1 导入AOP依赖 2 编写切面Aspect 3 编写通知方法 4 指定切入点表达式 5 测试AOP动态织入 图示: 一 实现步骤: 1 导入AOP依赖 <!-- Spring Boot AOP依赖 --><dependency><groupId>org.springframewor…...
【Go每日一练】构建一个简单的用户信息管理系统
👻创作者:丶重明 👻创作时间:2025年3月7日 👻擅长领域:运维 目录 1.😶🌫️题目:简单的用户信息管理系统2.😶🌫️代码开发3.😶&a…...
PathRAG:通过图剪枝的方法优化Graph-based RAG的性能方法浅析
PathRAG 也是一种新型 Graph-based RAG 方法,通过检索索引图中的关键关系路径,减少噪声并优化 LLM 提示。其核心创新在于基于流的剪枝算法和路径为基础的提示策略,特别适用于捕捉复杂数据集中的关系。(其实可以看做相比GraphRAG假…...
ElementUI 级联选择器el-cascader启用选择任意一级选项,选中后关闭下拉框
1、启用选择任意一级选项 在 el-cascader 标签上加上配置项: :props"{ checkStrictly: true }"例如: <el-cascaderref"selectedArrRef"v-model"selectedArr":options"optionsList":props"{ checkStri…...
【软件逆向】QQ 连连看小游戏去广告与一键消除实现
目录 一、背景介绍 二、去广告实现 2.1 分析广告加载流程 2.2 逆向分析广告加载逻辑 2.3 去广告方案 三、一键消除外挂实现 3.1 分析游戏逻辑 3.2 编写外挂插件 3.3 注入外挂: 四、一键消除效果展示 五、额外扩展 一、背景介绍 QQ 连连看是一款经典的休闲…...
vue el-select 省市区三级联动 vue + element-ui使用第三方插件实现省市区三级联动
vue el-select 省市区三级联动 vue使用第三方插件实现省市区三级联动 网上找了好多教程,都是使用el-cascader级联选择器的省市区选择器,但是几乎没有三个单独的el-select的进行关联的三级省市联动组件效果 第一步:先安装省市区element-ui的插件 npm install element-china-a…...
【GPT入门】第8课 大语言模型的自洽性
【GPT入门】第8课 大语言模型的自洽性 1.自洽性概念2.代码(观察执行结果)3.自洽性核心思想 1.自洽性概念 大模型的自洽性(self - consistency)是指在推理阶段,大模型通过生成多个答案并选择出现频率最高的那个&#x…...
工程化与框架系列(28)--前端国际化实现
前端国际化实现 🌍 引言 前端国际化(i18n)是现代Web应用中的重要组成部分,它能够让应用支持多语言和多地区的用户使用。本文将深入探讨前端国际化的实现方案和最佳实践,包括文本翻译、日期时间格式化、货币处理等方面…...
【阿里云】操作系统控制台操作体验与性能评测全解析
引言 在现代的云计算环境中,操作系统控制台是进行系统管理和运维的重要工具。它不仅帮助用户高效地管理云端资源,还提供了智能助手、系统诊断、性能观测等功能,能够提升操作系统的使用效率,增强用户的操作体验。本文简要介绍了操…...
面试之《IntersectionObserver的使用》
IntersectionObserver 是一个 Web API,用于异步观察目标元素与其祖先元素或顶级文档视口(viewport)交叉状态的变化。这在很多场景下非常有用,比如懒加载图片、实现无限滚动加载更多内容等。下面详细介绍它的使用方法。 基本原理 …...
在 Spring Boot 2.7.x 中引入 Kafka-0.9 的实践
文章目录 在 Spring Boot 2.7.x 中引入 Kafka-0.9 的实践一、下载 Kafka-0.9二、启动 Zookeeper 和 Kafka三、创建 Spring Boot 项目四、引入 kafka 依赖五、移除 Kafka 自动配置六、编写 Kafka 生产者6.1 Kafka配置类6.2 生产者监听类 七、编写Controller发送Kafka八、验证消费…...
【MACOS】用户数据过多
进入下面的路径下找到.Spotlight-V100文件夹 /System/Volumes/Data修改选线 通过终端权限不够 在finder中进行查看然后解锁 然后添加权限 使用代码查看存储数据。 diskutil apfs list...
鸿蒙系统中的持续部署
鸿蒙操作系统,作为一款面向未来的分布式操作系统,旨在为不同的设备提供统一的操作系统平台。它支持多种终端设备,包括但不限于智能手机、平板电脑、智能穿戴设备和物联网(IoT)设备等,并且能够实现跨平台的无…...
centos linux安装mysql8 重置密码 远程连接
1. 下载并安装 MySQL Yum 仓库 从 MySQL 官方网站下载并安装 Yum 仓库配置文件。 # 下载MySQL 8.0的Yum仓库包 wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm # 安装Yum仓库包 sudo rpm -ivh mysql80-community-release-el7-5.noarch.rpm2. 启…...
几种常见的虚拟环境工具(Virtualenv、Conda、System Interpreter、Pipenv、Poetry)的区别和特点总结
在 PyCharm 中创建虚拟环境是一个非常直接的过程,可以帮助你管理项目依赖,确保不同项目之间的依赖不会冲突。 通过 PyCharm 创建虚拟环境 打开 PyCharm 并选择或创建一个项目。 打开项目设置: 在 Windows/Linux 上,可以通过点击…...
VScode:运行程序停止后,频繁出现终端进程被终止
VScode里面powershell被迫关闭 bug场景排查原因解决办法 bug场景 系统:Windows IDE:Visual Studio Code 停止运行程序后,按向上箭头想要执行上一步命令,忽然终端页面强行关闭,并报错如下: 终端进程 &quo…...
PHP框架加载不上.env文件中的变量
以lumen5.5框架为例,根目录中bootstrap文件夹下的app.php文件中 (new Dotenv\Dotenv(__DIR__./../))->load(); 是读取所有.env中的文件的,这个是正常的,但是在代码中的任何位置或者在config目录下的databases.php里,代码如…...
Linux:基本指令与内涵理解
1.文件操作指令 1.1 ls ls指令用于查看指定层级文件夹下的文件或文件夹 基本格式:ls (选项) (查看层级) 其中选项处不写就默认是显示文件名,查看层级默认是当前层级 选项1: -l 作用:将查找文件的详细信息显示出来 我们…...
C++设计模式-抽象工厂模式:从原理、适用场景、使用方法,常见问题和解决方案深度解析
一、模式基本概念 1.1 定义与核心思想 抽象工厂模式(Abstract Factory Pattern)是创建型设计模式的集大成者,它通过提供统一的接口来创建多个相互关联或依赖的对象族,而无需指定具体类。其核心思想体现在两个维度: …...
LINUX系统安装+添加共享目录
一、前言 Windows或mac系统中创建Linux工作环境是基于VMware和SL(Scientific Linux),下面分别安装二者。 二、VMware软件安装及注册 1、双击VMware安装包 2、点击下一步 3、 勾选接受许可,并点击下一步 4、更改路径(建议更改为容易找到的路…...
《UE5_C++多人TPS完整教程》学习笔记34 ——《P35 网络角色(Network Role)》
本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P35 网络角色(Network Role)》 的学习笔记,该系列教学视频为计算机工程师、程序员、游戏开发者、作家(Engineer, Programmer, Game Developer, Author) Stephe…...
成为git砖家(9): rebase进阶: 拆分commit为多个
问题描述 当一次性 git add 了多个修改点, 并且快速的执行了 git commit 后, 你觉得有点懊恼: 明明可以独立为两次或多次 commit, 揉在一块导致历史记录不太清晰。 比如我在 nn1 这个练手项目中, 最近一次 commit&am…...
pytorch retain_grad vs requires_grad
requires_grad大家都挺熟悉的,因此穿插在retain_grad的例子里进行捎带讲解就行。下面看一个代码片段: import torch# 创建一个标量 tensor,并开启梯度计算 x torch.tensor(2.0, requires_gradTrue)# 中间计算:y 依赖于 x&#x…...
Axure常用变量及使用方法详解
点击下载《Axure常用变量及使用方法详解.pdf》 摘要 Axure RP 作为一款领先的前端原型设计工具,提供了全面的 变量 和 函数 系统,以支持复杂的交互设计和动态内容展示。本文将从专业角度详细解析 Axure 中的 全局变量、中继器数据集变量/函数、元件变量…...
为企业级AI交互系统OpenWebUI集成LDAP用户权限认证(2)
为企业级AI交互系统OpenWebUI集成LDAP用户权限认证(2) 本文介绍如何OpenWebUI系统集成LDAP认证服务,及其用户权限及用户组设置。 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录…...
mac 被禁用docker ui后,如何使用lima虚拟机启动docker
本机macos 安装lima brew install lima创建配置 echo "\\ndynamic:\n big-sur:\n image: docker://docker:git\n linux:\n image: docker.io/limasoftware/ubuntu:20.04 \\n" > ~/.lima/default.yaml启动名叫default的虚拟机 limactl start default进…...
C#实现AES-CBC加密工具类(含完整源码及使用教程)
一、AES-CBC加密应用场景 AES(Advanced Encryption Standard)作为全球公认的安全加密标准,广泛使用在以下场景: API通信加密:保护HTTP接口传输的敏感数据(如身份令牌、支付信息)文件安全存储&…...
Unity辅助工具_头部与svn
Unity调用者按钮增加PlaySideButton using QQu; using UnityEditor; using UnityEngine; [InitializeOnLoad] public class PlaySideButton {static PlaySideButton(){UnityEditorToolbar.RightToolbarGUI.Add(OnRightToolbarGUI);UnityEditorToolbar.LeftToolbarGUI.Add(OnLe…...
VBA 数据库同一表的当前行与其他行的主键重复判断实现方案1
目的,判断是否主键重复,不重复则登录新数据,重复则不登录。 定义类型: DataRecord tableName 表名 rowNumber 行号 columnName 列名 data 数据 想要实现的代码逻辑如下: 模拟数据库的登录过程。假设…...
Pytorch系列教程:可视化Pytorch模型训练过程
深度学习和理解训练过程中的学习和进步机制对于优化性能、诊断欠拟合或过拟合等问题至关重要。将训练过程可视化的过程为学习的动态提供了有价值的见解,使我们能够做出合理的决策。训练进度必须可视化的两种方法是:使用Matplotlib和Tensor Board。在本文…...
CSS伸缩盒模型(弹性盒子)
伸缩盒模型(Flexbox,Flexible Box Layout)是 CSS 中一种一维布局模型,用于更高效地处理元素的对齐、分布和响应式布局。其核心思想是让容器内的子元素(称为“项目”)能够灵活地自动调整大小和位置以适应不同…...