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

iptables网络安全服务详细使用

iptables防火墙概念说明

开源的基于数据包过滤的网络安全策略控制工具。

centos6.9  --- 默认防火墙工具软件iptables

centos7    --- 默认防火墙工具软件firewalld(zone)

iptables主要工作在OSI七层的二、三、四层,如果重新编译内核,iptables也可以支持7层控制(squid代理+iptables)。

iptables工作流程(规则匹配流程)

iptables是采用数据包过滤机制工作的,所以它会对请求的数据包的包头数据进行分析,并根据我们预先设定的规则进行匹配来决定是否可以进入主机。

iptables工作流程小结

1、防火墙是一层层过滤的。实际是按照配置规则的顺序从上到下,从前到后进行过滤的。

2、如果匹配上了规则,即明确表明是阻止还是通过,此时数据包就不在向下匹配新规则了。

3、如果所有规则中没有明确表明是阻止还是通过这个数据包,也就是没有匹配上规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。

4、防火墙的默认规则是对应链的所有的规则执行完以后才会执行的(最后执行的规则)。

 iptables四表五链概念

表(tables)

链(chains)

Filter

This is the default table (if no -t option is passed) 这是默认表

INPUT

for packets destined to local sockets

对于指定到本地套接字的包,即到达本地防火墙服务器的数据包

FORWARD

for packets being routed through the box

路由穿过的数据包,即经过本地防火墙服务器的数据包

OUTPUT

for locally-generated packets

本地创建的数据包

NAT

This table is consulted when a packet that creates a new connection is encountered 当遇到新创建的数据包连接时将参考这个表

PREROUTING

for altering packets as soon as they come in

一进来就对数据包进行改变

OUTPUT

or altering locally-generated packets before routing

本地创建的数据包在路由之前进行改变

POSTROUTING

for altering packets as they are about to go out

在数据包即将出去时改变数据包信息

Managle

This table is used for specialized packet alteration

这个表专门用于改变数据包

INPUT

for packets coming into the box itself

进入到设备本身的包

FORWARD

for altering packets being routed through the box

对路由后的数据包信息进行修改

PREROUTING

for altering incoming packets before routing

在路由之前更改传入的包

OUTPUT

for altering locally-generated packets before routing

本地创建的数据包在路由之前进行改变

POSTROUTING

for altering packets as they are about to go out

在数据包即将离开时更改数据包信息

raw

此表用处较少,可以忽略不计

 四表

filter    (作用:主机防火墙) 默认的表。*****
nat        (作用:端口或IP映射或共享上网)*****
mangle    (配置路由标记 ttl tos mark)
raw        (忽略)

iptables的几个表以及每个表对应链的作用

filter表(默认的表,作用:主机防火墙)INPUT:进入主机的数据包OUTPUT:本地创建的数据包FORWARD:路由穿过的数据包,即经过本地防火墙服务器的数据包NAT表(作用:端口或IP映射或共享上网)PREROUTING:一进来就对数据包进行改变OUTPUT:本地创建的数据包在路由之前进行改变POSTROUTING:在数据包即将出去时改变数据包信息mangle表(配置路由标记 ttl tos mark)INPUT:进入到设备本身的包FORWARD:对路由后的数据包信息进行修改PREROUTING:在路由之前更改传入的包OUTPUT:本地创建的数据包在路由之前进行改变POSTROUTING:在数据包即将离开时更改数据包信息

filter表信息详细介绍

filter表

强调:主要和主机自身相关,真正负责主机防火墙功能的(过滤流入流出,流经主机的数据包)filter表示iptables默认使用的表,这个表定义了三个链(chains )

企业工作场景:主机防火墙

INPUT

负责过滤所有目标地址是本机地址的数据包

通俗来说:就是过滤进入主机的数据包

FORWARD

负责转发流经主机的数据包。起转发的作用,和NAT关系很大,后面会详细介绍 LVS NAT 模式,net ipv4.ip_forward=l

OUTPUT

处理所有源地址是本机地址的数据包

通俗的讲:就是处理从主机发出去的数据包

 NAT表信息详细介绍

NAT表

负责网络地址转换的,即来源与目的IP地址和port的转换。

应用:和主机本身无关,一般用于局域网共享上网或者特殊的端□转换服务相关。

工作场票:

1.   用于企业路由(zebra )或网关(iptables),共享上网(POSTROUTING)

2.   做内部外部IP地址一对一映射(dmz),硬件防火墙映射IP到内部服务器,ftp服务(PREROUTING )

3.   WEB,单个端口的映射,直接映射80端口( PREROUTING )这个表走义了3个链,nat功能相当于网络的acl控制。和网络交换机acl类似。

OUTPUT

和主机放出去的数据包有关,改变主机发出数据包的目的地址。

PREROUTING

在数据包到达防火墙时,进行路甶判断之前执行的规则,作用是改变数据包的目的地址、目的端□等就是收信时,根据规则重写收件人的地址。

例如:把公网IP : XXX.XXX.XXX.XXX映射到局域网的XX.XX.XX.XX服务器上。

如果是web服务,可以报80转换为局域网的服务器9000端□上

POSTROUTING

在数据包离开防火墙时进行路由判断之后执行的规则,作用改变数据包的源地址,源端口等。

写好发件人的地址,要让家人回信时能够有地址可回。

例如。默认笔记本和虚拟机都是局域网地址,在出网的时候被路甶器将源地址改为了公网地址。

生产应用:局域网共享上网。

iptanles企业应用场景

1、主机防火墙(filter表的INPUT链)。

2、局域网共享上网(nat表的POSTROUTING链)。半个路由器,NAT功能。

3、端口及IP映射(nat表的PREROUTING链),硬防的NAT功能。

4、IP一对一映射。

回到顶部

iptables工作原理

iptables基本语法

-I(大写i  插入) -A(追加) -R(替换) -D(删除) -L(列表显示)

-I将会把规则放在第一行,-A将会放在最后一行。

例子:

iptables –t filter  -A INPUT  -p  tcp  --dport  22  -j DROP    
iptables –t filter  -A INPUT  -p  tcp  --dport  3306  -j DROP
iptables –t filter  -I  INPUT  -p  tcp  --dport  80  -j DROP   
说明:前两句就算是先执行,第三句也会是第一行  
查看防火墙规则

-L         查看iptables控制策略列表信息

-n              查看iptables控制策略列表里面的ip地址和端口信息,不翻译,以数字表示

--line-number       查看iptables策略信息时,显示每条规则序号信息

-v             查看iptables策略详细信息(进出口)

[root@iptables ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination  
清除防火墙规则

-F             清除所有规则,不会处理默认的规则

-X             删除用户自定义的链

-Z             清除链的计数器(数据包计数器与数据包字节计数器)

其余参数

-A            向指定链添加相应规则,默认从规则号结尾进行添加(添加最后)

-I             向指定链中插入规则,默认插入到第一条规则之上

-p              指定访问数据的协议类型(tcp、udp、icmp)

--dport      指定目标端口信息

--sport       指定源端口信息

-j               执行操作的动作(ACCEPT、DROP(丢弃)、REJECT(拒绝))

-D             删除指定链里面的规则策略

-i               指定数据流量进入接口信息(只能配置在INPUT链)

-o              指定数据流量流出接口信息(只能配置在OUTPUT链)

-s              指定数据流量源地址或网段信息

-d              指定数据流量目标地址或网段信息

!               表示控制策略取反

-m            表示增加扩展匹配功能

参数说明

禁止10.0.0.0网段连入:

iptables -t filter -A INPUT -i eth0 -s 10.0.0.0/24 -j DROP 
可以不指定 -t filter 因为默认就是filter表

-i:流量进入的接口(从eth0进入)

-s:源地址

源地址不是10.0.0.150的单个IP的禁止连接:

iptables -t filter -A INPUT -i eth0 !-s 10.0.0.150 -j DROP

禁用icmp协议:

iptables -t filter -A INPUT -p icmp --icmp-type 8 -i eth0 -s 10.0.0.0/24 -j DROP

禁止访问响应服务端口:

     以22端口为例

iptables -A INPUT -p tcp --dport 22 -j DROP       在默认表中的INPUT链中追加策略:禁止22端口访问

删除某规则:

iptables -D INPUT -p tcp --dport 22 -j ACCEPT   --- 删除指定规则
iptables -D INPUT 2     --- 根据规则行号,删除相应的规则

禁止网段连入:

    例子:禁止192.168.17.0网段访问10.0.0.7主机

iptables -A INPUT  -s 192.168.17.0/24 -d 10.0.0.7 -j DROP 

   例子:禁止某个192.168.17.0网段不能访问服务器主机的22端口

iptables -A INPUT -s 192.168.17.0/24 -d 10.0.0.7 -p tcp --dport 22 -j DROP

匹配指定协议以外的所有协议:

    ! 表示取反

iptables -A INPUT ! –p tcp –s 10.0.0.0/24 -j DROP     centos6写法
-p ! tcp      centos5写法

设置连续多端口控制策略:

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

设置不连续多端口控制策略:

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

-m      --- 表示增加扩展匹配功能  multiport   实现不连续多端口扩展匹配

对网络数据传输进行限速:

iptables -I INPUT -s 10.0.0.7 -p icmp --icmp-type 8 -m limit --limit 6/min --limit-burst 5 -j ACCEPT
iptables -I INPUT -s 10.0.0.7 -p icmp --icmp-type 8 -j DROP--limit n/{second/minute/hour}:
解释:指定时间内的请求速率”n”为速率,后面为时间分别为:秒 分 时--limit-burst [n]
解释:在同一时间内允许通过的请求”n”为数字,不指定默认为5

企业级防火墙部署案例

两种思想:对于默认策略为允许状态,防火墙规则就相当于黑名单;对于默认策略为禁止状态,防火墙规则就相当于白名单。

首先清空默认规则,然后设置远程连接规则,防止自己被踢出,更改默认规则

iptables -F
iptables -X
iptables -Z
iptables -A INPUT -p tcp --dport 22 -j ACCEPT   --- 防止被踢出门外
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

被指安全白名单策略

iptables -A INPUT -i lo -j ACCEPT     --- 让自己可以ping自己
iptables -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT    --- 允许哪些网站服务可以访问
iptables -A INPUT -s 172.16.1.0/24 -j ACCEPT     --- 允许架构内部服务进行访问
iptables -A INPUT -s 10.0.0.0/24 -j ACCEPT       --- 允许一些合作企业的外网服务器进行访问

这几条就是最简单的企业防火墙部署

防火墙配置永久生效方法

第一种方式
[root@iptables ~]# /etc/init.d/iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
[root@iptables ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Wed Jan 17 16:12:23 2018
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [82:9632]
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT 
-A INPUT -s 172.16.1.0/24 -j ACCEPT 
COMMIT
# Completed on Wed Jan 17 16:12:23 2018
第二种方式
iptables-save >/etc/sysconfig/iptables

状态机制配置

# 允许关联的状态包通过(web服务不要使用FTP服务)

NEW

new说明这个包是我们看到的第一个包,意思就是,这是conntrack模块看到的某个连接的第一个包,它即将被匹配了。比如,我们看到一个SYN包,是我们所留意的连接的第一个包,就要匹配它。

表示新建立连接的数据包状态

ESTABLISHED

ESTABLISHED已经注意到两个方向上的数据传输,而且会继续匹配这个连接的包。处于ESTABLISHED状态的连接是非常容易理解的。只要发送并接到应答,连接就是ESTABLISHED的了。一个连接要从new变为ESTABLISHED,只需要接到应答包即可,不管这个包是发往防火墙的,还是要由防火墙转发的。ICMP的错误和重定向信息包也被看作是ESTABLISHED,只要他们是我们所发出的信息的应答。

表示新建立连接数据包发送之后,回复响应的数据包状态

RELATED

RELATED是个比较麻烦的状态,当一个连接和某个已处于ESTABLISHED状态的连接有关系时,就会被认为是RELATED的了。换句话说,一个连接要想是RELATED的,首先要有一个ESTABLISHED的连接。这个ESTABLISHED连接再产生一个主连接之外的连接,这个新的连接就是RELATED的了,当然前提是conntarck模块要能理解RELATED。

表示借助已经建立的链路,发送新的连接数据包

INVALID

INVALID说明数据包不能被识别属于哪个连接或没有任何状态。有几个原因可以产生这种情况,比如,内存溢出,收到不知属于哪个连接的ICMP错误信息。一般地,我们DROP这个状态的任何东西,因为防火墙任务这是不安全的东西。

无效无法识别的数据包

 

防火墙服务配置在FTP服务器上时,需要配置以下策略

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables NAT实践过程

配置内网服务器利用iptables服务器外网网卡上网

route add default gw 172.16.1.200    --- 首先在内网服务器设置网关(网关为拥有外网网卡的防火墙服务器内网地址)

在防火墙服务器开启路由转发功能

[root@iptables ~]# vim /etc/sysctl.conf
[root@iptables ~]# sysctl -p
net.ipv4.ip_forward = 1

实现内网访问外网的NAT映射

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.200
-s 172.16.1.0/24            --- 指定将哪些内网网段进行映射转换
-o eth0                     --- 指定在共享上网哪个网卡接口上做NAT地址转换
-j SNAT                     --- 将源地址进行转换变更
-j DNAT                     --- 将目标地址进行转换变更
--to-source ip地址           --- 将源地址映射为什么IP地址
--to-destination ip地址      --- 将目标地址映射为什么IP地址

iptables实现外网IP的端口映射到内网IP的端口

需求:将网关的IP和9000端口映射到内网服务器的22端口

端口映射 10.0.0.88:9000 -->172.16.1.8:22

实现命令:

iptables -t nat -A PREROUTING -d 10.0.0.88 -p tcp --dport 9000 -i eth0 -j DNAT --to-destination 172.16.1.8:22
-d 10.0.0.8目标地址
-j DNAT 目的地址改写

效果:连接88服务器的9000端口,会自动跳转连接到8服务器的22端口

[e:\~]$ ssh 10.0.0.88 9000Connecting to 10.0.0.88:9000...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.Last login: Wed Jan 17 09:48:56 2018 from 172.16.1.88
[root@web01 ~]#
网络安全学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

需要网络安全学习路线和视频教程的可以在评论区留言哦~

最后
  • 如果你确实想自学的话,我可以把我自己整理收藏的这些教程分享给你,里面不仅有web安全,还有渗透测试等等内容,包含电子书、面试题、pdf文档、视频以及相关的课件笔记,我都已经学过了,都可以免费分享给大家!

给小伙伴们的意见是想清楚,自学网络安全没有捷径,相比而言系统的网络安全是最节省成本的方式,因为能够帮你节省大量的时间和精力成本。坚持住,既然已经走到这条路上,虽然前途看似困难重重,只要咬牙坚持,最终会收到你想要的效果。

黑客工具&SRC技术文档&PDF书籍&web安全等(可分享)

结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

特别声明:
此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失

相关文章:

iptables网络安全服务详细使用

iptables防火墙概念说明 开源的基于数据包过滤的网络安全策略控制工具。 centos6.9 --- 默认防火墙工具软件iptables centos7 --- 默认防火墙工具软件firewalld(zone) iptables主要工作在OSI七层的二、三、四层,如果重新编译内核&…...

MiC建筑引领未来:中建海龙的探索与实践

随着全球城市化进程的加速推进,建筑行业正面临着前所未有的挑战与机遇。如何高效、环保地建造高质量的建筑,成为了行业内外普遍关注的焦点。在此背景下,MiC(Modular Integrated Construction,模块化集成建筑&#xff0…...

清华精品资料:DeepSeek从入门到精通、DeepSeek赋能职场

今天电脑天空给大家推荐2份清华大学专家编写的DeepSeek的使用手册,分别是《DeepSeek从入门到精通》和《DeepSeek赋能职场》。 《DeepSeek从入门到精通》是一本系统化的技术指南,旨在帮助用户从零基础到精通掌握通用人工智能模型DeepSeek的核心功能与应用…...

Nginx进阶篇 - nginx多进程架构详解

文章目录 1. nginx的应用特点2. nginx多进程架构2.1 nginx多进程模型2.2 master进程的作用2.3 进程控制2.4 worker进程的作用2.5 worker进程处理请求的过程2.6 nginx处理网络事件 1. nginx的应用特点 Nginx是互联网企业使用最为广泛的轻量级高性能Web服务器,其特点是…...

SpringBoot初始化8个常用方法

在 Spring Boot 中,初始化方法通常是在应用程序启动时被调用的,可以用来执行应用启动时的一些准备工作。以下是几种常见的初始化方法: 一、顺序 1. 图解 ┌─────────────────────────────┐│ Spring Boot…...

boolen盲注和时间盲注

获取当前数据库名 import requestsdef inject_database(url):namemax_length20low{a: 97, z: 122, A: 65, Z: 90, 0: 48, 9: 57, _: 95}high{97: a, 122: z, 65: A, 90: Z, 48: 0, 57: 9, 95: _}for i in range(1, max_length 1):low_val32high_val122while low_val < hi…...

CTF-web:java-h2 堆叠注入rec -- N1ctf Junior EasyDB

代码存在sql注入 // 处理登录表单的POST请求PostMapping({"/login"})public String handleLogin(RequestParam String username, RequestParam String password, HttpSession session, Model model) throws SQLException {// 验证用户凭据if (this.userService.valid…...

TUSB422 MCU 软件用户指南

文章目录 TUSB422 MCU 软件用户指南 目录表格图表1. 介绍2. 配置2.1 通用配置2.2 USB-PD 3.0 支持2.3 VDM 支持 3. 代码 ROM/RAM 大小优化4. 通过 UART 调试4. 移植到其他微控制器 TUSB422 MCU 软件用户指南 摘要 本文档是 TUSB422 微控制器基于 Type-C 端口控制&#xff08;…...

BUU37 [DASCTF X GFCTF 2024|四月开启第一局]web1234100

Hint1&#xff1a;本题的 flag 不在环境变量中 Hint2&#xff1a;session_start&#xff08;&#xff09;&#xff0c;注意链子挖掘 题目&#xff1a; 扫描出来www.zip class.php <?phpclass Admin{public $Config;public function __construct($Config){//安全获取基…...

常见的排序算法:插入排序、选择排序、冒泡排序、快速排序

1、插入排序 步骤&#xff1a; 1.从第一个元素开始&#xff0c;该元素可以认为已经被排序 2.取下一个元素tem&#xff0c;从已排序的元素序列从后往前扫描 3.如果该元素大于tem&#xff0c;则将该元素移到下一位 4.重复步骤3&#xff0c;直到找到已排序元素中小于等于tem的元素…...

vue学习9

1.文章分类页面-element-plus表格 基本架子-PageContainer封装 按需引入的彩蛋&#xff0c;components里面的内容都会自动注册 用el-card组件&#xff0c;里面使用插槽或具名插槽 文章分类渲染 & loading处理 序号&#xff1a; <el-table-column type"index"…...

TDengine 性能测试工具 taosBenchmark

简介工具获取运行 无参数模式命令行模式配置文件模式 命令行参数配置文件参数 通用配置参数写入配置参数 数据库相关超级表相关标签列与数据列写入行为相关 查询配置参数 执行指定查询语句查询超级表 订阅配置参数数据类型对照表 配置文件示例 写入 JSON 示例查询 JSON 示例订阅…...

【xdoj离散数学上机】T283

递归函数易错&#xff1a; 防止出现递归死循环&#xff01; 题目 题目&#xff1a;求诱导出的等价关系的关系矩阵 问题描述 给定有限集合上二元关系的关系矩阵&#xff0c;求由其诱导出的等价关系的关系矩阵。 输入格式 第一行输入n&#xff0c;表示矩阵为n阶方阵&#xff0c…...

Javaweb中,使用Servlet编写简单的接口

案例&#xff1a;网页提交用户名和密码信息&#xff0c;后端校验密码长度需在6-12位之间 后端部分 WebServlet("/valid") public class SimpleServlet extends HttpServlet{public void service(HttpServletRequest req, HttpServletResponse resp) throws IOExcepti…...

GESP5级语法知识(十):初级数论(三)

埃氏筛法&#xff1a; #include <iostream> using namespace std; const int N1e61; int pri[N]; void prime(int n){for(int i2;i*i<n;i){if(pri[i]0){ // 如果i为素数for(int jii;j<n;ji){pri[j]1; // 将i的倍数标记为合数}}} } int main(){int n;cin>>n;…...

“PEP 8: W292 no newline at end of file“报错 IntelliJ IDEA自动添加空行问题

"PEP 8: W292 no newline at end of file"报错 IntelliJ IDEA自动添加空行问题 在使用IntelliJ IDEA的过程中&#xff0c;经常会发现不管是对于代码文件或者纯文本文件&#xff0c;在保存时中会在文件末尾加上一个空行&#xff0c;提交GIT对比检查时&#xff0c;总是…...

ComfyUI工作流 FluxRedux基础换装

文章目录 FluxRedux基础换装SD模型Node节点工作流程效果展示开发与应用FluxRedux基础换装 该工作流的目标是实现服装换装功能,利用多种深度学习模型和图像处理技术,通过用户输入的服装图像和模特图像,生成逼真的换装效果图。整个工作流涵盖了从图像加载、模型编码、条件生成…...

【机器学习】常见采样方法详解

在机器学习领域&#xff0c;数据采样&#xff08;Sampling&#xff09;是一项至关重要的技术。它不仅影响模型的训练效率&#xff0c;还直接关系到模型的性能与泛化能力。本文将从基础概念出发&#xff0c;逐步深入介绍机器学习中常见的采样方法&#xff0c;帮助读者全面理解并…...

使用瑞芯微RK3588的NPU进行模型转换和推理

使用边缘设备进行算法落地时&#xff0c;通常要考虑模型推理速度&#xff0c;NVIDA系列平台可以使用TensorRT和CUDA加速&#xff0c;瑞芯微RK3588的板子上都是Arm的手机GPU&#xff0c;虽然没有类似CUDA的加速计算方式&#xff0c;但是提供了NPU进行加速推理&#xff0c;本文说…...

Flutter项目试水

1基本介绍 本文章在构建您的第一个 Flutter 应用指导下进行实践 可作为项目实践的辅助参考资料 Flutter 是 Google 的界面工具包&#xff0c;用于通过单一代码库针对移动设备、Web 和桌面设备构建应用。在此 Codelab 中&#xff0c;您将构建以下 Flutter 应用。 该应用可以…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...