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

39 - 安全技术与防火墙

39、安全技术和防火墙

一、安全技术

入侵检测系统:特点是不阻断网络访问,主要是提供报警和事后监督。不主动介入,默默看着你(监控)。

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

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

在这里插入图片描述

二、防火墙

防火墙:隔离,工作在网络或者主机的边缘,内网和外网的中间。

对网络或者主机的数据包基于一定的规则进行检查。匹配到的规则。

放行,拒绝(数据包将会被丢弃)。

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

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

2.1、防火墙类型及优缺点:

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

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

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

网络层对数据包进行选择,选择的依据是防火墙设置的策略。

策略:ip地址,端口,协议。

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

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

应用层防火墙:在应用层对数据进行检查,比较安全。

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

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

2.2、iptables

iptables:工作在网络层,针对数据包实施过滤和限制。包过滤防火墙。

2.3、通信的要素:五大要素和四大要素

1、五大要素:源ip 目的ip 源端口 目的端口 协议(TCP/UDP)

2、四大要素:源ip 目的ip 源端口 目的端口

内核态和用户态:

内核态:设计到软件的底层代码或者是系统的基层逻辑,以及一些硬件的编码。

开发人员更关注内核态。

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

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

用户态:

应用层软件层面,人为控制的一系列操作,使用功能。

运维人员只考虑用户态。

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

三、面试题—iptables的配置和策略:

3.1、四表五链:

3.1.1、iptables的四个表:

  1. **raw表:**用于控制数据包的状态,跟踪数据包的状态
  2. **mangle表:**修改数据包的头部信息
  3. **NAT表:**网络地址转换。可以改变数据包的源地址和目的地址。
  4. **filter表:**也是iptables的默认表,不做声明,默认就是filter表,过滤数据包,控制数据包的进出,以及接收和拒绝数据包。

3.1.2、五链(大写):

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

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

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

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

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

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

在这里插入图片描述

在这里插入图片描述

管理选项:在表的链中插入,增加,删除,查看规则。

匹配的条件:数据包的ip地址,端口,协议。

控制类型:允许,拒绝,丢弃。

3.1.3、注意事项:

1、不指定表名,默认就是filter表。

2、不指定链名,默认就是所有链(禁止范围)。一定要指定链。

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

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

3.2、控制类型:

  • ACCEPT:允许数据包通过。

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

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

  • SNAT:修改数据包的源地址

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

3.3、管理选项(大写):

  • -t 指定表名 [-t 表名]

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

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

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

  • -D 删除规则

  • -R 修改规则(慎用)

  • -vnL:v是显示详细信息,n是以数字形式展示内容,L是才是真正的查看。

  • –line-numbers:显示规则编号,和查看一起使用

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

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

3.4、匹配条件:

  • -p:指定协议类型–tcp—icmp

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

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

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

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

  • –sport:指定源端口

  • –dport:指定目的端口

3.5、iptables的命令格式:

yum -y install iptables iptables-services ##安装防火墙服务
iptables [-t 表名] 管理选项 链名(大写) 匹配条件 [-j 控制类型]

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

1、iptables -vnL ##查看防火墙情况

[root@test1 opt]# iptables -A INPUT -s 192.168.168.10 -p tcp --dport 80 -j REJECT
[root@test1 opt]# iptables -vnL
Chain INPUT (policy ACCEPT 6 packets, 364 bytes)pkts bytes target     prot opt in     out     source               destination         0     0 REJECT     tcp  --  *      *       192.168.168.10       0.0.0.0/0            tcp dpt:80 reject-with icmp-port-unreachable

2、iptables --line-numbers -vnL 查看规则以及显示规则编号

[root@test1 opt]# iptables --line-numbers -vnL
Chain INPUT (policy ACCEPT 65 packets, 3996 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     tcp  --  *      *       192.168.168.10       0.0.0.0/0            tcp dpt:80 reject-with icmp-port-unreachableChain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 41 packets, 3836 bytes)
num   pkts bytes target     prot opt in     out     source               destination 

3、iptables -A 添加规则

1、80端口拒绝连接

iptables -A INPUT -s 192.168.168.20 -p tcp --dport 80 -j REJECT   ##20主机拒绝连接本机80端口[root@test2 ~]# curl 192.168.168.10
curl: (7) Failed connect to 192.168.168.10:80; 拒绝连接curl 测试nginx是否连接

2、拒绝所有其他主机ping主机

[root@test1 opt]# iptables -A INPUT -p icmp -j REJECT

3、允许所有其他主机ping主机

[root@test1 opt]# iptables -A INPUT -p icmp -j ACCEPT
[root@test1 opt]# iptables -vnL
Chain INPUT (policy ACCEPT 26 packets, 1604 bytes)pkts bytes target     prot opt in     out     source               destination         24  2352 REJECT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

每个链中规则都是从上到下的顺序匹配,匹配到之后就不再向下匹配。

如果链中没有规则,则执行链的默认策略。

4、iptables -F----清空规则

5、iptables -I INPUT # 把策略放到指定位置#

[root@test1 opt]# iptables -I INPUT 1 -p icmp -j ACCEPT
[root@test1 opt]# iptables -I INPUT 2 -i ens33 -s 192.168.168.20 -p tcp --dport 80 -j REJECT 
[root@test1 opt]# iptables -I INPUT 1 -p icmp -j ACCEPT 
[root@test1 opt]# iptables -vnL
Chain INPUT (policy ACCEPT 6 packets, 364 bytes)pkts bytes target     prot opt in     out     source               destination         2   168 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           96  8064 REJECT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 6 packets, 584 bytes)pkts bytes target     prot opt in     out     source               destination   

6、拒绝192.168.168.20主机–icmp到本机

[root@test1 opt]# iptables -A INPUT -s 192.168.168.20 -p icmp -j REJECT    ##显示ping不通From 192.168.168.10 icmp_seq=329 Destination Port Unreachable

7、控制类型为-j DROP,丢弃192.168.168.20,192.168.168.30主机–icmp到本机的数据包

iptables -A INPUT -s 192.168.168.20,192.168.168.30 -p icmp -j DROP64 bytes from 192.168.168.10: icmp_seq=367 ttl=64 time=0.524 ms
##直接无反应,停止 

8、iptables -D删除策略,接着上面的策略,删除20icmp控制类型为-j DROP,丢弃192.168.168.20,主机–icmp到本机的数据包

[root@test1 opt]# iptables -D INPUT -s 192.168.168.20 -p icmp -j DROP

9、iptables -R INPUT #修改第#条策略

[root@test1 opt]# iptables -R INPUT 1 -s 192.168.168.20 -p icmp -j REJECT

10、-p tcp --dport 22增加规则–协议在前,端口在后

[root@test1 opt]# iptables -A INPUT -p tcp --dport 22 -j REJECT  #协议在前,端口在后

到终端清空规则,xshell即可重新连接

iptables -F

或者重新启动systemctl reatart iptables/iptales.servers

临时规则重启之后会重置

[root@test1 opt]# iptables -A INPUT -s 192.168.168.20 -p tcp --dport 22 -j REJECT
##拒绝20通过22ssh端口访问10,但是10可以访问20[root@test2 ~]# ssh root@192.168.168.10
ssh: connect to host 192.168.168.10 port 22: Connection refused[root@test1 opt]# iptables -A INPUT -s 192.168.168.20 -p tcp --dport 22 -j REJECT
[root@test1 opt]# ssh root@192.168.168.20
root@192.168.168.20's password: 
Last login: Wed Jun 26 11:26:06 2024 from 192.168.168.11
[root@test2 ~]# [root@test1 opt]# iptables -A INPUT -s 192.168.168.30 -p tcp --dport 22 -j REJECT[root@test3 ~]# ssh root@192.168.168.10
ssh: connect to host 192.168.168.10 port 22: Connection refused[root@test1 opt]# iptables -A INPUT -s 192.168.168.30 -p tcp --dport 22 -j REJECT
[root@test1 opt]# ssh root@192.168.168.30
root@192.168.168.30's password: 
Last failed login: Wed Jun 26 11:44:49 CST 2024 from 192.168.168.10 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Wed Jun 26 11:33:04 2024 from 192.168.168.11
[root@test3 ~]# 

11、nginx端口为80

systemctl restart nginx
vim /usr/share/nginx/html/index.html  ##编辑nginx的访问页面

12、限制30主机访问80端口

[root@test1 opt]# iptables -A INPUT -s 192.168.168.30 -p tcp --dport 80 -j REJECT[root@test3 ~]# curl 192.168.168.10
curl: (7) Failed connect to 192.168.168.10:80; 拒绝连接[root@test2 ~]# curl 192.168.168.10
curl是一个功能强大的命令获取和发送数据curl www.baidu.comcurl 192.168.168.10获取网页内容并且输出-O下载文件到本地-o 将文件下载到指定的路径-x 发送post请求-i 可以获取web软件的版本(服务端没有隐藏版本号)

13、删除INPUT下的规则

iptables -D INPUT 序号
[root@test1 opt]# iptables --line-numbers -vnL
Chain INPUT (policy ACCEPT 163 packets, 13930 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        1    60 REJECT     tcp  --  *      *       192.168.168.20       0.0.0.0/0            tcp dpt:22 reject-with icmp-port-unreachable
2        1    60 REJECT     tcp  --  *      *       192.168.168.30       0.0.0.0/0            tcp dpt:80 reject-with icmp-port-unreachable[root@test1 opt]# iptables -D INPUT 1
[root@test1 opt]# iptables --line-numbers -vnL
Chain INPUT (policy ACCEPT 22 packets, 1356 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        1    60 REJECT     tcp  --  *      *       192.168.168.30       0.0.0.0/0            tcp dpt:80 reject-with icmp-port-unreachable

14、修改INPUT下的策略

iptables -R INPUT #序号
[root@test1 opt]# iptables -R INPUT 1 -s 192.168.168.30 -p tcp --dport 80 -j ACCEPT 
[root@test1 opt]# iptables -vnL
Chain INPUT (policy ACCEPT 6 packets, 364 bytes)pkts bytes target     prot opt in     out     source               destination         0     0 ACCEPT     tcp  --  *      *       192.168.168.30       0.0.0.0/0            tcp dpt:80
@test1 opt]# iptables -vnL
Chain INPUT (policy ACCEPT 283 packets, 17564 bytes)pkts bytes target     prot opt in     out     source               destination         1    60 REJECT     tcp  --  *      *       192.168.168.30       0.0.0.0/0            tcp dpt:80 reject-with icmp-port-unreachable0     0 DROP       tcp  --  *      *       192.168.168.30       0.0.0.0/0            tcp dpt:80[root@test1 opt]# iptables -R INPUT 1 -s 192.168.168.30 -p tcp --dport 80 -j ACCEPT 
[root@test1 opt]# iptables -vnL
Chain INPUT (policy ACCEPT 6 packets, 364 bytes)pkts bytes target     prot opt in     out     source               destination         0     0 ACCEPT     tcp  --  *      *       192.168.168.30       0.0.0.0/0            tcp dpt:800     0 DROP       tcp  --  *      *       192.168.168.30       0.0.0.0/0            tcp dpt:80

15、修改INPUT链本身默认的规则

iptables -P INPUT DROP   ##默认ACCEPT改为DROP
iptables -R INPUT 1 -p tcp --dport 22 -j ACCEPT 
iptables -vnL
Chain INPUT (policy DROP 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
systemctl restart iptables.service  ##重启服务
[root@test1 ~]# systemctl restart iptables.service 
[root@test1 ~]# iptables --line-numbers -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       85  5220 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
5        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

16、iptables -A INPUT -i设置设备

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

网络设备:

首先手动添加网卡设备(网络适配器)[root@test1 opt]# cd /etc/sysconfig/network-scripts/
[root@test1 network-scripts]# cp ifcfg-ens33 ifcfg-ens36
[root@test1 network-scripts]# vim ifcfg-ens36   ##改ip地址
[root@test1 network-scripts]# ifup ens36
[root@test1 network-scripts]# ifconfig 

17、拒绝整个网段连接到本主机

[root@test1 opt]# iptables -A INPUT -s 192.168.168.0/24 -p tcp --dport 80 -j REJECT

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

yum -y install mariadb-server  #安装数据库
iptables -A INPUT -p tcp --dport 80:3306 -j REJECT   #端口从小到大写
iptables -A INPUT -p tcp --dport 22:80:3306 -j REJECT   ##最多写两个
iptables v1.4.21: invalid port/service `80:3306' specified
Try `iptables -h' or 'iptables --help' for more information.

19、-m 扩展模块,可以一次性禁止多端口,ip范围,指定mac地址。

iptables -A INPUT -p tcp -m multiport --dport 80,22,3306 -j REJECT
iptables -A INPUT -p tcp -m iprange --src-range 192.168.60.30-192.168.60.40 --dport 80 -j REJECT
--src-range 源地址池--dst-range 目的地址池-m multiport --sport 源端口池-m multiport --dport  目的端口池-m iprange --src-range  源地址池-m iprange --dst-range  目的地址池

20、mac地址

[root@test1 opt]# iptables -A INPUT -p tcp -m mac --mac-source MAC地址 -j DROP
ip + 协议 + 端口

相关文章:

39 - 安全技术与防火墙

39、安全技术和防火墙 一、安全技术 入侵检测系统:特点是不阻断网络访问,主要是提供报警和事后监督。不主动介入,默默看着你(监控)。 入侵防御系统:透明模式工作,数据包,网络监控…...

Python学习笔记26:进阶篇(十五)常见标准库使用之性能测试cProfile模块学习使用

前言 本文是根据python官方教程中标准库模块的介绍,自己查询资料并整理,编写代码示例做出的学习笔记。 根据模块知识,一次讲解单个或者多个模块的内容。 教程链接:https://docs.python.org/zh-cn/3/tutorial/index.html 本文主要…...

python中类的继承详解

面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展 (1)在类的继承中,存在父类跟子类,子类可以继…...

社交风潮塑造者:探索用户在Facebook的影响力

在当今数字化社会中,Facebook不仅是人们社交互动的主要平台,更是塑造社交风潮和文化趋势的重要力量。本文将从另一个角度深入探讨用户在Facebook上的影响力,探索其如何通过个人行为和互动,影响和改变社会的各个方面。 个人表达和内…...

Kotlin设计模式:代理模式详解

Kotlin设计模式:代理模式详解 在软件开发中,设计模式是解决常见问题的一种优雅方法。本文将介绍Kotlin中的代理模式(Proxy Pattern),其应用场景,以及如何通过实例代码实现这一模式。 代理模式的目的 代理…...

PostgreSQL逻辑备份-pg_dump

1.pg_dump备份恢复 pg_dump 是一个逻辑备份工具。使用 pg_dump 可以在数据库处于使用状态下进行一致 性的备份, 它不会阻塞其他用户对数据库的访问 。 一致性备份是 pg_dump 开始运行时,给数据库打了一个快照,且在 pg_dump 运行过程 中发生…...

UG_NX11.0之Windows11中安装出错及解决方法

UG_NX11.0之Windows11中安装出错及解决方法 文章目录 UG_NX11.0之Windows11中安装出错及解决方法1. 安装出错2. 解决方法1. 设置以兼容性模式运行2. 配置环境变量 3. 再次安装问题解决4. 安装后可删除配置的环境变量(可选) 1. 安装出错 以管理员身份运行Launch.exe,如下 点击D…...

android view 设置过 transalationY/X 后 marginTop/marginStart/Left 不变

在 Android 开发中,当你对一个视图(View)设置了 translationY 属性后,这个视图的 marginTop 属性实际上并不会改变。这是因为 translationY 只会影响视图的绘制位置,而不会改变视图的布局参数。换句话说,translationY 是一个运行时…...

解释在Android中如何实现本地存储,包括SQLite数据库和SharedPreferences。

在Android开发中,本地存储是不可或缺的一部分,它允许应用程序在用户的设备上保存和检索数据。两种常见的本地存储方式是SQLite数据库和SharedPreferences。下面我将从技术难点、面试官关注点、回答吸引力和代码举例四个方面来详细解释如何在Android中实现…...

鸿蒙开发 之 健康App案例

1.项目介绍 该项目是记录用户日常饮食情况,以及针对不同食物摄入营养不同会有对应的营养摄入情况和日常运动消耗情况,用户可以自己添加食品以及对应的热量。 1.1登陆页 1.2饮食统计页 1.3 食物列表页 2.登陆页 2.1自定义弹框 import preferences from oh…...

umi3项目axios 请求参数序列化参数

由于get 请求中有一个日期参数 dates 是一个数组类型。 未处理参数时请求地址是这样的:/api/list?page1&pageSize10&keyWord&dates[]2024-06-10&dates[]2024-06-24 会发现dates后面有中括号,所以前端需要将参数格式处理变成如下:/api…...

js实现数据去重合并

应用场景,一个list,包含已经选择的数据和未选择的数据,新增数据到已选择的数据中。 要考虑到二次选择的数据和已经选择的数据有重复的可能,所以,第一步先从二次选择的数据中进行去重,然后再将两个list进行数…...

[ios逆向]查看ios安装包ipa签名证书embedded.mobileprovision解密 附带解密环境openssl

openssl smime -inform der -verify -noverify -in embedded.mobileprovision 解密embedded.mobileprovision文件 链接:https://pan.baidu.com/s/1UwNOWONKV1SNj5aX_ZZCzQ?pwdglco 提取码:glco –来自百度网盘超级会员V8的分享 可以使用everything 查看…...

tr、cut、split、grep -E

目录 tr命令:替换和删除 cut命令:快速裁剪 split命令:文件拆分 文件合并 面试题 1.现在有一个日志文件,有5个G,能不能快速的打开 2.cat合并和paste合并之间的区别? 3.统计当前主机的连接状态&#…...

《分析模式》漫谈08-单继承不是“唯一继承”

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 《分析模式》第2章这一段: 划线处的single inheritance,2004中译本的翻译: 翻译为“单继承”,是正确的。 2020中译本的翻译&#xff1a…...

c++字典

在C中,“字典”通常指的是std::map或std::unordered_map,它们是标准库中提供的关联容器,用于存储键值对。以下是一些常见的操作示例,包括插入、访问、删除和遍历元素。 使用 std::map std::map 是一种有序的关联容器,键…...

rga_mm: RGA_MMU unsupported Memory larger than 4G!解决

目录 报错完整log如下:解决方案:报错完整log如下: [ 3668.824164] rga_mm: RGA_MMU unsupported Memory larger than 4G! [ 3668.824305] rga_mm: scheduler core[4] unsupported mm_flag[0x0]! [ 3668.824320] rga_mm: rga_mm_map_buffer map dma_buf err...

构建个人文件上传服务:Python Flask实现上传和下载完整指南

介绍 在本教程中,我们将学习如何使用Python Flask框架将文件上传到服务器,并使用SQLite数据库来跟踪上传的文件。我们将提供后端代码和一个示例项目的Git链接,以便您可以轻松地跟随本教程。 准备工作 首先,您需要安装Python和F…...

瓦罗兰特新赛季更新资讯 瓦罗兰特新赛季免费加速器

瓦罗兰特新赛季来喽,这是一款由拳头开发的免费第一人称射击游戏,游戏凭借其独特的玩法和丰富的英雄选择吸引了大量玩家。 我们可以在游戏中选择自己喜欢的角色出场与敌人进行对战,而且每一个角色都有自己独特的道具以及技能,使用好…...

希尔排序的实现

引言 排序在我们生活中十分常见,无论是购物软件中的商品推荐还是名次、排名都与排序算法息息相关。希尔排序是排序中较快的一种,而希尔排序实现的基础是插入排序。 排序的实现 插入排序(以升序为例) 插入排序的原理是从第二个数…...

使用Python selenium爬虫领英数据,并进行AI岗位数据挖掘

随着OpenAI大火,从事AI开发的人趋之若鹜,这次使用Python selenium抓取了领英上几万条岗位薪资数据,并使用Pandas、matplotlib、seaborn等库进行可视化探索分析。 但领英设置了一些反爬措施,对IP进行限制封禁,因此会用到…...

如何在Android应用程序中实现高效的图片加载和缓存机制。

在Android应用程序中实现高效的图片加载和缓存机制 一、技术难点 在Android应用程序中实现高效的图片加载和缓存机制,主要面临以下几个技术难点: 内存管理:Android设备的内存资源有限,如果加载大量高清图片而不进行适当的内存管…...

【机器学习项目实战(二)】基于朴素贝叶斯的中文垃圾短信分类

完整代码、数据集和相应的报告 链接已经放在了正文最下方, 供大家参考学习 摘要 ​ 本文探讨了中文垃圾短信分类的问题,通过收集实际数据集,运用多种机器学习算法进行分类,并对比了不同算法在垃圾短信分类任务上的性能。本研究旨在提高中文垃圾短信的识别准确率,为构建更…...

当用户需求不详细时,如何有效应对

在项目沟通时,用户对需求说明不详细,可能是由于多种原因。以下是一些可能的原因及如何应对这些问题的建议: 1. 用户不完全理解自己的需求 原因: 用户对技术细节不了解,不知道如何具体描述需求。 用户对项目的全局和…...

最新AI智能聊天对话问答系统源码(图文搭建部署教程)+AI绘画,文生图,TTS语音识别输入,文档分析

一、人工智能语言模型和AI绘画在多个领域广泛应用 人工智能语言模型和AI绘画在多个领域都有广泛的应用。以下是一些它们的主要用处: 人工智能语言模型 内容生成 写作辅助:帮助撰写文章、博客、报告、剧本等。 代码生成:自动生成或补全代码&…...

[图解]SysML和EA建模住宅安全系统-02-现有运营领域-块定义图

1 00:00:00,840 --> 00:00:02,440 首先我们来看画在哪里 2 00:00:02,570 --> 00:00:08,310 你看,这是图的类型,图里面内容 3 00:00:08,320 --> 00:00:10,780 这是元素类型 4 00:00:10,790 --> 00:00:14,900 这是位置,哪个包 …...

【vuejs】首次页面加载时触发那些声明周期钩子函数

1. 首次页面加载触发的钩子 在Vue.js中,页面或组件的首次加载会触发一系列预定义的生命周期钩子函数,这些钩子函数按照特定的顺序执行,允许开发者在组件的不同阶段执行代码。以下是首次页面加载时触发的钩子及其作用: 2.1 befor…...

adb热更新

模拟器连接AndroidStudio 解决:adb server version (36) doesnt match this client (40); killing... 1.G:\ProgramFils\android-sdk\platform-tools adb --version 2.H:\yeshen\Nox\bin adb --version 3.把G:\ProgramFils\android-sdk\platform-…...

Nuxt 的路由结构系统(七)

基本路由配置 在 Nuxt.js 中,每个 .vue 文件在 pages/ 目录下都会自动成为一个路由。文件名决定了路由的路径。例如: pages/ |-- index.vue # 映射到根路径 / |-- about.vue # 映射到路径 /about |-- contact.vue # 映射到路径 /conta…...

不使用AMap.DistrictSearch,通过poi数据绘制省市县区块

个人申请高德地图key时无法使用AMap.DistrictSearch,可以通过poi数据绘制省市县区块 1.进入POI数据网站找到需要的省市县,下载对应的GeoJson文件 ,此处为poi数据网站链接 2.​ 处理geoJson数据,可以直接新建json文件,…...

vue+webpack子应用嵌入乾坤框架

首先!不建议用vite,改了两天,无果。 乾坤本就不支持vite,后续要改插件改配置追加前缀,乾坤只能挂载基础节点,但是静态资源以及接口都挂载不上,或许有实现办法,但时间节点很紧&#…...

Oracle中常用内置函数

一、字符串函数 CONCAT(s1, s2):连接两个字符串s1和s2。 SELECT CONCAT(Hello, World) FROM DUAL-- 结果:Hello World --或者使用 || 操作符 SELECT Hello || World FROM DUAL -- 结果:Hello World INITCAP(s):将字符串s…...

餐饮冷库安全守护神:可燃气体报警器检定的科学性与有效性

随着餐饮业的快速发展,冷库成为储存食材、保证食品质量的重要场所。 然而,由于冷库环境的特殊性,如密封性强、温度低、湿度大等,一旦冷库内发生可燃气体泄露,后果将不堪设想。因此,在餐饮冷库中安装并合理…...

中国能源统计年鉴(1986-2023年)

数据年份:1986-2023年,无1987、1988、1990三年,1991-2023年齐 数据格式:pdf、excel 数据内容:《中国能源统计年鉴》是一部反映中国能源建设、生产、消费、供需平衡的权威性资料书。 共分为7个篇章:1.综合&a…...

摄像头画面显示于unity场景

🐾 个人主页 🐾 🪧阿松爱睡觉,横竖醒不来 🏅你可以不屠龙,但不能不磨剑🗡 目录 一、前言二、UI画面三、显示于场景四、结语 一、前言 由于标题限制,这篇文章主要是讲在unity中调用摄…...

Double 4 VR智能仿真教学系统在国际邮轮乘务管理专业课堂上的应用

随着科技的不断发展,虚拟现实技术(VR)在教育领域的应用越来越广泛。国际邮轮乘务管理专业作为一门实践性较强的专业,传统的课堂教学方法已经无法满足学生的需求。因此,将Double 4 VR智能仿真教学系统应用于国际邮轮乘务…...

QSPI四线SPI:D0、D1、D2、D3

在SPI(串行外设接口)通信中,D0、D1、D2、D3通常指的是数据线,也叫做数据引脚或通道。这些引脚的使用可能会根据具体设备或配置的不同而有所变化。 标准的SPI通信接口通常包含以下四个主要引脚: MOSI(Master…...

vue3通过vue-video-player实现视频倍速、默认全屏、拖拽进度条等功能

效果图: 1、场景: js原生的video标签在不同浏览器及不同型号手机上都展示的不一样,一部分没有倍速,一部分没有全屏等功能,为了统一视频播放的交互功能,使用vue-video-player插件来完成,vue-vid…...

微信小程序 点击左上角返回弹窗提示

业务需求:当页面表单没有提交直接返回时,要提示用户是否保存当前信息,如果已经提交就不提示了。 由于微信小程序是无法监听右上角按钮返回事件。 所以就换个思路 小程序提供了如下两个Api wx.enableAlertBeforeUnload(Object object)&…...

openEuler 22.03 (LTS-SP1)服务器用ntpd同步GPS时间服务器的案例

本文记录了openEuler 22.03 (LTS-SP1)的二级时间服务器用chronyd不能自动同步GPS时间服务器,改用ntpd同步GPS时间服务器成功的案例 一、环境简述 1、本环境中有两台GPS一级时间服务器,IP如下: 192.168.188.66 192.168.188.74 2、有一台o…...

Git的安装以及使用

一.简单介绍 1.1版本控制 版本控制是指对软件开发过程中各种程序代码,配置文件及说明文档等文件变更管理,是软件配置管理的核心思想之一。 版本控制最重要的内容是追踪文件的变更,它将什么时候,什么人更改了文件的什么内容等信息忠实的记录…...

双路视频同屏显示(拼接)-基于野火Zynq7020开发板

前情提要 米联客FDMA驱动OV5640摄像头—基于野火Zynq7020开发板 本文在此基础上,实现了双路视频拼接。将ov5640输出的1024600的图像数据缩放为512600,分两路写入ddr3,并且显示在1024*600的RGB屏幕中。 纯FPGA也可以按此方法实现。 总体BLOC…...

ForkJoinPool浅析

一,概述 相比传统的线程池ExecuteService,ForkJoinPool的优势在于能采用分治算法、工作窃取算法高效利用CPU资源,如下图 Fork即拆分,Join即合并, 通过将大任务拆分成多个小任务,在多个线程中执行后,合并结果即可得到大任务的结果,经典的例子有归并排序、超大数组求和…...

【AI-小米机器狗】Dockerfile包含SSH和SFTP

通过这些步骤,可以在docker容器中安装运行SSH和SFTP服务,设置ssh和sftp的密码,克隆指定的Git仓库到/home目录,并使用bash作为入口点, # 基于原始镜像 FROM cyberdog_sim:v1# 更新包列表并安装OpenSSH服务器和git RUN …...

仿真CAN报文发送的CRC校验算法(附CAPL代码)

文章目录 前言一、为什么CAN报文有CRC?二、怎么确定是否需要做CRC校验?三、CAPL代码实现CRC算法 前言 关于CRC校验的基本理论、算法实现网上已经有很多介绍文章,本文不再赘述。只是记录在项目测试中真正开发CRC算法并进行测试的一些体会。 …...

如何在Android应用中最佳实现“Edge to Edge“特性?

Edge to Edge"特性 要在Android应用中最佳实现"Edge to Edge"特性,可以按照以下步骤进行操作: 1. 设置目标版本:将应用的目标版本设置为Android Q或更高版本。在build.gradle文件中,将targetSdkVersion设置为Q。 2. 设置主题样式:在styles.xml文件中,创…...

多租户与低代码开发的应用:解锁企业数字化转型的无限可能

在数字化转型的浪潮中,多租户与低代码开发已经成为推动企业快速、灵活、安全地构建和部署应用的关键技术。本文将深入探讨这两种技术的结合如何为企业带来前所未有的变革和机遇。 多租户架构:资源共享与隔离的艺术 多租户架构,是一种高级的软…...

出现身份验证错误,无法连接到本地安全机构 顺利解决这个问题希望能帮助大家

出现身份验证错误,无法连接到本地安全机构,远程计算机:XX,这可能是由于密码过期,如果密码已过期请更新密码。 我们可以在系统属性中对远程进行设置,以解决远程桌面无法连接到本地安全机构这一问题。 步骤…...

老师把卷子拍成图片如何打印

如今,老师们经常会把试卷、习题拍成图片分享给学生(如通过微信群或钉钉群的形式)。但随之而来的问题是,这些图片如何方便地打印出来呢?尤其是当面对一张张精美的试卷图片时,许多学生和家长都感到头疼。 一…...

MySQL数据库(三):读取数据库数据

上一节,我们介绍了数据库的基本操作,以及最后演示了如何使用库来连接数据库,在实际应用中,我们通常需要按照指定的条件对数据库进行操作,即增删改查操作,这是非常重要的!这一节我们继续通过一个…...

【机器学习】基于密度的聚类算法:DBSCAN详解

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 基于密度的聚类算法:DBSCAN详解引言DBSCAN的基本概念点的分类聚类过…...

软件运维服务方案(Word原件2024)

软件运维服务方案(Word原件) 1. 服务简述 我们提供全面的软件运维服务,确保软件系统的稳定运行。 1.1 服务内容 包括监控、维护、故障排查与优化。 1.2 服务方式 结合远程与现场服务,灵活响应客户需求。 1.3 服务要求 高效响应&am…...

昇思25天学习打卡营第10天|ResNet50迁移学习

文章目录 昇思MindSpore应用实践基于MindSpore的ResNet50迁移学习1、迁移学习简介2、加载ImageNet数据集数据集可视化 3、ResNet50 模型4、模型训练固定特征进行训练 5、模型推理 Reference 昇思MindSpore应用实践 本系列文章主要用于记录昇思25天学习打卡营的学习心得。 基于…...

vscode jupyter选择Python环境时找不到我安装的Python

在一些情况下,我们需要自己安装一个Python,在选择内核是可能找不到指定的Python版本, 再次打开内核选择页面就能看到Python环境了 注意先到指定环境下安装依赖包: ./python3 pip install ipykernel notebook jupyter...

Java需要英语基础吗?

Java编程语言本身并不要求必须有很强的英语基础,因为Java的语法和逻辑是独立于任何特定语言的。我收集归类了一份嵌入式学习包,对于新手而言简直不要太棒,里面包括了新手各个时期的学习方向编程教学、问题视频讲解、毕设800套和语言类教学&am…...

探索区块链:颠覆性技术的崛起

目录 一、引言 二、区块链技术概述 三、区块链应用场景 四、区块链面临的挑战 五、区块链的未来展望 六、结语 一、引言 在数字化浪潮的推动下,区块链技术以其独特的去中心化、透明性和不可篡改性等特性,正在逐步改变我们的生活。从金融领域到供应…...

2141.4km!星纪元ET全球上市,18.98万元起

5月9日,星纪元ET正式全球上市,共推出8个版型,分别为增程系列:Plus 18.98万元、Pro 20.58万元、Pro+22.58万元,以及纯电系列:Pro22.98万元、Pro四驱23.98万元、Pro城市智驾24.98万元、Max 27.98万元、Ultra 31.98万元。官方还同步公布置换礼、金融礼等多重上市权益豪礼,并将…...

C语言 指针——指针变量的定义、初始化及解引用

目录 指针 内存如何编址? 如何对变量进行寻址? 用什么类型的变量来存放变量的地址? 如何显示变量的地址?​编辑 使用未初始化的指针会怎样? NULL是什么? 如何访问指针变量指向的存储单元中的数据? 指针变量的…...

基于广义极大极小凹惩罚的心电信号降噪方法(MATLAB R2021B)

凸优化是数学最优化的一个子领域,研究定义于凸集中的凸函数最小化问题。由于心电信号降噪的过程可以理解为求信号的稀疏近似解,因此基于凸优化和稀疏性表达的去噪方法可用于心电信号处理。在凸优化的数学模型中,惩罚项的选取对最终结果会产生…...

新品发布(仓库小助手)一机在手,轻松无忧

你是否曾为繁琐的货物管理而烦恼? 你是否为了记录货物信息忙前忙后? 近几年,陆续有收到客户在运营跨境代购中的一些反馈,特别是仓库管理这块,比如包裹的出入库、移库、修改包裹信息等,都需要在电脑上完成&…...

电脑同时配置两个版本mysql数据库常见问题

1.配置时,要把bin中的mysql.exe和mysqld.exe 改个名字,不然两个版本会重复,当然,在初始化数据库的时候,如果时57版本的,就用mysql57(已经改名的)和mysqld57 代替 mysql 和 mysqld 例如 mysql -u root -p …...

转行公务员--省考面试87+,我是如何做到的

文章目录 本人经历了两年省考。第一年第二年 一、破模版二、别让金句成为你的负担三、别背四、写逐字稿五、多练六、多参加考试 本人经历了两年省考。 第一年 面试80出头,翻了3个人,无奈笔试太拉胯,最后差0.6分惜败。 第二年 在笔试备考期…...