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

iptables 防火墙(一)

iptables 防火墙(一)

  • 一、Linux 防火墙基础
    • 防火墙分类
  • 二、iptables 的表、链结构
    • 规则表
    • 规则链
    • 数据包过滤的匹配流程
  • 三、编写防火墙规则
    • iptables 的安装
    • iptables的基本语法
    • 规则的匹配条件
      • 通用匹配
      • 隐含匹配
      • 显式匹配
  • 四、总结

在网络安全的世界里,防火墙无疑是我们抵御外部威胁的第一道防线。而iptables,作为Linux系统上最强大的防火墙工具之一,为我们提供了细致控制网络流量的能力。本系列博客将带您逐步了解并掌握iptables的基础知识与配置方法。

一、Linux 防火墙基础

防火墙的定义

  • 防火墙是一种由硬件和软件组合而成,在内部网和外部网之间、专有网和公共网之间构造的保护屏障,用已保护用户资料和信息安全的一种技术

防火墙的作用

  • 主要在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题,从而实现对计算机不安全网络因素的阻断。确保网络正常运行,保障信息安全,为用户提供良好的网络体验

防火墙分类

  • 逻辑上分:主机防火墙和网络防火墙
    • 主机型防火墙:针对单个主机进行防护
    • 网络型防火墙:针对网络进行保护,保护内部的局域网
  • 物理上分:硬件防火墙和软件防火墙
    • 硬件防火墙:在硬件上实现防火墙功能,性能高,成本高。
    • 软件防火墙:依靠软件来实现防火墙功能,性能低,成本低

Linux包过滤防火墙概述

  • Linux防火墙是一种功能强大的信息包过滤系统

netfilter

  • 是Linux内核中的一种包过滤功能体系
  • 称为Linux防火墙的 “内核态”

iptables

  • 位于 /sbin/iptables,是防火墙规则的管理工具
  • 称为Linux防火墙的 ”用户态“
    ——上述2种称呼都可以表示Linux防火墙

包过滤的工作层次

  • 主要是网络层,针对IP数据包
  • 体现在对数据包内的IP地址、端口等信息的处理上

二、iptables 的表、链结构

在这里插入图片描述

规则表

  • 表的作用:容纳各种规则链
  • 表的划分依据:防火墙规则的作用相似

默认包括4个规则表

  • raw表:是否对数据包进行状态跟踪
  • mangle表:是否为数据包设置标记
  • nat表:是否修改数据包中的源、目标IP地址或端口
  • filter表:是否放行该数据包(过滤)

规则链

  • 规则的作用:对数据包进行过滤或处理
  • 链的作用:容纳各种防火墙规则
  • 链的分类依据:处理数据包的不同时机

默认包括5种规则链

  • INPUT:处理入站数据包
  • OUTPUT:处理出站时间包
  • FORWARD:处理转发数据包
  • POSTROUTING:在进行路由选择后处理数据包
  • PREROUTING:在进行路由选择前处理数据包

数据包过滤的匹配流程

  • 规则表之间的顺序
    • raw→mangle→nat→filter
  • 规则链之间的顺序
    • 入站:PREROUTING→INPUT
    • 出站:OUTPUT→POSTROUTING
    • 转发:PREROUTING→FORWARD→POSTROUTING
  • 规则链内的匹配顺序
    • 按顺序依次检查,匹配即停止(LOG策略例外)
    • 若找不到相匹配的规则,则按该链的默认策略处理
      在这里插入图片描述

三、编写防火墙规则

iptables 的安装

  • CentOS 7.3 默认使用 firewalld 防火墙,如果想使用 iptables 防火墙,必须先关闭firewalld 防火墙
# 关闭 firewalld 防火墙
[root@localhost ~]# systemctl stop firewalld
# 关闭自启动
[root@localhost ~]# systemctl disable firewalld
  • Firewalld 防火墙关闭之后,可以通过 yum 方式再安装 iptables,因为默认 CentOS7.3系统中并没有安装 iptables
# 安装 iptables
[root@localhost ~]# yum -y install iptables iptables-services
# 启动 iptables
[root@localhost ~]# systemctl start iptables
# 设置开机自启动
[root@localhost ~]# systemctl enable iptables

iptables的基本语法

数据包的常见控制类型

  • ACCEPT:允许通过
  • DROP:直接丢弃,不给出任何回应
  • REJECT:拒绝通过,必要时会给出提示
  • LOG:记录日志信息,然后传给下一条规则继续匹配

添加、查看、删除规则等基本操作

iptables 命令的常用管理选项
选项名功能及特点
-A在指定链的末尾添加(--append)一条新的规则
-D删除(--delete)指定链中的某一条规则,可指定规则序号或具体内容
-I在指定链中插入(--insert)一条新的规则,未指定序号时默认作为第一条规则
-R修改、替换(--replace)指定链中的某一条规则,可指定规则序号或具体内容
-L列出(--list)指定链中所有的规则,若未指定链名,则列出表中的所有链
-F清空(--flush)指定链中的所有规则,若未指定链名,则清空表中的所有链
-P设置指定链的默认策略(--policy)
-n使用数字形式(--numeric)显示输出结果,如显示 IP 地址而不是主机名
-v查看规则列表时显示详细(--verbose)的信息
-h查看命令帮助信息(--help)
--line-numbers查看规则列表时,同时显示规则在链中的顺序号
-t指定要操作的表
-i入站网卡
-o出战网卡
-d目的地址
-p协议名
-s源地址
-X删除指定表中用户自定义的规则链
-N新建一条用户自己定义的规则链
-Z将所有表的所有链的字节和数据包计数器清零
-j指定目标动作或跳转
!条件取反

添加新的规则

  • 添加新的防火墙规则时,使用管理选项“-A”、“-I”,前者用来追加规则,后者用来插入规则。
  • 例如,若要在 filter 表 INPUT 链的末尾添加一条防火墙规则,可以执行以下操作(其中“-p 协议名”作为匹配条件)
[root@localhost ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT
  • 当使用管理选项“-I”时,允许同时指定新添加规则的顺序号,未指定序号时默认作为第一条。
  • 例如,以下操作添加的两条规则将分别位于 filter 表的第一条、第二条(其中省略了“-t filter”选项,默认使用 filter 表)。
[root@localhost ~]# iptables -I INPUT -p udp -j ACCEPT
[root@localhost ~]# iptables -I INPUT 2 -p icmp -j ACCEPT

查看规则列表

  • 查看已有的防火墙规则时,使用管理选项“-L”,结合“–line-numbers”选项还可显示各条规则在链内的顺序号。
  • 例如,若要查看 filter 表 INPUT 链中的所有规则,并显示规则序号, 可以执行以下操作。
[root@bogon ~]# iptables -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       udp  --  bogon                anywhere            
2    ACCEPT     tcp  --  anywhere             anywhere            
3    ACCEPT     all  --  bogon                anywhere            
4    ACCEPT     all  --  bogon/24             anywhere            
  • 当防火墙规则的数量较多时,若能够以数字形式显示地址和端口信息,可以减少地址解析的环节,在一定程度上加快命令执行的速度。
  • 例如,若要以数字地址形式查看 filter 表INPUT 链中的所有规则,可以执行以下操作。
[root@bogon ~]# iptables -n -L INPUT        # "-n -L"可合写为"-nL" 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       udp  --  192.168.72.1         0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  192.168.72.1         0.0.0.0/0           
ACCEPT     all  --  192.168.72.0/24      0.0.0.0/0  

删除、清空规则

  • 删除一条防火墙规则时,使用管理选项“-D”。
  • 例如,若要删除 filter 表 INPUT 链中的第三条规则,可以执行以下操作。
[root@bogon ~]# iptables -nL --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       udp  --  192.168.72.1         0.0.0.0/0           
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     all  --  192.168.72.1         0.0.0.0/0           
4    ACCEPT     all  --  192.168.72.0/24      0.0.0.0/0           [root@bogon ~]# iptables -D INPUT 3
[root@bogon ~]# iptables -nL --line-numbers        # 确认删除效果
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       udp  --  192.168.72.1         0.0.0.0/0           
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     all  --  192.168.72.0/24      0.0.0.0/0           
  • 清空指定链或表中的所有防火墙规则,使用管理选项“-F”。
  • 例如,若要清空 filter 表INPUT链中的所有规则,可以执行以下操作。
[root@bogon ~]# iptables -F INPUT
[root@bogon ~]# iptables -nL --line-numbers         # 确认删除效果
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
  • 使用管理选项“-F”时,允许省略链名而清空指定表所有链的规则。
  • 例如,执行以下操作分别用来清空 filter 表、nat 表、mangle 表。
[root@bogon ~]# iptables -F 
[root@bogon ~]# iptables -t nat -F 
[root@bogon ~]# iptables -t mangle -F

设置默认策略

  • iptables 的各条链中,默认策略是规则匹配的最后一个环节——当找不到任何一条能够匹配数据包的规则时,则执行默认策略。默认策略的控制类型为 ACCEPT(允许)、DROP(丢弃)两种。
  • 例如,执行以下操作可以将 filter 表中 FORWARD 链的默认策略设为丢弃,OUTPUT 链的默认策略设为允许。
[root@bogon ~]# iptables -t filter -P FORWARD DROP
[root@bogon ~]# iptables -P OUTPUT ACCEPT
  • 需要注意的是,当使用管理选项“-F”清空链时,默认策略不受影响。
  • 因此若要修改默认策略,必须通过管理选项“-P”重新进行设置。
  • 另外,默认策略并不参与链内规则的顺序编排, 因此在其他规则之前或之后设置并无区别。

规则的匹配条件

常用的隐含匹配条件

  • 端口匹配:–sport源端口、–dport目的端口
  • ICMP类型匹配:–icmp-type ICMP类型

常用的显式匹配条件

  • 多端口匹配:-m multiport --sports 源端口列表
    -m multiport --dports 目的端口列表
  • IP范围匹配:-m iprange --src-range IP范围
  • MAC地址匹配:-m mac --mac-source MAC地址
  • 状态匹配:-m state --state 连接状态
[root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT
[root@localhost ~]# iptables -A FORWARD -p tcp -m iprange -src-range 192.168.4.21-192.168.4.28-ACCEPT
[root@localhost ~]#iptables -A INPUT -m mac -mac-source 00:0c:29:c0:55:3f -j DROP

通用匹配

(1) 协议匹配

  • 编写 iptables 规则时使用“-p 协议名”的形式指定,用来检查数据包所使用的网络协议(–protocol)
# 丢弃通过 icmp 协议访问防火墙本机的数据包,允许转发经过防火墙的除 icmp 协议之外的数据包
[root@localhost ~]# iptables -I INPUT -p icmp -j DROP
[root@localhost ~]# iptables -A FORWARD ! -p icmp -j ACCEPT            #感叹号”!”表示取反

(2) 地址匹配

  • 编写 iptables 规则时使用“-s 源地址”或“-d 目标地址”的形式指定,用来检查数据包的源地址(–source)或目标地址(–destination)
# 拒绝转发源地址为192.168.1.11 的数据,允许转发源地址位于 192.168.7.0/24 网段的数据
[root@localhost ~]# iptables -A FORWARD -s 192.168.1.11 -j REJECT
[root@localhost ~]# iptables -A FORWARD -s 192.168.7.0/24 -j ACCEPT
# 检测到来自某个网段(如 10.20.30.0/24)的频繁扫描、登录穷举等不良企图,可立即添加防火墙规则进行封锁
[root@localhost ~]# iptables -I INPUT -s 10.20.30.0/24 -j DROP
[root@localhost ~]# iptables -I FORWARD -s 10.20.30.0/24 -j DROP

(3) 网络接口匹配

  • 编写 iptables 规则时使用“-i 接口名”和“-o 接口名”的形式,用于检查数据包从防火墙的哪一个接口进入或发出,分别对应入站网卡(–in-interface)、出站网卡(–out-interface)
# 丢弃从外网接口(ens33)访问防火墙本机且源地址为私有地址的数据包
[root@localhost ~]# iptables -A INPUT -i ens33 -s 10.0.0.0/8 -j DROP 
[root@localhost ~]# iptables -A INPUT -i ens33 -s 172.16.0.0/16 -j DROP 
[root@localhost ~]# iptables -A INPUT -i ens33 -s 192.168.0.0/16 -j DROP

隐含匹配

(1) 端口匹配

  • 编写 iptables 规则时使用“–sport 源端口”或“–dport 目标端口”的形式,针对的协议为TCP 或 UDP,用来检查数据包的源端口(–source-port)或目标端口(–destination-port)。
  • 单个端口号或者以冒号“:”分隔的端口范围都是可以接受的,但不连续的多个端口不能采用这种方式
# 允许为网段 192.168.4.0/24 转发 DNS 查询数据包
[root@localhost ~]# iptables -A FORWARD -s 192.168.4.0/24 -p udp --dport 53 -j ACCEPT
[root@localhost ~]# iptables -A FORWARD -d 192.168.4.0/24 -p udp --sport 53 -j ACCEPT
# 开放 20、21 端口,以及用于被动模式的端口范围为 24500~24600
[root@localhost ~]# iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --dport 24500:24600 -j ACCEPT

(2) ICMP 类型匹配

[root@localhost ~]# iptables -A INPUT -p icmp --icmp-type 8 -j DROP 
[root@localhost ~]# iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT 
[root@localhost ~]# iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT 
[root@localhost ~]# iptables -A INPUT -p icmp -j DROP# 可用的 ICMP 协议类型
iptables -p icmp -h

显式匹配

(1) 多端口匹配

# 允许本机开放 25、80、110、143 端口,以便提供电子邮件服务
[root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT

(2) IP 范围匹配

# 禁止转发源 IP 地址位于 192.168.4.21 与 192.168.4.28 之间的 TCP
数据包
[root@localhost    ~]#    iptables    -A    FORWARD    -p    tcp    -m    iprange    --src-range 192.168.4.21-192.168.4.28 -j DROP

(3) MAC 地址匹配

# 根据 MAC 地址封锁主机,禁止其访问本机的任何应用
[root@localhost ~]# iptables -A INPUT -m mac --mac-source 00:0c:29:c0:55:3f -j DROP

(4) 状态匹配

# 禁止转发与正常 TCP 连接无关的非--syn 请求数据包(如伪造的网络攻击数据包)
[root@localhost ~]# iptables -A FORWARD -m state --state NEW -p tcp ! --syn -j DROP# 只开放本机的 Web 服务(80 端口),但对发给本机的 TCP 应答数据包予以放行,其他入站数据包均丢弃
[root@localhost ~]# iptables -I INPUT -p tcp -m multiport --dport 80 -j ACCEPT 
[root@localhost ~]# iptables -I INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT 
[root@localhost ~]# iptables -P INPUT DROP

四、总结

iptables是一个功能强大的防火墙工具,通过合理的配置可以为我们提供强大的网络安全保障。但请注意,iptables的配置相对复杂,需要具备一定的网络基础和Linux系统管理经验。在配置iptables时,请务必谨慎操作,避免误操作导致网络故障。

相关文章:

iptables 防火墙(一)

iptables 防火墙(一) 一、Linux 防火墙基础防火墙分类 二、iptables 的表、链结构规则表规则链数据包过滤的匹配流程 三、编写防火墙规则iptables 的安装iptables的基本语法规则的匹配条件通用匹配隐含匹配显式匹配 四、总结 在网络安全的世界里&#xf…...

数据库物理结构设计-定义数据库模式结构(概念模式、用户外模式、内模式)、定义数据库、物理结构设计策略

一、引言 如何基于具体的DBMS产品,为数据库逻辑结构设计的结果,即关系数据库模式,制定适合应用要求的物理结构 1、在设计数据库物理结构前,数据库设计人员首先 要充分了解所用的DBMS产品的功能、性能和特点,包括提供…...

QT加载安装外围依赖库的翻译文件后翻译失败的现象分析:依赖库以饿汉式的形式暴露单例接口导致该现象的产生

1、前提说明 VS2019 QtClassLibaryDll是动态库,QtWidgetsApplication4是应用程序。 首先明确:动态库以饿汉式的形式进行单例接口暴露; 然后,应用程序加载动态库的翻译文件并进行全局安装; // ...QTranslator* trans = new QTranslator();//qDebug() << trans->…...

13_旷视轻量化网络--ShuffleNet V2

回顾一下ShuffleNetV1:08_旷视轻量化网络--ShuffleNet V1-CSDN博客 1.1 简介 ShuffleNet V2是在2018年由旷视科技的研究团队提出的一种深度学习模型&#xff0c;主要用于图像分类和目标检测等计算机视觉任务。它是ShuffleNet V1的后续版本&#xff0c;重点在于提供更高效的模…...

Linux系统编程--进程间通信

目录 1. 介绍 1.1 进程间通信的目的 1.2 进程间通信的分类 2. 管道 2.1 什么是管道 2.2 匿名管道 2.2.1 接口 2.2.2 步骤--以父子进程通信为例 2.2.3 站在文件描述符角度-深度理解 2.2.4 管道代码 2.2.5 读写特征 2.2.6 管道特征 2.3 命名管道 2.3.1 接口 2.3.2…...

docker-本地部署-后端

前置条件 后端文件 这边是一个简单项目的后端文件目录 docker服务 镜像文件打包 #命令行 docker build -t author/chatgpt-ai-app:1.0 -f ./Dockerfile .红框是docker所在文件夹 author&#xff1a;docker用户名chatgpt-ai-app&#xff1a;打包的镜像文件名字:1.0 &#…...

TLS + OpenSSL + Engine + PKCS#11 + softhsm2 安全通信

引擎库路径只有在 /lib 下才能被 "LOAD" 识别到&#xff0c;OpenSSL的ReadMe给的示例在/lib&#xff0c;大概是在构建OpenSSL时默认的configure指定了lib路径 // #define PKCS11_ENGINE_PATH "/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so" #define …...

Unity实现简单的MVC架构

文章目录 前言MVC基本概念示例流程图效果预览后话 前言 在Unity中&#xff0c;MVC&#xff08;Model-View-Controller&#xff09;框架是一种架构模式&#xff0c;用于分离游戏的逻辑、数据和用户界面。MVC模式可以帮助开发者更好地管理代码结构&#xff0c;提高代码的可维护性…...

【简单讲解下OneFlow深度学习框架】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…...

FastGPT 调用Qwen 测试Hello world

Ubuntu 安装Qwen/FastGPT_fastgpt message: core.chat.chat api is error or u-CSDN博客 参考上面文档 安装FastGPT后 登录&#xff0c; 点击右上角的 新建 点击 这里&#xff0c;配置AI使用本地 ollama跑的qwen模型 问题&#xff1a;树上有3只鸟&#xff0c;开了一枪&#…...

Golang-GMP

GMP调度 golang-GMP语雀笔记整理 GMP调度设计目的&#xff0c;为何设计GMP?GMP的底层实现几个核心数据结构GMP调度流程 设计目的&#xff0c;为何设计GMP? 无论是多进程、多线程目的都是为了并发提高cpu的利用率&#xff0c;但多进程、多线程都存在局限性。比如多进程通过时…...

【PythonWeb开发】Flask自定义模板路径和静态资源路径

在大型的 Flask 项目中&#xff0c;确实可能会有多个子应用&#xff08;Blueprints&#xff09;&#xff0c;每个子应用可能都有自己的静态文件和模板。为了更好地管理和组织这些资源&#xff0c;可以使用static_folder 和template_folder 属性来统一管理。必须同时设置好主应用…...

Java对象创建过程

在日常开发中&#xff0c;我们常常需要创建对象&#xff0c;那么通过new关键字创建对象的执行中涉及到哪些流程呢&#xff1f;本文主要围绕这个问题来展开。 类的加载 创建对象时我们常常使用new关键字。如下 ObjectA o new ObjectA();对虚拟机来讲首先需要判断ObjectA类的…...

Does a vector database maintain pre-vector chunked data for RAG systems?

题意&#xff1a;一个向量数据库是否为RAG系统维护预向量化分块数据&#xff1f; 问题背景&#xff1a; I believe that when using an LLM with a Retrieval-Augmented Generation (RAG) approach, the results retrieved from a vector search must ultimately be presented…...

Rust-11-错误处理

Rust 将错误分为两大类&#xff1a;可恢复的&#xff08;recoverable&#xff09;和 不可恢复的&#xff08;unrecoverable&#xff09;错误。对于一个可恢复的错误&#xff0c;比如文件未找到的错误&#xff0c;我们很可能只想向用户报告问题并重试操作。不可恢复的错误总是 b…...

自动化测试:使用Postman进行接口测试与脚本编写

Postman 是一种流行的 API 测试工具&#xff0c;广泛应用于开发和测试过程中。它不仅可以用于手动测试&#xff0c;还支持自动化测试和脚本编写&#xff0c;以确保 API 的可靠性和性能。本文将详细介绍如何使用 Postman 进行接口测试与脚本编写&#xff0c;帮助你更高效地进行自…...

ONLYOFFICE 8.1 桌面编辑器测评:引领数字化办公新潮流

目录 前言 下载安装 新功能概述 1.PDF 编辑器的改进 2. 演示文稿中的幻灯片版式 3.语言支持的改进 4. 隐藏“连接到云”板块 5. 页面颜色设置和配色方案 界面设计&#xff1a;简洁大方&#xff0c;操作便捷 性能评测&#xff1a;稳定流畅&#xff0c;高效运行 办公环…...

基于大语言模型LangChain框架:知识库问答系统实践

ChatGPT 所取得的巨大成功&#xff0c;使得越来越多的开发者希望利用 OpenAI 提供的 API 或私有化模型开发基于大语言模型的应用程序。然而&#xff0c;即使大语言模型的调用相对简单&#xff0c;仍需要完成大量的定制开发工作&#xff0c;包括 API 集成、交互逻辑、数据存储等…...

解锁Transformer的鲁棒性:深入分析与实践指南

&#x1f6e1;️ 解锁Transformer的鲁棒性&#xff1a;深入分析与实践指南 Transformer模型自从由Vaswani等人在2017年提出以来&#xff0c;已经成为自然语言处理&#xff08;NLP&#xff09;领域的明星模型。然而&#xff0c;模型的鲁棒性——即模型在面对异常、恶意或不寻常…...

mybatis#号和$区别

在MyBatis中&#xff0c;#{}和${}都是用于实现动态SQL的占位符&#xff0c;但它们在使用场景和安全性上有明显的区别&#xff1a; 用途区别&#xff1a; #{}主要用于传递接口传输过来的具体数据&#xff0c;如参数值&#xff0c;它可以防止SQL注入&#xff0c;因为MyBatis会…...

AI绘画 Stable Diffusion【实战进阶】:图片的创成式填充,竖图秒变横屏壁纸!想怎么扩就怎么扩!

大家好&#xff0c;我是向阳。 所谓图片的创成式填充&#xff0c;就是基于原有图片进行扩展或延展&#xff0c;在保证图片合理性的同时实现与原图片的高度契合。是目前图像处理中常见应用之一。之前大部分都是通过PS工具来处理的。今天我们来看看在AI绘画工具 Stable Diffusio…...

Linux内核 -- 汇编结合ko案例之PMU获取cpu cycle技术

ARMv7汇编实现周期计数读取与清空 本文档详细描述了如何在ARMv7平台上使用汇编语言编写周期计数器读取与清空函数&#xff0c;如何在内核模块中导出这些函数供其他模块调用&#xff0c;以及如何使用Netlink接口供用户态程序进行调用。 1. 汇编函数实现 首先&#xff0c;编写…...

探索 Symfony 框架:工作原理、特点及技术选型

目录 1. 概述 2. Symfony 的工作原理 2.1 MVC 架构 2.2 前端控制器模式 2.3 路由机制 2.4 依赖注入容器 2.5 事件驱动架构 3. Symfony 的特点 3.1 高度可扩展性 3.2 强大的社区支持和生态系统 3.3 优秀的性能和可伸缩性 3.4 严格的代码规范和最佳实践 4. Symfony …...

从万里长城防御体系看软件安全体系建设@安全历史03

长城&#xff0c;是中华民族的一张重要名片&#xff0c;是中华民族坚韧不屈、自强不息的精神象征&#xff0c;被联合国教科文组织列入世界文化遗产名录。那么在古代&#xff0c;长城是如何以其复杂的防御体系&#xff0c;一次次抵御外族入侵&#xff0c;而这些防御体系又能给软…...

ISO 19110操作要求类中的/req/operation/formal-definition详细解释

/req/operation/formal-definition 要求: 每个要素操作实体必须具有一个形式定义&#xff08;formal definition&#xff09;&#xff0c;该定义应明确描述操作的行为和影响。 具体解释 定义 要素操作实体&#xff08;feature operation entity&#xff09;&#xff1a;这…...

豆包大语言模型API调用错误码一览表

本文介绍了您可能从 API 和官方 SDK 中看到的错误代码。 http code说明 400 原因&#xff1a;错误的请求&#xff0c;例如缺少必要参数&#xff0c;或者参数不符合规范等 解决方法&#xff1a;检查请求后重试 401 原因&#xff1a;认证错误&#xff0c;代表服务无法对请求进…...

AI辅助设计:如何通过机器学习革新创意工作流程

&#x1f341; 作者&#xff1a;知识浅谈&#xff0c;CSDN签约讲师&#xff0c;CSDN博客专家&#xff0c;华为云云享专家&#xff0c;阿里云专家博主 &#x1f4cc; 擅长领域&#xff1a;全栈工程师、爬虫、ACM算法&#xff0c;大数据&#xff0c;深度学习 &#x1f492; 公众号…...

轻松解锁电脑强悍性能,4000MHz的玖合星舞 DDR4 内存很能打

轻松解锁电脑强悍性能&#xff0c;4000MHz的玖合星舞 DDR4 内存很能打 哈喽小伙伴们好&#xff0c;我是Stark-C~ 很多有经验的电脑玩家在自己DIY电脑选购内存条的时候&#xff0c;除了内存总容量&#xff0c;最看重的参数那就是频率了。内存频率和我们常说的CPU主频一样&…...

SpringBoot | 使用jwt令牌实现登录认证,使用Md5加密实现注册

对于登录认证中的令牌&#xff0c;其实就是一段字符串&#xff0c;那为什么要那么麻烦去用jwt令牌&#xff1f;其实对于登录这个业务&#xff0c;在平常我们实现这个功能时&#xff0c;可能大部分都是通过比对用户名和密码&#xff0c;只要正确&#xff0c;就登录成功&#xff…...

Springboot基于Redis的高性能分布式缓存数据库的实现与实例

一、引言 在现代的分布式系统和高并发应用中&#xff0c;缓存机制显得尤为重要。Redis作为一种开源&#xff08;BSD许可&#xff09;的内存键值存储&#xff0c;因其高性能、丰富的数据结构和多样化的应用场景&#xff0c;成为开发者们的首选。在这篇博客中&#xff0c;我们将…...

防止多次点击,vue的按钮上做简易的防抖节流处理

话不多说,上个视频,看看是不是你要的效果 防抖节流 1.创建一个directive.js // directive.js export default {install(Vue) {// 防重复点击(指令实现)Vue.directive(repeatClick, {inserted(el, binding) {el.addEventListener(click, () > {if (!el.disabled) {el.disabl…...

云计算【第一阶段(21)】Linux引导过程与服务控制

目录 一、linux操作系统引导过程 1.1、开机自检 1.2、MBR引导 1.3、GRUB菜单 1.4、加载 Linux 内核 1.5、init进程初始化 1.6、简述总结 1.7、初始化进程centos 6和7的区别 二、排除启动类故障 2.1、修复MBR扇区故障 2.1.1、 实验 2.2、修复grub引导故障 2.2.1、实…...

Google 发布最新开放大语言模型 Gemma 2,现已登陆 Hugging Face Hub

Google 发布了最新的开放大语言模型 Gemma 2&#xff0c;我们非常高兴与 Google 合作&#xff0c;确保其在 Hugging Face 生态系统中的最佳集成。你可以在 Hub 上找到 4 个开源模型 (2 个基础模型和 2 个微调模型) 。发布的功能和集成包括&#xff1a; Hub 上的模型https://hf.…...

智能分析赋能等保:大数据技术在安全审计记录中的应用

随着信息技术的飞速发展&#xff0c;大数据技术在各行各业中的应用愈发广泛&#xff0c;特别是在网络安全领域&#xff0c;大数据技术为安全审计记录提供了强有力的支撑。本文将深入探讨智能分析如何赋能等保&#xff08;等级保护&#xff09;&#xff0c;以及大数据技术在安全…...

Django中,update_or_create()

在Django中&#xff0c;可以使用update_or_create()方法来更新现有记录或创建新记录。该方法接受一个字典作为参数&#xff0c;用于指定要更新或创建的字段和对应的值。 update_or_create()方法的语法如下&#xff1a; 代码语言&#xff1a;python obj, created Model.obje…...

每日一学(1)

目录 1、ConCurrentHashMap为什么不允许key为null&#xff1f; 2、ThreadLocal会出现内存泄露吗&#xff1f; 3、AQS理解 4、lock 和 synchronized的区别 1、ConCurrentHashMap为什么不允许key为null&#xff1f; 底层 putVal方法 中 如果key || value为空 抛出…...

SpringMVC(1)——入门程序+流程分析

MVC都是哪三层&#xff1f;在Spring里面分别对应什么&#xff1f;SpringMVC的架构是什么&#xff1f; 我们使用Spring开发JavaWeb项目&#xff0c;一般都是BS架构&#xff0c;也就是Browser&#xff08;浏览器&#xff09;-Server&#xff08;服务器&#xff09;架构 这种架构…...

成绩发布背后:老师的无奈与痛点

在教育的广阔天地里&#xff0c;教师这一角色承载着无数的期望与责任。他们不仅是知识的传播者&#xff0c;更是学生心灵的引路人。而对于班主任老师来说&#xff0c;他们的角色更加多元&#xff0c;他们不仅是老师&#xff0c;还必须是“妈妈”。除了像其他老师一样备课、上课…...

MySQL 索引之外的相关查询优化总结

在这之前先说明几个概念&#xff1a; 1、驱动表和被驱动表&#xff1a;驱动表是主表&#xff0c;被驱动表是从表、非驱动表。驱动表和被驱动表并非根据 from 后面表名的先后顺序而确定&#xff0c;而是根据 explain 语句查询得到的顺序确定&#xff1b;展示在前面的是驱动表&am…...

EE trade:贵金属投资的优点及缺点

贵金属(如黄金、白银、铂金和钯金)一直以来都是重要的投资和避险工具。它们具有独特的物理和化学特性&#xff0c;广泛应用于各种行业&#xff0c;同时也被视为财富储备。在进行贵金属投资时&#xff0c;了解其优点和缺点对于做出明智的投资决策至关重要。 一、贵金属投资的优…...

python工作目录与文件目录

工作目录 文件目录&#xff1a;文件所在的目录 工作目录&#xff1a;执行python命令所在的目录 D:. | main.py | ---data | data.txt | ---model | | model.py | | train.py | | __init__.py | | | ---nlp | | | bert.py | …...

可信和可解释的大语言模型推理-RoG

大型语言模型&#xff08;LLM&#xff09;在复杂任务中表现出令人印象深刻的推理能力。然而&#xff0c;LLM在推理过程中缺乏最新的知识和经验&#xff0c;这可能导致不正确的推理过程&#xff0c;降低他们的表现和可信度。知识图谱(Knowledge graphs, KGs)以结构化的形式存储了…...

秋招季的策略与行动指南:提前布局,高效备战,精准出击

6月即将进入尾声&#xff0c;一年一度的秋季招聘季正在热火进行中。对于即将毕业的学生和寻求职业发展的职场人士来说&#xff0c;秋招是一个不容错过的黄金时期。 秋招的序幕通常在6月至9月间拉开&#xff0c;名企们纷纷开启网申的大门。在此期间&#xff0c;求职备战是一个系…...

Java并发编程-wait与notify详解及案例实战

文章目录 概述wait()notify()作用注意事项用wait与notify手写一个内存队列wait与notify的底层原理:monitor以及wait_setMonitor(监视器)Wait Set(等待集合)Wait() 原理Notify() / NotifyAll() 原理注意事项wait与notify在代码中使用时的注意事项总结案例实战:基于wait与not…...

204.贪心算法:分发饼干(力扣)

以下来源于代码随想录 class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {// 对孩子的胃口进行排序sort(g.begin(), g.end());// 对饼干的尺寸进行排序sort(s.begin(), s.end());int index s.size() - 1; // 从最大的饼…...

AI奥林匹克竞赛:Claude-3.5-Sonnet对决GPT-4o,谁是最聪明的AI?

目录 实验设置 评估对象 评估方法 结果与分析 针对学科的细粒度分析 GPT-4o vs. Claude-3.5-Sonnet GPT-4V vs. Gemini-1.5-Pro 结论 AI技术日新月异&#xff0c;Anthropic公司最新发布的Claude-3.5-Sonnet因在知识型推理、数学推理、编程任务及视觉推理等任务上设立新…...

【C++】const修饰成员函数

const修饰成员函数 常函数&#xff1a; 成员函数后加const后我们称为这个函数为常函数 常函数内不可以修改成员属性 成员属性声明时加关键字mutable后&#xff0c;在常函数中依然可以修改 class Animal { public:void fun1(){//这是一个普通的成员函数 }void fun2…...

基于模糊神经网络的时间序列预测(以hopkinsirandeath数据集为例,MATLAB)

模糊神经网络从提出发展到今天,主要有三种形式&#xff1a;算术神经网络、逻辑模糊神经网络和混合模糊神经网络。算术神经网络是最基本的&#xff0c;它主要是对输入量进行模糊化&#xff0c;且网络结构中的权重也是模糊权重&#xff1b;逻辑模糊神经网络的主要特点是模糊权值可…...

Java web应用性能分析之【prometheus监控K8s指标说明】

常规k8s的监控指标 单独 1、集群维度 集群状态集群节点数节点状态&#xff08;正常、不可达、未知&#xff09;节点的资源使用率&#xff08;CPU、内存、IO等&#xff09; 2、应用维度 应用响应时间 应用的错误率 应用的请求量 3、系统和集群组件维度 API服务器状态控…...

Spring Boot中的应用配置文件管理

Spring Boot中的应用配置文件管理 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨Spring Boot中的应用配置文件管理。在现代的软件开发中&am…...

如何在Spring Boot中使用AOP

如何在Spring Boot中使用AOP 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来探讨在Spring Boot中如何利用AOP&#xff08;Aspect-Oriented Programmi…...

Excel 中的元素定位:相对定位、绝对定位和混合定位

在Excel中&#xff0c;单元格引用有三种主要类型&#xff1a;相对定位、绝对定位和混合定位。 这些类型主要用于公式和函数中&#xff0c;决定在复制或拖动公式时引用如何变化。 1. 相对定位 相对定位指的是不带“$”符号的单元格引用&#xff0c;例如 A1。 这种引用方式在…...

C++ windows下使用openvino部署yoloV8

目录 准备版本&#xff1a; 准备事项: 选择配置界面&#xff1a; 下载界面&#xff1a; ​编辑 添加VS配置&#xff1a; 准备代码&#xff1a; yolov8.h yolov8.cpp detect.cpp 如何找到并放置DLL&#xff1a; 准备版本&#xff1a; opencv 4.6.0 openvino 2024.0…...

【东奥会计-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…...

【计算机毕业设计】026基于微信小程序的原创音乐

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…...

数据结构-分析期末选择题考点(串、数组)

竹月光中诗世界 松风影里酒生涯 目录 串的常见考法&#xff08;一&#xff09;BF算法 串的常见考法&#xff08;二&#xff09;KMP求 next数组 串的常见考法&#xff08;三&#xff09;串的概念及性质 串的常见考法&#xff08;四&#xff09;给出主串求子串数量 数组的常见…...

必胜客之后,DQ冰淇淋也跨界卖汉堡了

汉堡界又迎来一重磅新玩家。近日,DQ冰淇淋在其官方微博、小红书等社交媒体上发文称,DQ汉堡全国首店将于7月10日登陆上海。新玩家入局同时,哈比特汉堡、摩斯汉堡等一批“老玩家”却遗憾陆续退出中国市场。汉堡界,似乎从来不缺新故事。01.冰淇淋“专家”卖汉堡29元起卖,不“…...

JavaWeb基础(一)-IO操作

Java I/O工作机制&#xff1a; 注&#xff1a;简要笔记&#xff0c;示例代码可能较少&#xff0c;甚至没有。 1、Java 的 I/O 类库的基本架构。 ​ Java 的 I/O 操作类在包 java.io 下&#xff0c;大概有将近80个类&#xff0c;这些类大概可以分为如下四组。 基于字节操作的…...

爬虫案例-亚马逊反爬分析-验证码突破(x-amz-captcha)

总体概览&#xff1a;核心主要是需要突破该网站的验证码&#xff0c;成功后会返回我们需要的参数后再去请求一个中间页&#xff08;类似在后台注册一个session&#xff09;&#xff0c;最后需要注意一下 IP 是不能随意切换的 主要难点&#xff1a; 1、梳理整体反爬流程 2、验证…...

使用Word表格数据快速创建图表

实例需求&#xff1a;Word的表格如下所示&#xff0c;标题行有合并单元格。 现在需要根据上述表格数据&#xff0c;在Word中创建如下柱图。如果数据在Excel之中&#xff0c;那么创建这个图并不复杂&#xff0c;但是Word中就没用那么简单了&#xff0c;虽然Word中可以插入图表&a…...

景源畅信电商:做抖音运营怎么开始第一步?

在数字化时代的浪潮中&#xff0c;抖音作为一款短视频平台迅速崛起&#xff0c;成为许多人表达自我、分享生活的重要舞台。随着用户量的激增&#xff0c;如何做好抖音运营&#xff0c;尤其是迈出成功的第一步&#xff0c;成为了众多内容创作者和品牌主们关注的焦点。接下来&…...

C++容器之位集(std::bitset)

目录 1 概述2 使用实例3 接口使用3.1 constructor3.2 count_and_size3.3 test3.4 any3.5 none3.6 all3.7 set3.8 reset3.9 filp3.10 to_string3.11 to_ulong3.12 to_ullong3.13 operators1 概述 位集存储位(只有两个可能值的元素:0或1,true或false,…)。   该类模拟bool…...