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

NAT穿越

概述

  • IPSec协商是通过IKE完成--->ISAKMP协议完成--->UDP封装,源目端口均为500
    • NAT--->NAPT,同时转换IP和端口信息。
    • 对端设备会查验收到的数据报文中的源IP和源端口,其中源IP可以设定为NAT转换后的IP,但是源端口无法更改设定。
    • 不进行端口转换,可以在FW1上使用模板方式
  • 数据流量的传递过程
    • AH协议 --- 校验范围是这个IP层及以上的内容进行HASH校验。
      • 数据报文在进行NAT转换后,最外层的IP层信息发生了改变,而接收方在进行AH协议的完整性校验时,信息对不上,HASH数值被改变----AH报文是无法通过NAT网关
    • ESP协议 --- 进行校验是不包含外层IP信息的。
      • NAT一般会修改IP和端口,而ESP协议会加密传输层信息,导致无法修改端口 --- 同时转换端口的NATESP也不支持
        
        需要在防火墙上开启NAT-T技术 (NAT 穿越功能 ) ESP 报文在封装时,会被封装到 UDP 报文中,并且 源目端口均为 4500。

NAT穿越场景

  • NAT转换后的公网地址未知;使用模板方式
    • 缺陷,总部无法主动连接连接。
  • NAT转换后公网地址可知;总部使用模板或IKE方式。
    • 使用IKE方式也无法主动与分部建立连接。--->因为总部只能写公网地址,不能写私网地址,否则数据无法传输。
    • 如果要实现总部主动与分部建立连接,那么需要在分部的NAT设备上配置NAT Server功能。将私网的VPN服务器地址映射到公网。
  • NAT设备提供了NAT Server功能,总部使用IKE方式主动访问。
    • 在使用端口映射时,需要同时映射IKE协议的UDP500端口,以及NAT-T协议下的UDP 4500口。
    • 并且,如果NAT设备使用的是防火墙,则会产生反向server-map表单。
    • 故分部也可以直接向总部发起访问。

分析:
1 、不能使用 AH 协议
2 、总部作为响应方使用模板方式建立 --- 不需要配置 ACL 规则
3 、分支部署 NAT 后,导致数据报文源 IP 发生变化,因此在采用预共享密钥认证方式下,不能再以 IP 地址来标识设备身份,需要更换身份标识。
4 、如果使用 IKEv1 ,只能采用野蛮模式。

 

1 、基础配置
        
        
        
2 NAT 网关配置 ---esay-ip
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 10.1.2.0 0.0.0.255
[r2]int g 0/0/0
[r2-GigabitEthernet0/0/0]nat outbound 2000
        
        
        
3 、在 FW2 上配置 ACL ,总部上直接通过镜像方式复制
[FW2]acl 3000
[FW2-acl-adv-3000]rule permit ip source 10.1.1.0 0.0.0.255 destination 192.168.1.0        0.0.0.255
        只需要在分部上进行流量抓取,总部直接镜像
        
        
        
4 、配置 IKE 安全提议、 IKE 对等体和 IPSec 安全提议
        
        ------------IKE对等体配置
[FW1]ike local-name fw1 --- 设定本地名称为 fw1
[FW1]ike peer fw2
[FW1-ike-peer-fw2]undo version 2
[FW1-ike-peer-fw2]exchange-mode aggressive --- 选择野蛮模式,因为主模式必须使用 IP 地址
[FW1-ike-peer-fw2]ike-proposal 1
[FW1-ike-peer-fw2]pre-shared-key Test!123
[FW1-ike-peer-fw2]local-id-type fqdn --- 配置对等体 ID 的类型为名称
[FW1-ike-peer-fw2]remote-id fw2 --- 设定对端的身份 ID
[FW1-ike-peer-fw2]nat traversal --- 开启 NAT-T 功能
        FW1作为总部,不需要指定对端的 IP 地址,因为采用的是模板方式
[FW2]ike local-name fw2
[FW2]ike peer fw1
[FW2-ike-peer-fw1]undo version 2
[FW2-ike-peer-fw1]exchange-mode aggressive
[FW2-ike-peer-fw1]ike-proposal 1
[FW2-ike-peer-fw1]pre-shared-key Test!123
[FW2-ike-peer-fw1]local-id-type fqdn --- 配置对等体 ID 的类型为名称
[FW2-ike-peer-fw1]remote-id fw2 --- 设定对端的身份 ID
[FW2-ike-peer-fw1]nat traversal --- 开启 NAT-T 功能
[FW2-ike-peer-fw1]remote-address 11.0.0.1
        分支必须具备对端IP 地址,否则无法找到向谁发送数据报文
        
        
5 IPsec 策略
        
        
6 、安全策略
唯一的变化:如果需要携带协议字段,则需要开放 ESP 协议和 UDP 500 端口,如果存在 NAT 穿越,还需要
开启 UDP 4500 端口。

 

        UDP头部中的端口号为 4500 ,而 IP 头部封装的源 IP 不再是用户 IP 地址,而是 FW2 的出接口 IP 地址。 因为 FW2 上进行了 IPSec 过程。 --- 即,进行 NAT 转换时,抓取的流量应该是 FW2 的出接口地址
        remote-address 命令包含如下含义:
  • 建立IPSec SAIKE SA的对端地址。
  • 用来做身份验证
  • 用来查找预共享密钥

IPSec + GRE VPN

        IPSec将 GRE 隧道和 L2TP 隧道视为受保护的对象。数据报文是先进行 GRE L2TP 封装后,在进行 IPSec 封装

 

        在传输模式中,IPSec 隧道的源目地址就是 GRE 协议封装的地址信息
        在隧道模式中,封装后的消息,存在三个报文头部的:原始头部、GRE 头部、 IPSec 头部。而在Internet上传输时,查看的是最外层的 IPSec 报文头部信息来转发。

IPSec + L2TP VPN

LACLNS之间直接建立隧道

安全策略:
  • L2TP策略
    • LAC上,local--->untrust
    • LNS上,untrust--->local
  • IPSec策略
    • localuntrust
  • 用户流量策略
    • 分部访问总部
      • LAC--->因为分支流量会被直接封装在L2TP中,不需要额外策略,因为VT接口不参与数据转发
      • LNS--->因为总部收到流量后,会在VT接口解封装L2TP协议,还原流量
        • VT--->Trust
    • 总部访问分部
      • LAC--->不需要额外编写安全策略
      • LNS--->流量需要先来到VT接口进行L2TP封装,所以Trust---VT接口。

移动用户通过L2TP over IPsec接入

移动用户通过L2TP over IPsec接入

安全策略:
  • IPSec流量
    • U--L;必须放通4500端口
  • L2TP流量
    • U---L;放通l2tp协议,目的地址为VT接口地址。
  • 用户流量
    • 假设VT接口在DMZ区域
    • DMZTrust区域的流量。

相关文章:

NAT穿越

概述 IPSec协商是通过IKE完成--->ISAKMP协议完成--->由UDP封装,源目端口均为500。 NAT--->NAPT,同时转换IP和端口信息。 对端设备会查验收到的数据报文中的源IP和源端口,其中源IP可以设定为NAT转换后的IP,但是源端口无法…...

不黑文化艺术学社首席艺术家孙溟㠭浅析“雪渔派”

孙溟㠭浅析“雪渔派” 何震 字主臣 ,长卿,号雪渔,安徽婺源(今江西)人,是明代著名的篆刻家和书法家,与文彭独树一帜,实现书法与刀法的统一。 云中白鹤 笑谭间气吐霓虹 边款 其篆刻吸…...

【Linux操作系统】第一弹——Linux基础篇

文章目录 💡 一. Linux的基本常识🪔 1.1 linux网络连接三种方式🪔1.2 虚拟机的克隆🪔1.3 虚拟机的快照🪔1.4 虚拟机的迁移和删除🪔1.5 vmtools工具 💡二. Linux的目录结构🪔2.1 Linu…...

“ES7+ React/Redux/React-Native snippets“常用快捷前缀

请注意,这是一个常用的列表,不是扩展提供的所有前缀。最完整和最新的列表请参考扩展的官方文档或在 VS Code 中查看扩展的详情页面。 React (通常用于 .js, .jsx, .ts, .tsx): rfce: React Functional Component with Export Defaultrafce: React Arro…...

selenium替代----playwright

安装 好处特点:这个东西不像selenium需要固定版本的驱动 pip config set global.index-url https://mirrors.aliyun.com/pypi/simplepip install --upgrade pippip install playwright playwright installplaywright install ffmpeg (处理音视频的)验证&#x…...

2025年社交APP安全防御指南:抵御DDoS与CC攻击的实战策略

2025年,社交APP的用户规模与业务复杂度持续增长,但随之而来的DDoS与CC攻击也愈发隐蔽和智能化。攻击者通过AI伪造用户行为、劫持物联网设备,甚至利用区块链漏洞发起混合攻击,对平台稳定性与用户数据安全构成严峻挑战。本文将结合最…...

PHP会话技术

第十六章-PHP会话技术 PHP会话技术是构建动态、个性化Web应用的核心机制之一,它通过跟踪用户在网站上的连续操作状态,实现了网页间的数据持久化交互。无论是电商平台的购物车信息保存、社交媒体的用户登录状态维持,还是表单数据的跨页面传递…...

QT聊天项目DAY10

1.封装redis操作类 头文件 #ifndef REDISMANAGE_H #define REDISMANAGE_H#include "Singletion.h" #include "GlobalHead.h"class RedisManage : public Singletion<RedisManage> {friend class Singletion<RedisManage>; public:~RedisMana…...

5.0.5 变换(旋转、缩放、扭曲)

WPF变换可以产生特殊效果,如平移、旋转、扭曲。 变换类 描述TranslateTransform沿着X轴和Y轴平移ScaleTransform 沿着定义的中心点缩放RotateTransform沿着定义的中心点旋转SkewTransform 扭曲元素MatrixTransfrom提供3x3矩阵,用于定义一个自定义变换 1…...

matlab转python

1 matlab2python开源程序 https://blog.csdn.net/qq_43426078/article/details/123384265 2 网址 转换网址&#xff1a;https://app.codeconvert.ai/code-converter?inputLangMatlab&outputLangPython 文件比较网址&#xff1a;https://www.diffchecker.com/text-comp…...

什么是直播美颜SDK?跨平台安卓、iOS美颜SDK开发实战详解

时下&#xff0c;尤其在社交、娱乐、电商等应用场景中&#xff0c;一个流畅且效果自然的美颜功能往往能直接影响用户的留存率和平台的营收。要实现这些效果&#xff0c;美颜SDK是核心工具。那么&#xff0c;什么是直播美颜SDK&#xff1f;它的功能有哪些&#xff1f;如何进行跨…...

大尺寸PCB如何重塑通信与新能源产业格局

在5G通信基站与新能源电站的机房内&#xff0c;一块块面积超过600mm600mm的PCB板正悄然推动着技术革命。作为电子设备的核心载体&#xff0c;大尺寸PCB凭借其高密度集成与复杂工艺&#xff0c;成为通信、能源等领域的“隐形功臣”。以猎板PCB为代表的厂商&#xff0c;凭借宽幅曝…...

JavaSE核心知识点02面向对象编程02-04(包和导入)

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 JavaSE核心知识点02面向对象编程02-04&#…...

【漫话机器学习系列】249.Word2Vec自然语言训练模型

【自然语言处理】用 Word2Vec 将词语映射到向量空间详解 一、背景介绍 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;我们常常需要将文本信息转化为机器能够理解和处理的形式。传统的方法&#xff0c;如 one-hot编码&#xff0c;虽然简单&#xff0c;但存在严重…...

CSS transition过渡属性

transition 是 CSS 中用于创建平滑动画效果的属性&#xff0c;它允许元素在两个状态之间平滑过渡&#xff0c;而不是立即改变。通过定义过渡的属性、持续时间和速度曲线&#xff0c;你可以实现丰富的交互体验&#xff0c;如悬停效果、状态切换动画等。 核心作用 平滑过渡&…...

U9C对接飞书审批流完整过程

U9C虽然很强大&#xff0c;但是移动办公和审批流功能并不好用&#xff0c;为了弥补U9C这种不足&#xff0c;很多的企业在使用U9C的同时再开通钉钉、飞书、企业微信这种OA管理系统&#xff0c;两套系统并行使用&#xff0c;就需要考虑U9C和OA系统数据同步的问题&#xff0c;最简…...

阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化

作者&#xff1a;裘文成&#xff08;翊韬&#xff09; 摘要 随着企业全球化业务的扩展&#xff0c;如何高效、经济且可靠地将分布在海外各地的应用与基础设施日志统一采集至阿里云日志服务 (SLS) 进行分析与监控&#xff0c;已成为关键挑战。 本文聚焦于阿里云高性能日志采集…...

从0开始学习大模型--Day04--大模型的框架以及基本元素

Agent框架与策略分析 计划与执行&#xff08;planning-and-Execute&#xff09; 该框架侧重于先规划一系列的行动&#xff0c;然后执行。这个框架可以使大模型能够先综合考虑任务的多个方面&#xff0c;然后按照计划进行行动&#xff0c;比较适合应用在较复杂的项目管理中或者…...

FPGA实战项目2———多协议通信控制器

1. 多协议通信控制器模块 (multi_protocol_controller) 简要介绍 这是整个设计的顶层模块,承担着整合各个子模块的重要任务,是整个系统的核心枢纽。它负责协调 UART、SPI、I2C 等不同通信协议模块以及 DMA 模块的工作,同时处理不同时钟域之间的信号交互,确保各个模块能够…...

strings.Builder 使用详解

目录 1. 官方包 2. 支持版本 3. 官方说明 官方示例 方法 func (b *Builder) Cap() int func (b *Builder) Grow(n int) func (b *Builder) Len() int func (b *Builder) Reset() func (b *Builder) String() string func (b *Builder) Write(p []byte) (int, error)…...

数巅智能携手北京昇腾创新中心深耕行业大模型应用

当前&#xff0c;AI技术正在加速向各行业深度渗透,成为驱动产业转型和社会经济发展的重要引擎。构建开放协作的AI应用生态体系、推动技术和应用深度融合&#xff0c;已成为行业发展的重要趋势。 近日&#xff0c;数巅智能与北京昇腾人工智能计算中心&#xff08;北京昇腾创新中…...

【嵌入式系统设计师(软考中级)】第二章:嵌入式系统硬件基础知识——⑤电源及电路设计

文章目录 7. 嵌入式系统电源分类及管理7.1 嵌入式系统电源分类7.2 电源管理技术7.3 电源完整性设计 8. 电子电路设计8.1 电子电路设计基础知识8.1.1 电子电路设计原理8.1.2 电子电路设计方法及步骤8.1.3 电子电路可靠性设计 8.2 PCB设计基础知识8.2.1 PCB设计原理8.2.2 PCB设计…...

排序算法-希尔排序

希尔排序是插入排序的改进版&#xff0c;通过将原始数组分成多个子序列进行间隔插入排序&#xff0c;逐步缩小间隔直至为1&#xff0c;最终完成整体排序。它也被称为缩小增量排序。 希尔排序步骤 选择增量序列&#xff08;Gap Sequence&#xff09;&#xff1a;确定一个递减的…...

JAVA继承中变量和方法的存储和方法中访问变量的顺序

一、变量归属与内存位置 static 变量&#xff1a;属于类&#xff0c;只存在一份&#xff0c;保存在方法区&#xff08;或元空间&#xff09;。 实例变量&#xff08;非static&#xff09;&#xff1a;属于对象&#xff0c;每个对象单独一份&#xff0c;保存在堆内存中。 二、…...

【PhysUnits】3.3 SI 基础量纲单位(units/base.rs)

一、源码 这段代码定义了一系列基础物理量纲的类型别名&#xff0c;并使用标记 trait Canonical 来表示它们是国际单位制&#xff08;SI&#xff09;中的基本单位。 use crate::Dimension; use typenum::{P1, Z0};/// 标记特质&#xff0c;表示基础量纲单位 pub trait Canoni…...

stm32F103芯片 实现PID算法控制温度例程

目录 硬件需求 软件需求 步骤 1. 配置STM32CubeMX 2. 编写PID控制代码 3. 编译和烧录 4. 测试 注意事项 要在STM32F103芯片上实现PID算法控制温度,首先需要确保你有一套完整的硬件和软件开发环境。这里,我将给你一个简化的例程,展示如何使用PID控制算法来调节一个假…...

Java学习手册:微服务设计原则

一、单一职责原则 每个微服务应该专注于一个特定的业务功能&#xff0c;具有清晰的职责边界。这有助于保持服务的简洁性&#xff0c;降低服务之间的耦合度&#xff0c;提高服务的可维护性和可扩展性。例如&#xff0c;可以将用户管理、订单管理、支付管理等功能分别设计为独立…...

【挑战项目】 --- 微服务编程测评系统(在线OJ系统)(二)

三十二、Swagger介绍&使用 官网:https://swagger.io/ 什么是swagger Swagger是一个接口文档生成工具,它可以帮助开发者自动生成接口文档。当项目的接口发生变更时,Swagger可以实时更新文档,确保文档的准确性和时效性。Swagger还内置了测试功能,开发者可以直接在文档中…...

Unity背景随着文字变化而变化

组件结构&#xff1a; 背景&#xff08;父&#xff09;需要添加如下两个组件 根据具体情况选择第一个组件水平还是垂直&#xff0c;一般垂直用的比较多 效果展示&#xff1a; 此时在文本框中改变内容背景图都会随着变化&#xff0c;动态的...

Elasticsearch内存管理与JVM优化:原理剖析与最佳实践

#作者&#xff1a;孙德新 文章目录 一、Elasticsearch缓存分类1、Node Query Cache&#xff1a;2、Shard Request Cache&#xff1a;3、Fielddata Cache&#xff1a; 三、内存常见的问题案例一案例二案例三案例四 四、内参分配最佳实践1、jvm heap分配2、将机器上少于一半的内…...

快速开发-基于Gin框架搭建web应用

一、概述 Go 语言的 Gin 框架是一个用 Go (Golang) 编写的 Web 框架&#xff0c;它旨在提供一种快速、简洁且高效的方式来构建 Web 应用程序。Gin 框架以其高性能和易用性而闻名&#xff0c;非常适合构建 API 服务、Web 服务和其他需要高性能的 Web 应用。 二、Gin框架…...

【RAG】RAG系统——langchain 的用法(说人话版与专业版)

说人话版&#xff1a; RAG就是一句话&#xff1a;对数据设置索引&#xff0c;用问题去检索&#xff0c;用llm生成回答 首先&#xff0c;做本地知识库 注意: py 3.10以上 配置环境变量&#xff0c;安装库 load外部数据&#xff0c;存储到本地的一个index里&#xff08;这是最…...

pycharm无法直接识别wsl

原因是我的2020 无法支持这个版本的wsl 我就换成2024版 添加中可以看到 on wsl 如果你想切到自己创建的虚拟环境 你在下面这个界面选择conda就好 这样就可以切换成你想要的环境了...

数据结构每日一题day17(链表)★★★★★

题目描述&#xff1a;假设有两个按元素值递增次排列的线性表&#xff0c;均以单链表形式存储。请编与算法将这两个单链表归并为一个按元素值依次递减排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。 算法思想&#xff1a; 1.初始化&#xff1a; 创建一个新…...

遗传算法(GA)

基本原理 算法介绍 遗传算法&#xff08;Genetic Algorithm&#xff0c;简称GA&#xff09;是一种基于自然选择和遗传学原理的搜索和优化技术。它模拟了生物进化过程&#xff0c;通过选择、交叉&#xff08;重组&#xff09;和变异等操作&#xff0c;逐步优化问题的解。 遗传…...

EPS三维测图软件

EPS三维测图软件EPS2016...

设计模式-命令模式

写在前面 Hello&#xff0c;我是易元&#xff0c;这篇文章是我学习设计模式时的笔记和心得体会。如果其中有错误&#xff0c;欢迎大家留言指正&#xff01; 一、什么是命令模式&#xff1f; 命令模式是行为模式中的一种&#xff0c;通过将请求封装成对象&#xff0c;使开发者可…...

深入理解主从数据库架构与主从复制

目录 前言1. 主从数据库概述1.1 什么是主从数据库&#xff1f;1.2 主从数据库的应用场景 2. 主从数据库的工作原理2.1 主从数据库的读写分离2.2 数据同步机制2.3 异步与同步复制模式 3. 主从复制的实现步骤3.1 配置主库3.2 配置从库 4. 主从数据库架构的优缺点4.1 优点4.2 缺点…...

【C】初阶数据结构15 -- 计数排序与稳定性分析

本文主要讲解七大排序算法之外的另一种排序算法 -- 计数排序 目录 1 计数排序 1&#xff09; 算法思想 2&#xff09; 代码 3&#xff09; 时间复杂度与空间复杂度分析 &#xff08;1&#xff09; 时间复杂度 &#xff08;2&#xff09; 空间复杂度 4&#xff09; 计…...

@PostConstruct @PreDestroy

PostConstruct 是 Java EE&#xff08;现 Jakarta EE&#xff09;中的一个注解&#xff0c;用于标记一个方法在对象初始化完成后立即执行。它在 Spring 框架、Java Web 应用等场景中广泛使用&#xff0c;主要用于资源初始化、依赖注入完成后的配置等操作。 1. 基本作用 执行时…...

2025数维杯数学建模A题完整限量论文:空中芭蕾——蹦床运动的力学行为分析

2025数维杯数学建模A题完整限量论文&#xff1a;空中芭蕾——蹦床运动的力学行为分析 &#xff0c;先到先得 A题完整论文https://www.jdmm.cc/file/2712067/ 蹦床&#xff08; Trampoline &#xff09;是一项运动员利用蹦床的反弹&#xff0c;在空中展示技能 技巧的竞技运动&…...

Kubernetes Gateway API 部署详解:从入门到实战

引言 在 Kubernetes 中管理网络流量一直是一个复杂而关键的任务。传统的 Ingress API 虽然广泛使用,但其功能有限且扩展性不足。Kubernetes Gateway API 作为新一代标准,提供了更强大的路由控制能力,支持多协议、跨命名空间路由和细粒度的流量管理。本文将带你从零开始部署…...

移动设备常用电子屏幕类型对比

概述 LCD 家族 &#xff08;TN、STN、TFT、IPS、VA&#xff09;依赖背光&#xff0c;性能差异主要来自液晶排列和驱动方式。OLED 以自发光为核心优势&#xff0c;但成本与寿命限制其普及。E-Paper 专为低功耗静态显示设计&#xff0c;与传统屏幕技术差异显著。 参数LCD&#…...

HarmonyOS开发-组件市场

1. HarmonyOS开发-组件市场 HarmonyOS NEXT开源组件市场是一个独立的插件&#xff0c;需通过DevEco Studio进行安装&#xff0c;可以点击下载&#xff0c;无需解压&#xff0c;直接通过zip进行安装&#xff0c;具体安装和使用方法可参考HarmonyOsNEXT组件市场使用说明。Harmony…...

效果图云渲染:价格、优势与使用技巧

对于做3D设计来说&#xff0c;渲染效果图会占用设计电脑的资源&#xff0c;如果能免去这个环节就好了。用设计电脑渲不仅拖慢电脑速度&#xff0c;遇到紧急情况无法快速渲染出来还可能耽误进度。而云渲染的出现&#xff0c;正是针对这个点——渲的快&#xff0c;价格便宜&#…...

OptiStruct实例:声振耦合超单元应用

如图10-11所示&#xff0c;本例采用一个简化的整车模型&#xff0c;模型分为车身&#xff08;含声腔&#xff09;与底盘两部分。首先分别运用CMS与CDS方法对车身&#xff08;含声腔&#xff09;模型进行缩聚&#xff0c;生成.h3d格式的CMS超单元和cps超单元&#xff0c;然后进行…...

排序算法-插入排序

插入排序是一种简单直观的排序算法&#xff0c;其核心思想是将未排序部分的元素逐个插入到已排序部分的正确位置&#xff0c;类似于整理扑克牌。 插入排序步骤 初始化&#xff1a;将序列的第一个元素视为已排序部分&#xff0c;其余为未排序部分。 选择元素&#xff1a;从未排…...

Uniapp Android/IOS 获取手机通讯录

介绍 最近忙着开发支付宝小程序和app&#xff0c;下面给大家介绍一下 app 获取通讯录的全部过程吧&#xff0c;也是这也是我app开发中的一项需求吧。 效果图如下 勾选配置文件 使用uniapp开发的童鞋都知道有一个配置文件 manifest.json 简单的说一下&#xff0c;就是安卓/ios/…...

【RAG】index环节中 关于嵌入模型和 ColBERT

1. 什么是嵌入模型&#xff1f;是不是把数据源转换为向量表示的模型&#xff1f; 是的&#xff0c;嵌入模型&#xff08;Embedding Model&#xff09;的核心功能就是将各种类型的数据&#xff08;例如&#xff0c;文本、图像、音频等&#xff09;转换成低维、稠密的向量表示。…...

一文掌握 LVGL 9 的源码目录结构

文章目录 &#x1f4c2; 一文掌握 LVGL 9 的源码目录结构&#x1f9ed; 顶层目录概览&#x1f4c1; 1. src/ — LVGL 的核心源码&#xff08;&#x1f525;重点&#xff09;&#x1f4c1; 2. examples/ — API 示例&#x1f4c1; 3. demos/ — 综合演示项目&#x1f4c1; 4. do…...