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

安全技术和防火墙

1、安全技术

1.1入侵检测系统

特点是不阻断网络访问,主要提供报警和事后监督。不主动介入,默默的看着你(类似于监控)

1.2入侵防御系统

透明模式工作, 数据包,网络监控,服务攻击,木马,蠕虫,系统漏洞等进行准确的分析和判断。

在判定为攻击行为后会立即阻断,主动的防御(所有的数据在进入本机之前必须要通过的设备或者软件)

2、防水墙

是一种防止内部信息泄露的产品。对外有防火墙的功能,对内是透明模式,类似于监控。事前事中事后都知道。

3、防火墙

3.1概念

核心:隔离

工作在网络或者主机的边缘

对网络或者主机的数据包基于一定的规则进行检查。匹配到的规则放行或者拒绝(数据包将会被丢弃。

只开放允许访问的策略(白名单机制,拒绝所有,允许个别)

iptables:linux自带的防火墙,一般用于内部配置,对外一般不适用(对外都使用专业的)

firewalld:linux自带的防火墙,centos7默认的防火墙。

都是包过滤防火墙(对数据包进行控制)

iptables:linux自带的防火墙,一般用于内部配置,对外一般不适用(对外都使用专业的)。工作在网络层,针对数据包实施过滤和限制,包过滤防火墙

firewalld:linux自带的防火墙,centos7默认的防火墙。

3.2包过滤防火墙

特点:在网络层对数据包进行选择,选择的依据是防火墙设置的策略。策略包括:ip地址,端口,协议。

优点:处理速度快,易于维护

缺点:无法检查应用层数据,病毒无法进行处理

3.3应用层防火墙

在应用层对数据进行检查,比较安全

优点:更安全,问题可以精准定位

缺点:所有数据都会检查,增加防火墙的负载

4、通信的要素

4.1五大要素

源ip、目的ip、源端口、目的端口、协议(TCP/UDP)

4.2四大要素

源ip、目的ip、源端口、目的端口

5、内核态和用户态

5.1内核态

涉及到软件的底层代码或者是系统的基层逻辑,以及一些硬件的编码。开发人员更关注内核态

数据如果是内核态处理,速度相对较快

iptables的过滤规则就是由内核来进行控制

5.2用户态

应用层软件层面,人为控制的一系列操作,使用功能。运维人员只考虑用户态

数据只通过用户态处理速度比较慢

6、iptables的配置和策略

四表五链

6.1四表

raw表:用于控制数据包的状态,跟踪数据包的状态

mangle表:修改数据包的头部信息

nat表:网络地址转换,可以改变数据包的源地址和目的地址

filter表:也是iptables的默认表,不做声明默认就是filter表。用来过滤数据包,控制数据包的进出以及接受和拒绝数据包

6.2五链

PREROUTING链:处理数据包进入本机之前的规则(NAT表)

INPUT链:处理数据包进入本机的规则(filter表,是否允许数据包进入)

OUTPUT链:处理本机发出的数据包的规则,或者是数据包离开本机的规则(filter表,,一般不做设置)

FORWARD链:处理数据包转发到其他主机的规则,或者是否允许本机进行数据包转发

POSTROUTING:处理数据包离开本机之后的规则(NAT表)

表里面有链,链里面有规则

6.3优先级

7、iptables的设置

7.1管理选项

在表的链中插入、增加、删除、查看规则

-t:指定表名

-A:在链中添加一条规则,在链尾添加

-I:指定位置插入一条规则

-P:指定链的默认规则,一般都是设置成拒绝(默认是允许)

-D:删除规则

-R:修改规则(慎用)

-vnL:v显示详细信息,n以数字形式展示内容,L查看

--line-numbers:显示规则的编号,和vnL一起使用

-F:清空链中的所有规则(慎用)

-X:清除自定义链中的规则

7.2匹配的条件

根据数据包的ip地址、端口、协议

-p:指定协议类型

-s:指定匹配的源ip地址

-d:指定匹配的目的ip地址

-i:指定数据包进入本机的网络设备(ens33)

-o:指定数据包离开本机的网络设备

--sport:指定源端口

--dport:指定目的端口

7.3控制类型

允许、拒绝、丢弃

ACCEPT:允许数据包通过

DROP:直接丢弃数据包,没有任何回应信息

REJECT:拒绝数据包通过,数据包也会被丢弃。但是会有一个响应的信息

SNAT:修改数据包的源地址

DNAT:修改数据包的目的地址

7.4注意事项

(1)不指定表名,默认的就是filter表

(2)不指定链名,默认的就是所有链(禁止行为)

(3)除非设置了链的默认策略,否则必须指定匹配条件(一般都是匹配条件)

(4)选项、链名和控制类型都是大写,其余的是小写

8、iptables的命令格式

iptables[-t 表名] 管理选项 链名(大写) 匹配条件 [-j控制类型]

 所有的控制类型前面都是-j

匹配原则:每个链中的规则都是从上到下的顺序匹配,匹配到之后就不再向下匹配
如果链中没有规则,则执行链的默认策略(ACCEPT)进行处理

查看规则:

iptables -L

查看指定表:

iptables -t 表名 -L

数字化形式查看规则:

iptables -vnL

 查看行号:

iptables -vnL --line-number(s)

iptables --line-number(s) -vnL

添加规则:

#拒绝所有其他主机ping本机

iptables -A INPUT -p icmp -j REJECT

插入规则:

#在INPUT的第一条插入ACCEPT

iptables -I INPUT 1 -p icmp -j ACCEPT

指定一个ip地址:

#禁止20ping主机

iptables -A INPUT -s 192.168.230.20 -p icmp -j REJECT

指定多个ip地址:

iptables -A INPUT -s 192.168.230.20,192.168.230.30 -p icmp -j DROP

指定端口:

#拒绝22端口

iptables -A INPUT -p tcp --dport 22 -j REJECT

拒绝ip和端口访问:

#拒绝20访问22端口

iptables -A INPUT -s 192.168.230.20 -p tcp --dport 22 -j REJECT

 #20无法访问
[root@test2 ~]# ssh root@192.168.230.10
ssh: connect to host 192.168.230.10 port 22: Connection refused

 #10可以访问
[root@test1 ~]# ssh root@192.168.230.10
root@192.168.230.10's password: 
Last login: Wed Jun 26 16:40:33 2024 from test1

拒绝20访问nginx:

iptables -A INPUT -s 192.168.230.20 -p tcp --dport 80 -j REJECT

 [root@test2 ~]# curl 192.168.230.10
curl: (7) Failed connect to 192.168.230.10:80; 拒绝连接

删除规则:

iptables -D INPUT 序号

修改策略:

#将INPUT序号1的策略改为REJECT,源ip改为20

-R INPUT 1 -s 192.168.230.20 -p tcp --dport 80 -j REJECT

修改链的默认策略:

#将INPUT的默认策略改为DROP

iptables -P INPUT DROP

指定网络设备:

#拒绝20通过ens33网卡访问80服务

iptables -A INPUT -i ens33 -s 192.168.230.20 -p tcp --dport 80 -j REJECT

 [root@test2 ~]# curl 192.168.230.10

curl: (7) Failed connect to 192.168.230.10:80; 拒绝连接

拒绝整个网段:

iptables -A INPUT -s 192.168.230.0/24 -p tcp --dport 80 -j REJECT

 [root@test1 ~]# curl 192.168.230.10

curl: (7) Failed connect to 192.168.230.10:80; 拒绝连接

一次性对多个端口进行操作:

#禁止所有主机访问22和80端口(端口从小到大,只能禁止两个端口)

iptables -A INPUT -p tcp --dport 22:80 -j REJECT

 [root@test2 ~]# ssh root@192.168.230.10

ssh: connect to host 192.168.230.10 port 22: Connection refused

[root@test2 ~]# curl 192.168.230.10

curl: (7) Failed connect to 192.168.230.10:80; 拒绝连接

-m 扩展模块,一次性禁止多端口,ip范围,指定mac地址:

iptables -A INPUT -p tcp -m multiport --dport 22,80,3306 -j REJECT

指定ip范围:

#拒绝20-30的ip地址访问本机的80端口

iptables -A INPUT -p tcp -m iprange --src-range 192.168.230.20-192.168.230.30 --dport 80 -j REJECT

 [root@test2 ~]# curl 192.168.230.10

curl: (7) Failed connect to 192.168.230.10:80; 拒绝连接

一次性指定多个端口:

-m multiport --sport 源端口池 ​

-m multiport --dport 目的端口池 ​

-m iprange --src-range 源地址池 ​

-m iprange --dst-range 目的地址池

9、备份和还原

格式:

iptables-save > /opt/iptables.bak ​

 一键导入,设置为当前防火墙设置:

iptables-restore </opt/iptables.bak 

 修改iptables的默认设置:

cat /etc/sysconfig/iptables

 直接把配置导入配置文件:

cat /opt/iptables.bak >/etc/sysconfig/iptables
#立即生效了,实验环境下,了解就可以了。不要尝试

systemctl restart iptables

#重启之后生效的就是配置文件中的内容,操作需谨慎

10、自定义链

添加自定义链: 

iptables -N 链名

 自定义链改名:

iptables -E 原链名 自定义链名

 在自定义链中添加规则:

iptables -I aaa -p tcp -j REJECT

 删除自定义链:

#先删除iptables INPUT链中的对应关系,然后删除自定义链中的规则

iptables -D INPUT 1

iptables -D ky27 1
然后再用iptables -X ky27 删除这个链

11、snat和dnat

11.1snat

源地址转换

内网——外网 内网ip转换成可以访问的外网ip

内网的多个主机可以使用一个有效的公网ip地址访问外部网络

11.2dnat

目的地址转换

外部用户可以通过一个公网地址访问服务内部的私网服务。私网的ip和公网的ip做一个映射

12、实验

关闭防火墙

test1、3安装nginx,重启

test2安装iptables,添加一个新网卡

配置test2网卡ens33ip地址

把ens33复制给ens36,并且配置地址

cp ifcfg-ens33 ifcfg-ens36

配置test3的网关和ip地址


配置test1的网关

test2 进入linux内核参数的配置文件

vim /etc/sysctl.conf

打开路由器数据包的转发功能

使内核参数的配置立刻生效

[root@test2 opt]# sysctl -p ​

net.ipv4.ip_forward = 1#表明已生效

源地址转换

iptables -t nat -A POSTROUTING -s 192.168.230.0/24 -o ens36 -j SNAT --to 10.0.0.10

-t nat:指定表为nat表
-A POSTROUTING:添加链
-s:指定源ip
-o:指定输出网络设备
-j:控制类型
--to:指定整个网段192.168.230.0/24,从ens36出去时,做源地址转换,转换成10.0.0.10

重启test1、2、3的网卡

systemctl restart network

进入test1、3的虚拟机

打开test3的终端,打开nginx的access日志

tail -f /var/log/nginx/access.log

在test1访问test3的地址12.0.0.100,访问成功

此时test3的access日志ip地址变为12.0.0.100,实现了源地址转换


目的地址转换DNAT

iptables -t nat -A PREROUTING -d 11.0.0.11 -i ens36 -p tcp --dport 80 -j DNAT --to 192.168.230.10

-d 11.0.0.11:指定作为目的地址转换的ip地址
-i:从指定的设备进入本机
-dport:指定端口
-j DNAT:使用目的地址转换
--to 192.168.230.10:外网想要访问内网的192.168.230.10这个web服务,只需要访问11.0.0.11就可以访问内网的web服务

test3访问11.0.0.11成功

13、在linux当中如何抓包

tcpdump是linux自带的抓包工具(最小化安装是不带的,需要额外安装)

静态抓包:

tcpdump tcp -i ens33 -t -s0 -c 10 and dst port 80 and src net 192.168.230.0/24 -w /opt/target.cap

tcp:指定抓包的协议udp icmp第一个参数,可以不指定协议
-i:只抓经过指定设备的包
-t:不显示时间戳
-s0:抓完整的数据包
-c 10:抓10个包
dst port:指定抓包的目的端口
src net 192.168.230.0/24:指定抓包的IP地址
net:网段
host:主机(ip地址)
src host 192.168.230.10
-w:保存指定路径

动态抓包:

tcpdump -i ens33 -s0 -w ./ens33.cap

如果要用wireshark对数据包进行分析,tcpdump在抓包时,要使用-s0,抓取完整格式,否则wireshark无法分析

14、firewalld

14.1定义

firewalld是centos7自带的,也是默认的,7以前默认是iptables

和iptables一样,也是包过滤防火墙

ip 端口 协议

14.2firewalld按照区域来划分

public:公共区域,默认配置了ssh以及DHCPv6预定服务是放通的,其他的全部都是拒绝。是默认区域

trusted:信任区域,允许所有的数据包放通

block:限制区域,拒绝所有

drop:丢弃区域,丢弃所有数据包

dmz:非军事区域,默认只允许ssh通过

home:家庭区域,默认只允许ssh通过

internal:内部区域,和home一模一样

external:外部区域,默认允许ssh通过,其他的全部拒绝

work:工作区域,默认放通ssh

14.3firewall-cmd 命令行工具

14.3.1区域管理

显示当前系统的默认区域:

firewall-cmd --get-default-zone

显示默认区域的所有规则:

firewall-cmd --list-all

 显示当前正在使用的区域及其对应的网卡接口:

firewall-cmd --get-active-zones

设置默认区域:

firewall-cmd --set-default-zone=block

firewall-cmd --get-default-zone #查看当前的默认区域。

14.3.2服务管理

查看默认区域内允许访问的所有服务:

firewall-cmd --list-service

#dhcpv6 -client 获取ipv6的地址

该区域默认使用的网卡设备

 添加httpd服务到public 区域:

firewall-cmd --add-service=http --zone=public

 查看public区域已配置规则:

firewall-cmd --list-all --zone=public

 删除public区域的httpd 服务:

firewall-cmd --remove-service=http --zone=public

 添加多个服务:

firewall-cmd --add-service=http --add-service=ftp --zone=public #方法一


firewall-cmd  --add-service={ftp,http} #方法二

同时添加httpd、ftp服务到默认区域,设置成永久生效:

firewall-cmd --add-service=http --add-service=ftp --permanent
firewall-cmd  --add-service={ftp,http} --zone=public --permanent  #两种方式
firewall-cmd --reload    
firewall-cmd --list-all  

添加使用 --permanent选项表示设置成永久生效,需要重新启动firewalld服务或执行firewall-cmd --reload命令 
重新加载防火墙规则时才会生效。若不带有此选项,表示用于设置运行时规则,
但是这些规则在系统或firewalld服务重启、停止时配置将失效。     

14.3.1端口管理

允许TCP的443端口到internal区域:

firewall-cmd --zone=internal --add-port=443/tcp
firewall-cmd --list-all --zone=internal

 从internal 区域将TCP的443端口移除:

firewall-cmd --zone=internal --remove-port=443/tcp

 允许UDP的2048~2050端口到默认区域:

[root@localhost ~]# firewall-cmd --add-port={21,80,23,24}/tcp
success
[root@localhost ~]# firewall-cmd --add-port=30-35/tcp
success
firewall-cmd --add-port=2048-2050/udp
firewall-cmd --list-all

添加源地址进行操作:

[root@localhost ~]# firewall-cmd --add-source=192.168.233.20 --zone=block
 
[root@localhost ~]# firewall-cmd --get-active-zone
 
[root@localhost ~]# firewall-cmd --remove-source=192.168.233.20 --zone=block
 
[root@localhost ~]# firewall-cmd --get-active-zone

相关文章:

安全技术和防火墙

1、安全技术 1.1入侵检测系统 特点是不阻断网络访问&#xff0c;主要提供报警和事后监督。不主动介入&#xff0c;默默的看着你&#xff08;类似于监控&#xff09; 1.2入侵防御系统 透明模式工作&#xff0c; 数据包&#xff0c;网络监控&#xff0c;服务攻击&#xff0c;…...

Webpack: 开发 PWA、Node、Electron 应用

概述 毋庸置疑&#xff0c;对前端开发者而言&#xff0c;当下正是一个日升月恒的美好时代&#xff01;在久远的过去&#xff0c;Web 页面的开发技术链条非常原始而粗糙&#xff0c;那时候的 JavaScript 更多用来点缀 Web 页面交互而不是用来构建一个完整的应用。直到 2009年5月…...

python处理txt文件, 如果第一列和第二列的值在连续的行中重复,则只保留一行

处理txt文件, 如果第一列和第二列的值在连续的行中重复,则只保留一个实例,使用Python的内置函数来读取文件,并逐行检查和处理数据。 一个txt文件,里面的数据是893.554382324,-119.955825806,0.0299997832626,-0.133618548512,28.1155740884,112.876833236,46.7922,19.62582…...

C++17中引入了什么新的重要特性

C17是C标准的一个重要版本&#xff0c;它在语言核心和标准库中引入了许多新特性和改进&#xff0c;使得C编程更加现代化和高效。以下是C17中引入的一些重要新特性&#xff1a; 语言核心新特性 结构化绑定&#xff08;Structured Bindings&#xff09;&#xff1a; 结构化绑定…...

Andrej Karpathy提出未来计算机2.0构想: 完全由神经网络驱动!网友炸锅了

昨天凌晨&#xff0c;知名人工智能专家、OpenAI的联合创始人Andrej Karpathy提出了一个革命性的未来计算机的构想&#xff1a;完全由神经网络驱动的计算机&#xff0c;不再依赖传统的软件代码。 嗯&#xff0c;这是什么意思&#xff1f;全部原生LLM硬件设备的意思吗&#xff1f…...

用国内镜像安装docker 和 docker-compose (ubuntu)

替代方案&#xff0c;改用国内的镜像站(网易镜像&#xff09; 1.清除旧版本&#xff08;可选操作&#xff09; for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do apt-get remove $pkg; done 2.安装docker apt-get update 首先安装依赖 apt-g…...

Linux多线程【线程互斥】

文章目录 Linux线程互斥进程线程间的互斥相关背景概念互斥量mutex模拟抢票代码 互斥量的接口初始化互斥量销毁互斥量互斥量加锁和解锁改进模拟抢票代码&#xff08;加锁&#xff09;小结对锁封装 lockGuard.hpp 互斥量实现原理探究可重入VS线程安全概念常见的线程不安全的情况常…...

os实训课程模拟考试(大题复习)

目录 一、Linux操作系统 &#xff08;1&#xff09;第1关&#xff1a;Linux初体验 &#xff08;2&#xff09;第2关&#xff1a;Linux常用命令 &#xff08;3&#xff09;第3关&#xff1a;Linux 查询命令帮助语句 二、Linux之进程管理—&#xff08;重点&#xff09; &…...

QT/QML国际化:中英文界面切换显示(cmake方式使用)

目录 前言 实现步骤 1. 准备翻译文件 2. 翻译字符串 3.设置应用程序语言 cmake 构建方式 示例代码 总结 1. 使用 file(GLOB ...) 2. 引入其他资源文件 再次生成翻译文件 5. 手动更新和生成.qm文件 其他资源 前言 在当今全球化的软件开发环境中&#xff0c;应用程…...

设计模式在Java项目中的实际应用

设计模式在Java项目中的实际应用 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 引言 设计模式是软件开发中重要的思想工具&#xff0c;它提供了解决特定问题…...

js制作随机四位数验证码图片

<div class"lable lable2"><div class"l"><span>*</span>验证码</div><div class"r"><input type"number" name"vercode" placeholder"请输入验证码"></div>&l…...

[开源软件] 支持链接汇总

“Common rules: 1- If the repo is on github, the support/bug link is also on the github with issues”" label; 2- Could ask questions by email list;" 3rd party software support link Note gcc https://gcc.gnu.org openssh https://bugzilla.mindrot.o…...

从零开始搭建spring boot多模块项目

一、搭建父级模块 1、打开idea,选择file–new–project 2、选择Spring Initializr,选择相关java版本,点击“Next” 3、填写父级模块信息 选择/填写group、artifact、type、language、packaging(后面需要修改)、java version(后面需要修改成和第2步中版本一致)。点击“…...

Iot解决方案开发的体系结构模式和技术

前言 Foreword 计算机技术起源于20世纪40年代&#xff0c;最初专注于数学问题的基本原理&#xff1b;到了60年代和70年代&#xff0c;它以符号系统为中心&#xff0c;该领域首先开始面临复杂性问题&#xff1b;到80年代&#xff0c;随着个人计算的兴起和人机交互的问题&#x…...

02.C1W1.Sentiment Analysis with Logistic Regression

目录 Supervised ML and Sentiment AnalysisSupervised ML (training)Sentiment analysis Vocabulary and Feature ExtractionVocabularyFeature extractionSparse representations and some of their issues Negative and Positive FrequenciesFeature extraction with freque…...

Stable Diffusion秋叶AnimateDiff与TemporalKit插件冲突解决

文章目录 Stable Diffusion秋叶AnimateDiff与TemporalKit插件冲突解决描述错误描述&#xff1a;找不到模块imageio.v3解决&#xff1a;参考地址 其他文章推荐&#xff1a;专栏 &#xff1a; 人工智能基础知识点专栏&#xff1a;大语言模型LLM Stable Diffusion秋叶AnimateDiff与…...

PCL 渐进形态过滤器实现地面分割

点云地面分割 一、代码实现二、结果示例🙋 概述 渐进形态过滤器:采用先腐蚀后膨胀的运算过程,可以有效滤除场景中的建筑物、植被、车辆、行人以及交通附属设施,保留道路路面及路缘石点云。 一、代码实现 #include <iostream> #include <pcl/io/pcd_io.h> #in…...

第十四届蓝桥杯省赛C++B组E题【接龙数列】题解(AC)

需求分析 题目要求最少删掉多少个数后&#xff0c;使得数列变为接龙数列。 相当于题目要求求出数组中的最长接龙子序列。 题目分析 对于一个数能不能放到接龙数列中&#xff0c;只关系到这个数的第一位和最后一位&#xff0c;所以我们可以先对数组进行预处理&#xff0c;将…...

Ubuntu 20.04.4 LTS 离线安装docker 与docker-compose

Ubuntu 20.04.4 LTS 离线安装docker 与docker-compose 要在Ubuntu 20.04.4 LTS上离线安装Docker和Docker Compose&#xff0c;你需要首先从有网络的环境下载Docker和Docker Compose的安装包&#xff0c;然后将它们传输到离线的服务器上进行安装。 在有网络的环境中&#xff1a…...

vue3+ts 写echarts 中国地图

需要引入二次封装的echarts和在ts文件写的option <template><div class"contentPage"><myEcharts :options"chartOptions" class"myEcharts" id"myEchartsMapId" ref"mapEcharts" /></di…...

【设计模式】【行为型模式】【责任链模式】

系列文章目录 可跳转到下面链接查看下表所有内容https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5501文章浏览阅读2次。系列文章大全https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5501 目录…...

超越所有SOTA达11%!媲美全监督方法 | UC伯克利开源UnSAM

文章链接&#xff1a;https://arxiv.org/pdf/2406.20081 github链接&#xff1a;https://github.com/frank-xwang/UnSAM SAM 代表了计算机视觉领域&#xff0c;特别是图像分割领域的重大进步。对于需要详细分析和理解复杂视觉场景(如自动驾驶、医学成像和环境监控)的应用特别有…...

享元模式(设计模式)

享元模式&#xff08;Flyweight Pattern&#xff09;是一种结构型设计模式&#xff0c;它通过共享细粒度对象来减少内存使用&#xff0c;从而提高性能。在享元模式中&#xff0c;多个对象可以共享相同的状态以减少内存消耗&#xff0c;特别适合用于大量相似对象的场景。 享元模…...

【机器学习】大模型训练的深入探讨——Fine-tuning技术阐述与Dify平台介绍

目录 引言 Fine-tuning技术的原理阐 预训练模型 迁移学习 模型初始化 模型微调 超参数调整 任务设计 数学模型公式 Dify平台介绍 Dify部署 创建AI 接入大模型api 选择知识库 个人主页链接&#xff1a;东洛的克莱斯韦克-CSDN博客 引言 Fine-tuning技术允许用户根…...

【Linux从入门到放弃】探究进程如何退出以进程等待的前因后果

&#x1f9d1;‍&#x1f4bb;作者&#xff1a; 情话0.0 &#x1f4dd;专栏&#xff1a;《Linux从入门到放弃》 &#x1f466;个人简介&#xff1a;一名双非编程菜鸟&#xff0c;在这里分享自己的编程学习笔记&#xff0c;欢迎大家的指正与点赞&#xff0c;谢谢&#xff01; 进…...

QT5 static_cast实现显示类型转换

QT5 static_cast实现显示类型转换&#xff0c;解决信号重载情况...

【ES】--Elasticsearch的翻页详解

目录 一、前言二、from+size浅分页1、from+size导致深度分页问题三、scroll深分页1、scroll原理2、scroll可以返回总计数量四、search_after深分页1、search_after避免深度分页问题一、前言 ES的分页常见的主要有三种方式:from+size浅分页、scroll深分页、search_after分页。…...

3.js - 纹理的重复、偏移、修改中心点、旋转

你瞅啥 上字母 // ts-nocheck // 引入three.js import * as THREE from three // 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls // 导入lil.gui import { GUI } from three/examples/jsm/libs/lil-gui.module.min.js // 导入twee…...

RS232隔离器的使用

RS232隔离器在通信系统中扮演着至关重要的角色&#xff0c;其主要作用可以归纳如下&#xff1a; 一、保护通信设备 电气隔离&#xff1a;RS232隔离器通过光电隔离技术&#xff0c;将RS-232接口两端的设备电气完全隔离&#xff0c;从而避免了地线回路电压、浪涌、感应雷击、静电…...

一切为了安全丨2024中国应急(消防)品牌巡展武汉站成功召开!

消防品牌巡展武汉站 6月28日&#xff0c;由中国安全产业协会指导&#xff0c;中国安全产业协会应急创新分会、应急救援产业网联合主办&#xff0c;湖北消防协会协办的“一切为了安全”2024年中国应急(消防)品牌巡展-武汉站成功举办。该巡展旨在展示中国应急&#xff08;消防&am…...