Snort的配置与使用

 声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章

感谢泷羽sec 团队的教学
视频地址:蓝队基础之网络七层杀伤链_哔哩哔哩_bilibili

目录

一、什么是Snort

Snort的主要功能包括:

Snort的工作原理:

Snort的应用场景:

二、如何配置Snort

(一)安装依赖包

(二)安装和配置Snort

(三)示例规则

(四)测试Snort配置

(五)启动和监控Snort

三、如何使用Snort

(一)文件管理概述

(二)各字段详细描述

1.alert

含义:

示例用法:

2.icmp

含义:

示例用法:

3.any

含义

示例用法:

4.< >(方向运算符)

含义:

示例用法:

5.$HOME_NET

含义:

示例用法:

6.any(指定要检测的目标端口)

含义:

示例用法:

7.msg

含义:

示例用法:

8.sid

含义:

示例用法:

9.rev

含义:

示例用法:

10.classtype

含义:

示例用法:

四、本地账号与 Snort 条件子句

(一)概述

(二)具体 Snort 条件子句示例及解释

1.检查失败的 telnet 登录尝试

规则语句:

详细解释:

协议及源目标设定:

告警信息及分类相关:

(三)外部规则集

(四)In Line 部署及阻断操作

In-Line部署

阻断操作

应用场景

配置示例


一、什么是Snort

Snort是一个开源的网络入侵检测系统(NIDS)和入侵防御系统(IDS/IPS),由Martin Roesch于1998年创建,并在2000年发布了第一个版本。Snort被广泛用于实时检测和预防各种网络攻击,包括但不限于缓冲区溢出攻击、端口扫描、木马、蠕虫等恶意活动。

Snort的主要功能包括:

  1. 网络监控

    • 实时监控网络流量,检测潜在的恶意活动。
  2. 入侵检测

    • 通过预定义的规则集(称为签名)来识别和响应各种攻击。
  3. 数据包记录

    • 记录网络流量数据包,用于后续分析和取证。
  4. 警报和日志

    • 生成警报和日志,帮助安全分析师了解网络事件。
  5. 流量分析

    • 提供流量分析功能,帮助识别异常流量模式。
  6. 规则自定义

    • 用户可以自定义规则,以适应特定的网络环境和安全需求。
  7. 性能优化

    • 支持多种优化技术,如预处理模块和检测引擎优化,以提高性能。

Snort的工作原理:

  • 规则引擎

    • Snort使用规则引擎来分析网络流量。规则定义了Snort应如何检测特定的网络行为。
    • 规则可以指定要检测的协议、端口、数据包内容等。
  • 检测方法

    • Snort可以执行多种检测方法,包括模式匹配、异常检测、应用层检测等。
  • 响应机制

    • Snort可以配置为仅检测并报告可疑活动(IDS模式),或者主动阻止恶意流量(IPS模式)。

Snort的应用场景:

  • 企业网络
    • 保护企业网络免受外部和内部威胁。
  • 网络安全研究
    • 作为研究工具,帮助研究人员分析和理解网络攻击。
  • 教育和培训
    • 用于网络安全教育和培训,帮助学生和专业人员学习网络攻击和防御技术。

Snort因其灵活性、强大的检测能力和开源特性而受到广泛欢迎,是网络安全领域的重要工具之一。随着网络威胁的不断演变,Snort也在不断更新和改进,以应对新的挑战。

二、如何配置Snort

在安装和配置网络安全工具如Snort时,确保系统具备必要的依赖包和库是非常重要的。以下是安装Snort及其依赖项的步骤,以及如何配置Snort以发出警报的示例:

(一)安装依赖包

  1. DAQ数据采集库

    • DAQ(Data Acquisition Toolkit)是一个用于网络数据包捕获的库,Snort使用它来捕获网络流量。

    • 在基于Debian的系统上,可以使用以下命令安装DAQ:

      sudo apt-get update
      sudo apt-get install libdaq1 libdaq-dev
  2. 内存分配器

    • Snort需要一个内存分配器来管理内存使用。通常,DAQ库已经包含了所需的内存分配器。

(二)安装和配置Snort

  1. 安装Snort

    • 可以从Snort的官方网站下载最新版本的Snort,或者使用包管理器安装。

    • 在基于Debian的系统上,可以使用以下命令安装Snort:

      sudo apt-get install snort
  2. 配置Snort

    • Snort的配置文件通常位于/etc/snort/snort.conf
    • 需要根据网络环境和安全需求自定义配置文件。
  3. 自定义规则

    • Snort规则定义了Snort应如何检测网络流量中的异常或恶意行为。
    • 创建或修改规则文件,例如/etc/snort/rules/local.rules,并添加自定义规则。

(三)示例规则

以下是一个示例Snort规则,用于对发往特定网络($HOME_NET)的任何ICMP流量发出警报:

alert icmp any any -> $HOME_NET any (msg:"Test Ping Event"; sid:1000001; rev:1; classtype:icmp-event;)
  • 字段解释
    • alert:指示这是一个警报规则。
    • icmp:指定协议为ICMP。
    • any any -> $HOME_NET any:源可以是任何IP和端口,目标是定义在配置文件中的$HOME_NET网络的任何端口。
    • msg:定义警报消息。
    • sid:规则的唯一标识符。
    • rev:规则的修订号。
    • classtype:分类警报类型。

(四)测试Snort配置

在应用新规则或配置更改后,应测试Snort配置以确保其正确无误:

snort -T -c /etc/snort/snort.conf
  • -T:测试模式,检查配置文件和规则。
  • -c:指定配置文件路径。

(五)启动和监控Snort

  • 启动Snort

    • 可以使用系统服务管理器启动Snort,例如使用systemctl

      sudo systemctl start snort
      sudo systemctl enable snort
  • 监控日志

    • Snort通常将警报和日志记录到指定的日志文件中,可以通过查看这些日志来监控网络活动。

通过这些步骤,可以成功安装、配置和测试Snort,以保护网络免受各种威胁。确保定期更新Snort规则和配置,以应对新的安全威胁。

三、如何使用Snort

(一)文件管理概述

在涉及网络安全监控工具(如 Snort)的文件管理中,有一系列重要的字段用于定义规则,这些规则能够帮助准确地检测和处理网络中的各类活动,并以特定方式进行告警等操作。

(二)各字段详细描述

1.alert

含义:

    该字段明确告诉 Snort 此规则是一个告警规则。当网络流量符合此规则所设定的条件时,Snort 会发出相应的告警信息,以便管理员及时知晓可能存在的异常活动。

示例用法:

    在规则配置文件中,如 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) ,“alert” 开头就表明这是一个用于产生告警的规则。

2.icmp

含义:

    用于指定要标记活动的流量类型。除了 ICMP(Internet Control Message Protocol,互联网控制报文协议)之外,还可以是 TCP(Transmission Control Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据报协议)等其他常见的网络协议。通过指定具体的协议类型,能够精准地针对特定协议的流量进行监控和规则应用。

示例用法:

    在规则 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,“icmp” 明确了此规则是针对 ICMP 协议的流量进行相关操作。

3.any

含义

    当用于指定源 IP 地址或 CIDC(无类别域间路由,Classless Inter-Domain Routing)时,“any” 表示任何地址。这意味着规则将对来自任何源 IP 地址的流量进行检测,不局限于特定的 IP 范围,从而实现对广泛来源的流量监控。

示例用法:

    在规则 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,第一个any指定源IP地址可以是任何地址,第二个any指定源端口可以是任何端口。这种宽泛的指定方式有助于全面捕捉可能存在问题的流量情况,不过在某些特定需求下,也可以根据实际情况将其替换为具体的端口号以实现更精准的监控。

4.< >(方向运算符)

含义:

    方向运算符 “<>” 用于指定流量方向。它标识 IP 和端口同时作为来源和目的,明确了流量是从哪里来以及要到哪里去的路径关系。通过这种方式,可以准确地界定规则所适用的流量流向情况,以便更精准地检测符合特定流向要求的流量活动。

示例用法:

    在规则 alert icmp any any ->$HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,“->” 就是方向运算符,表明流量是从由前面 “any any” 所指定的源(任何源 IP 地址和任何源端口)流向由 “HOME_NET any” 所指定的目标(配置文件中指定的本地网络的任何目标 IP 地址和任何目标端口)。

5.$HOME_NET

含义:

    在 Snort 的配置文件中指定的本地网络。它可以通过具体的 IP 地址范围来表示,通常采用 CIDR 格式(如 192.168.0.0/16)。此外,也可以使用多个 CIDR 来更精准地界定本地网络的范围,以便根据实际需求对本地网络内的流量进行全面且精准的监控。

示例用法:

    在规则alert icmp any any ->$

HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,“$HOME_NET” 就是指代在配置文件中已经定义好的本地网络范围,具体值需根据配置文件的设置来确定。

6.any(指定要检测的目标端口)

含义:

    用于指定要检测的目标端口,同样表示任何端口。这使得规则能够对流向本地网络(由 “$HOME_NET” 指定)的任何目标端口的流量进行检测,与前面指定源端口的 “any” 配合,实现对流量在端口层面的全面监控。

示例用法:

    在规则 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,最后一个 “any” 就是指定要检测的目标端口为任何端口。

7.msg

含义:

    报警名字段。用于给当网络流量符合规则时所发出的告警赋予一个特定的名称,以便管理员在查看告警信息时能够快速识别告警的大致内容和相关活动类型。这个名称应该具有一定的描述性,能够直观地反映出告警所对应的网络活动情况。

示例用法:

    在规则 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,“msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event)” 里的 “Test Ping Event” 就是报警名字段所设定的具体名称,用于标识此次告警与测试 Ping 事件相关。

8.sid

含义:

    签名 ID 字段。它用于给每个规则赋予一个唯一的标识编号,取值范围通常有一定要求,一般来说,自定义报警必须大于等于 100000 且唯一。这个编号在 Snort 的规则管理和识别中起着重要作用,便于对不同规则进行区分、查询和管理。

示例用法:

    在规则 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,“sid:1000001” 就是指定的签名 ID 字段的值,表明此规则的签名 ID 为 1000001。

9.rev

含义:

    规则更新时,作为版本号跟踪。当对规则进行修改、完善或更新等操作时,可以通过更新 “rev” 字段的值来记录规则的版本变化情况,以便在后续的规则管理和维护中能够清楚地了解到每条规则的演进历程,对于排查问题、分析规则效果等方面都具有重要意义。

示例用法:

    在规则 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,“rev:1” 就是指定的规则更新时的版本号,表明此规则当前的版本为 1。

10.classtype

含义:

    Snort 有一个默认类型列表,可以帮助分类告警,便于搜索特定类型的活动。通过将规则的告警归类到不同的类型中,能够更高效地对大量告警信息进行筛选、分析和处理,使得管理员可以根据特定类型的活动快速定位和处理相关告警,提高网络安全监控和管理的效率。

示例用法:

    在规则 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,“classtype:icmp-event” 就是指定将此次告警归类到 “icmp-event” 这种类型中,以便后续根据该类型进行相关操作。

通过对这些字段的准确理解和合理运用,能够在 Snort 等网络安全监控工具的文件管理中,更加精准地定义规则,实现对网络活动的有效监控和管理。

四、本地账号与 Snort 条件子句

(一)概述

在网络安全监控领域,特别是涉及到本地账号相关活动的监控时,Snort 作为一款常用的网络入侵检测系统(NIDS),可通过设置特定的条件子句来检测各种异常情况。当满足或不满足这些设定的条件时,相应的触发子句就会被执行,从而实现对潜在安全威胁的告警或其他处理操作。

(二)具体 Snort 条件子句示例及解释

1.检查失败的 telnet 登录尝试
规则语句:

    alert tcp $HOME_NET 23 -> any any (msg:"Failed login attempt"; content:"Login incorrect"; sid:1000002; rev:1; classtype:attempted-user;)

详细解释:
协议及源目标设定:

alert tcp:表明这是一个针对 TCP 协议的告警规则。Snort 会对符合后续条件的 TCP 协议流量进行监测并在满足条件时发出告警。

$HOME_NET 23:这里指定了源网络,$$HOME_NET 通常是在 Snort 配置文件中定义好的本地网络范围(如以 CIDR 格式表示的某个 IP 地址段),23 是 Telnet 服务所使用的端口号。这表示规则关注的是从本地网络的 Telnet 端口发出的流量。

-> any any:方向运算符,表明流量是从前面指定的源(本地网络的 Telnet 端口)流向任何目标 IP 地址和任何目标端口。

告警信息及分类相关:

msg:"Failed login attempt":msg 字段用于设置告警名字,在此处将告警命名为 “Failed login attempt”,以便管理员在查看告警信息时能快速了解到该告警与 Telnet 登录失败尝试相关。

content:"Login incorrect":content 字段用于指定在监测的流量中要查找的特定内容。在这里,当 Snort 在 TCP 流量中检测到包含 “Login incorrect” 这个字符串时,就会认为可能发生了 Telnet 登录失败的情况。

sid:1000002:sid 是签名 ID 字段,给这条规则赋予了一个唯一的标识编号 1000002。按照规定,自定义报警的sid 值通常要大于等于 100000 且唯一,方便在众多规则中对该规则进行区分和管理。

rev:1:rev 字段在规则更新时作为版本号跟踪。这里设置为 1,表示该规则当前的版本是 1,当后续对该规则进行修改等操作时,可以更新这个版本号来记录规则的演进历程。

classtype:attempted-user;:classttype 字段利用 Snort 的默认类型列表对告警进行分类,将此次告警归类到 “attempted-user” 类型中,便于后续搜索特定类型的活动,比如管理员可以通过查找 “attempted-user” 类型的告警来集中查看所有与用户登录尝试相关的情况。

(三)外部规则集

相关网址:

Enterprise Cybersecurity Solutions, Services & Training | Proofpoint US

    这是一个可能提供与网络安全相关规则或其他资源的网址,也许可以从这里获取到一些补充的规则内容、安全建议等信息,用于进一步完善对网络活动的监控和安全防护。

https://rules.emergingthreats.netopen/

    同样是一个与网络安全规则相关的网址,可能提供各种新兴威胁相关的规则集,通过参考这些外部规则集,可以拓宽 Snort 的检测范围,使其能够应对更多种类的潜在安全威胁。

(四)In Line 部署及阻断操作

In-Line部署和阻断操作是Snort等网络安全工具的关键功能,它们提供了更主动的防御措施,帮助保护网络免受恶意流量的侵害。

In-Line部署

In-Line部署模式允许Snort直接插入到网络流量路径中,这意味着Snort可以直接处理经过网络接口的流量,而不仅仅是被动地监控流量。这种部署方式使得Snort能够:

  • 实时检测和响应:对经过网络接口的流量进行实时检测,并在检测到异常或恶意流量时立即采取措施。
  • 主动防御:通过主动阻断恶意流量,防止攻击者进一步渗透网络。
阻断操作

Snort提供了多种阻断操作,用于处理检测到的恶意流量:

  1. D drop

    • 当Snort检测到符合特定阻断规则的流量时,会直接丢弃该流量,阻止其在网络中继续传播。
    • 这种方法适用于需要立即阻止恶意流量的场景。
  2. sdrop

    • 类似于D drop,sdrop也是一种阻断方式,但可能在实现细节上有所不同,具体取决于配置和环境。
    • 通常用于特定场景下的流量阻断。
  3. reject

    • 这种方式不仅会阻断特定流量的传输,还会向发送该流量的源端发送一个拒绝响应。
    • 这种方法可以向攻击者明确表示其流量已被拒绝,有助于维护网络秩序并提示用户进行相应的修正。
应用场景
  • 入侵防御:在检测到潜在的攻击或恶意流量时,立即采取措施阻止其进入网络。
  • 合规性要求:满足某些行业或法规要求,如PCI DSS,需要对网络流量进行实时监控和响应。
  • 网络维护:在维护期间,通过阻断操作防止不必要的流量干扰维护工作。
配置示例

以下是一个简单的Snort配置示例,展示了如何配置In-Line部署和阻断操作:

var HOME_NET 192.168.1.0/24
var EXTERNAL_NET any

alert tcp $EXTERNAL_NET any -> $HOME_NET 23 (msg:"Failed login attempt"; content:"Login incorrect"; sid:1000002; rev:1; classtype:attempted-user;)
drop tcp $EXTERNAL_NET any -> $HOME_NET 23 (msg:"Drop failed login attempts"; content:"Login incorrect"; sid:1000003; rev:1; classtype:attempted-user;)

在这个示例中:

  • 第一条规则是一个告警规则,用于检测来自外部网络到本地网络23端口(Telnet)的失败登录尝试。
  • 第二条规则是一个阻断规则,用于在检测到失败的登录尝试时直接丢弃这些流量。

通过这些配置,Snort可以更有效地保护网络免受恶意流量的侵害。在实际部署中,需要根据具体的网络环境和安全需求进行详细的配置和测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/917052.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[刷题]入门1.矩阵转置

博客主页&#xff1a;算法歌者本篇专栏&#xff1a;[刷题]您的支持&#xff0c;是我的创作动力。 文章目录 1、题目2、基础3、思路4、结果 1、题目 链接&#xff1a;洛谷-B2106-矩阵转置 2、基础 此题目主要考察二维数组的掌控能力。 3、思路 观察&#xff0c;可知&#…

ODC 如何精确呈现SQL耗时 | OceanBase 开发者工具解析

前言 在程序员或DBA的日常工作中&#xff0c;编写并执行SQL语句如同日常饮食中的一餐一饭&#xff0c;再寻常不过。然而&#xff0c;在使用命令行或黑屏客户端处理SQL时&#xff0c;常会遇到编写难、错误排查缓慢以及查询结果可读性不佳等难题&#xff0c;因此&#xff0c;图形…

大数据学习15之Scala集合与泛型

1. 概述 大部分编程语言都提供了数据结构对应的编程库&#xff0c;并称之为集合库(Collection Library)&#xff0c;Scala 也不例外&#xff0c;且它还拥有以下优点&#xff1a; 易用&#xff1a;灵活组合运用集合库提供的方法&#xff0c;可以解决大部分集合问题 简洁&#xf…

Linux网络——网络初识

目录 1. 认识协议 2. 协议的分层 3. OSI 七层模型 && TCP/IP 五层(四层)模型 4. 网络传输的基本流程 5. 以太网的通信原理 6. 数据的跨网络传播 7. 认识 IP 地址 ① IP 是什么 ② IP 与 MAC 的关系 ③ 为什么需要 IP 在谈及网络之前&#xff0c;我们要先对学…

数字IC后端低功耗设计实现案例分享(3个power domain,2个voltage domain)

下图所示为咱们社区T12nm A55低功耗实现项目。其实这个项目还可以根据产品的需求做一些改进。改进后项目实现的难度会大大增加。也希望通过今天的这个项目案例分享&#xff0c;帮助到今年IC秋招的同学。 芯片低功耗设计实现upf编写指南&#xff08;附低功耗项目案例&#xff0…

Ubuntu从入门到精通(一)系统安装

Ubuntu从入门到精通&#xff08;一&#xff09; 1 Ubuntu镜像选择 下载Ubuntu 20.04系统ISO镜像 安装 Ubuntu 20.04系统,就必须有 Ubuntu 20.04系统软件安装程序可以通过浏览器访问Ubuntu20.04的官方站点&#xff0c; 然后在导舰栏找划 Dowwnloads->Mirrors链接&#xff…

说说软件工程中的“协程”

在软件工程中&#xff0c;协程&#xff08;coroutine&#xff09;是一种程序运行的方式&#xff0c;可以理解成“协作的线程”或“协作的函数”。以下是对协程的详细解释&#xff1a; 一、协程的基本概念 定义&#xff1a;协程是一组序列化的子过程&#xff0c;用户能像指挥家…

【linux】进程等待与进程替换

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;linux笔记仓 目录 01.进程等待系统调用获取子进程status常用宏使用示例 02.进程替换替换函数关键点解释&#xff1a;代码详细分析execvpe 函数的使用 01.进程等待 任何子进程&#xff0c;在退出的…

认证鉴权框架SpringSecurity-5--权限管理篇

上面两篇我们重点介绍了如何在代码上集成springSecurity&#xff0c;同时完成登录认证和token认证的过程。我们直到springSecurity处理能帮我们完成认证外&#xff0c;还可以帮助我们完成权限校验的工作&#xff0c;这篇我们来重点介绍下springSecurity是如何实现鉴权的。 一、…

RK3588开发板Android12-SDK更新通知

迅为RK3588开发板Android12 SDK升级至RK的android-12.1-mid-rkr14版本 内核版本&#xff1a;升级至 5.10.160 版本&#xff0c;提供更好兼容性和性能。 rkbin 版本&#xff1a;支持最新的 1.17 版本 bin 和 1.46 版本的 bl31。

stm32教程:OLED屏显示字母、汉字、图片工程讲解

早上好啊&#xff0c;大佬们&#xff0c;今天带来的是我们 stm32系列的第一个外设——OLED&#xff0c;相信大家对于OLED都不陌生了吧&#xff0c;这个可以说每一个项目里的必需品了&#xff0c;单片机离不开OLED就像西方离不开耶路撒冷。 在生活中&#xff0c;我们见到的OLED的…

力扣 LeetCode 28. 找出字符串中第一个匹配项的下标(Day4:字符串)

解题思路&#xff1a; KMP算法 需要先求得最长相等前后缀&#xff0c;并记录在next数组中&#xff0c;也就是前缀表&#xff0c;前缀表是用来回退的&#xff0c;它记录了模式串与主串(文本串)不匹配的时候&#xff0c;模式串应该从哪里开始重新匹配。 next[ j - 1 ] 记录了 …

我与Linux的爱恋:进程间通信 匿名管道

​ ​ &#x1f525;个人主页&#xff1a;guoguoqiang. &#x1f525;专栏&#xff1a;Linux的学习 文章目录 匿名管道pipe 匿名管道 匿名管道&#xff08;Anonymous Pipes&#xff09;是Unix和类Unix操作系统中的一种通信机制&#xff0c;用于在两个进程之间传递数据。匿名…

Java之JDBC,Maven,MYBatis

前言 就是用来操作数据库的 1.JDBC快速入门 注意在使用前一定要导入jar包 在模块那里新建目录&#xff0c;新建lib&#xff0c;粘贴复制jar包&#xff0c;我这个jar设置的是模块有效 package test1017;import java.sql.Connection; import java.sql.DriverManager; import…

基于Matlab的碎纸片的自动拼接复原技术

碎纸片的自动拼接复原技术 摘要&#xff1a;破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。目前发现对碎纸片的拼接大部分由人工完成&#xff0c;准确率较高&#xff0c;但耗费大量人力财力及时间&#xff0c;效率很低。随着计算机技术的…

STM32 设计的较为复杂的物联网项目,包括智能家居控制系统,涵盖了硬件和软件的详细设计。

使用 STM32 设计的较为复杂的物联网项目&#xff0c;包括智能家居控制系统&#xff0c;涵盖了硬件和软件的详细设计。 一、硬件设计 微控制器&#xff1a;选择 STM32F4 系列微控制器&#xff0c;如 STM32F407ZGT6&#xff0c;具有高性能和丰富的外设资源。 传感器模块&#x…

1.7 JS性能优化

从输入url到页面加载完成都做了些什么 输入 URL - 资源定位符 http://www.zhaowa.com - http 协议 域名解析 https://www.zhaowa.com > ip 1. 切HOST&#xff1f; > 浏览器缓存映射、系统、路由、运营商、根服务器 2. 实际的静态文件存放&#xff1f; 大流量 > 多个…

LPDDR4芯片学习(四)——DDR Training

一、ZQ Calibration DDR 学习时间 (Part B - 6)&#xff1a;DRAM ZQ 校正 - 知乎 (zhihu.com) 从原理上解释什么是DDR的ZQ校准&#xff1f; - 知乎 (zhihu.com) LPDDR4的训练(training)和校准(calibration)--ZQ校准(Calibration)_wonder_coole-腾讯云开发者社区 01 ZQ校准的…

pycharm分支提交操作

一、Pycharm拉取Git远程仓库代码 1、点击VCS > Get from Version Control 2、输入git的url&#xff0c;选择自己的项目路径 3、点击Clone&#xff0c;就拉取成功了 默认签出分支为main 选择develop签出即可进行开发工作 二、创建分支&#xff08;非必要可以不使用&#xf…

鸿蒙实战:页面跳转

文章目录 1. 实战概述2. 实现步骤2.1 创建项目2.2 准备图片素材2.3 编写首页代码2.4 创建第二个页面 3. 测试效果4. 实战总结 1. 实战概述 实战概述&#xff1a;本实战通过ArkUI框架&#xff0c;在鸿蒙系统上开发了一个简单的两页面应用。首页显示问候语和“下一页”按钮&…