防火墙Firewalld(iptables)

news2024/11/25 10:27:51

目录

一、Linux防火墙基础

1.什么是防火墙

2.防火墙的功能

3.防火墙的类型

二、Linux防火墙工具

1.iptables

2. netfilter

3.四表五链结构

3.1四表

3.2五链

3.3总结

4.数据包过滤的匹配流程 

4.1规则表之间的顺序

4.2规则链之间的顺序 

4.3规则链内的匹配顺序

4.4数据包在防火墙中的匹配流程

4.5匹配流程通俗易懂 

三、编写防火墙规则 

1.iptables的安装

2.iptables的基本语法

3. 数据包的常见控制类型

4. iptables命令的常用管理选项

4.1iptables各字段解读

5.iptables规则的使用

5.1查看规则列表

5.2添加规则

5.3删除、清除规则

5.4设置默认策略

6.防火墙规则匹配

6.1通用匹配

6.2隐含匹配

6.3显示匹配

四、两个策略及应用

1.SNAT

2.DNAT

五、firewalld

1.firewalld与iptables的区别

2.firewalld区域 

3. firewalld数据处理流程

4. firewalld防火墙的配置方法


一、Linux防火墙基础

1.什么是防火墙

防火墙是一种网络安全设备或软件,旨在监控和控制网络流量,保护计算机和网络系统免受未授权访问、恶意攻击和其他安全威胁。防火墙通过一组定义好的安全规则来决定哪些网络流量可以进入或离开网络

Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制。属于典型的包过滤防火墙。Linux系统的防火墙体系基于内核编码实现,具有非常稳定的性能和极高的效率,因此获得广泛的应用

2.防火墙的功能

(1)包过滤

根据数据包的源IP地址、目标IP地址、源端口、目标端口、协议类型等条件来允许或拒绝网络数据包
(2)状态检测

监控网络连接的状态(如已建立、相关的连接),并基于连接状态决定是否允许流量通过。例如,允许已建立的连接通过,而阻止新的连接请求
(3)网络地址转换(NAT)

允许内部网络使用私有IP地址,并通过公共IP地址访问外部网络,从而隐藏内部网络结构
(4)访问控制

限制内部用户访问外部网络的某些服务或网站
(5)日志记录和警报

记录所有通过防火墙的流量,并在检测到异常行为时生成警报

3.防火墙的类型

网络防火墙位于网络边界,用于保护整个网络。通常是硬件设备,但也可以是运行在网络设备上的软件
主机防火墙安装在单个主机(如服务器或个人计算机)上,用于保护该主机。通常是软件形式
应用层防火墙能够检查应用层数据(如HTTP、FTP等)并基于应用层协议规则进行过滤
代理防火墙充当客户端与服务器之间的中介,检查和过滤通过它的所有流量

二、Linux防火墙工具

1.iptables

iptables是Linux操作系统中的一个用户空间工具,用于配置、管理和维护网络防火墙规则。它通过内核的网络子系统来过滤和控制进出网络的数据包

属于“用户态”(User Space, 又称为用户空间)的防火墙管理体系

iptables的工作原理:

通过定义规则来决定如何处理数据包,从而实现网络流量的控制和保护

2. netfilter

是linux内核的一个子系统。Netfilter采用模块化设计,具有良好的可扩充性,提供扩展各种网络服务的结构化底层框架。Netfilter与IP协议栈是无缝契合,并允许对数据报进行过滤、地址转换、处理等操作

属于“内核态”又称内核空间(kernel space)的防火墙功能体系

3.四表五链结构

3.1四表

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

3.2五链

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

3.3总结

规则表

表的作用:容纳各种规则链

表的划分依据:与防火墙规则的作用相似

规则链

链的作用:容纳各种防火墙规则

链的分类依据:处理数据包的不同时机

规则

规则的作用:对数据包进行过滤或处理

总结

表里有链,链里有规则

4.数据包过滤的匹配流程 

4.1规则表之间的顺序

raw→mangle→nat→filter

4.2规则链之间的顺序 

入站:PREROUTING→INPUT→本机的应用程序
出站:本机的应用程序→OUTPUT→POSTROUTING
转发:PREROUTING→FORWARD→POSTROUTING

4.3规则链内的匹配顺序

自上向下按顺序依次进行检查,找到相匹配的规则即停止(LOG策略例外,表示记录相关日志)要么放行,要么丢弃
若在该链内找不到相匹配的规则,则按该链的默认策略处理(未修改的状况下,默认策略为允许)

4.4数据包在防火墙中的匹配流程

入站数据流向
1.PREROUTING链:
数据包从外部网络到达防火墙,首先被PREROUTING链处理
进行地址修改等预处理(如 DNAT)
2.路由选择:
防火墙内核进行路由选择,判断数据包的目标地址
如果目标地址是防火墙本机(如访问防火墙的Web服务),则进入INPUT链
3. INPUT链:
数据包进入INPUT链进行过滤处理,决定是否允许通过
通过后,数据包被交给系统上层的应用程序(如 httpd 服务器)进行响应

转发数据流向
1.PREROUTING链:
数据包从外部网络到达防火墙,首先被PREROUTING链处理
进行地址修改等预处理(如 DNAT)
2.路由选择:
防火墙内核进行路由选择,判断数据包的目标地址
如果目标地址不是防火墙本机,而是其他外部地址(如局域网用户访问外部的 QQ 服务器),则进入FORWARD链
3.FORWARD链:
数据包进入FORWARD链进行过滤处理,决定是否允许转发或拦截、丢弃
4.POSTROUTING链:
转发允许的数据包进入POSTROUTING链,进行地址修改等后处理(如 SNAT)
数据包最终被转发到目标网络

出站数据流向
1.路由选择:
防火墙本机生成的数据包(如测试公网 DNS 服务),首先进行路由选择,确定输出路径
2.OUTPUT链:
数据包进入OUTPUT链进行过滤处理,决定是否允许发送
3.POSTROUTING链:
允许发送的数据包进入POSTROUTING链,进行地址修改等后处理(如 SNAT)
数据包最终被发送到目标网络
总结
入站数据流向:PREROUTING→INPUT→本机的应用程序
转发数据流向:PREROUTING→FORWARD→POSTROUTING
出站数据流向:本机的应用程序→OUTPUT→POSTROUTING

4.5匹配流程通俗易懂 

(1)接收数据包

当一个数据包到达防火墙或路由器时,设备会先接收这个数据包并准备进行检査
(2)解析数据包

设备会解析数据包的内容,提取出重要的信息,如源IP地址、目标IP地址、源端口、目标端口以及协议类型(如TCP、UDP等)
(3)加载规则

防火墙或路由器会加载预先定义的过滤规则,这些规则通常由网络管理员配置。这些规则可以基于多种条件,例如IP地址、端口号、协议类型等
(4)匹配规则

设备会将解析出的数据包信息与过滤规则进行比较。匹配过程如下:
1.逐条检查:按照规则的顺序逐条检查,查看数据包是否符合某条规则的条件
2.条件匹配:如果数据包的源IP地址、目标IP地址、端口号等与某条规则匹配,则该规则的动作(如允许或拒绝)将被应用到数据包上
3.继续检查:如果没有找到匹配的规则,设备会继续检查下一条规则,直到找到配或检查完
所有规则
(5)应用规则

一旦找到匹配的规则,设备会按照规则的定义执行相应的动作:
1.允许通过:如果规则允许数据包通过,数据包将被转发到目标地址
2.拒绝通过:如果规则拒绝数据包,数据包将被丢弃,不会被转发
(6)记录日志(可选)

防火墙或路由器可以选择记录数据包的处理结果,这有助于网络管理员进行审计和分析

三、编写防火墙规则 

1.iptables的安装

CentOS7默认使用firewalld防火墙,没有安装iptables,若想使用iptables防火墙。必须先关闭firewalld防火墙,再安装iptables

关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

安装iptables防火墙

yum -y install iptables iptables-services

设置iptables开机启动

systemctl start iptables.service
systemctl enable iptables.service

2.iptables的基本语法

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

注意事项:
不指定表名时,默认指filter表
不指定链名时,默认指表内的所有链
除非设置链的默认策略,否则必须指定匹配条件
选项、链名、控制类型使用大写字母,其余均为小写

3. 数据包的常见控制类型

ACCEPT允许数据包通过
DROP直接丢弃数据包,不给出任何回应信息
REJECT拒绝数据包通过,必要时会给数据发送端一个响应信息
LOG在/var/log/messages 文件中记录日志信息,然后将数据包传递给下一条规则
SNAT修改数据包的源地址
DNAT修改数据包的目的地址
MASQUERADE伪装成一个非固定公网IP地址

防火墙规则的“匹配即停止”对于 LOG 操作来说是一个特例,因为LOG只是一种辅助动作,并没有真正处理数据包

注:需要大写

4. iptables命令的常用管理选项

管理选项功能
-A在指定链末尾追加一条    iptables -A INPUT(操作)
-I在指定链中插入一条新的,未指定序号默认作为第一条    iptables -I INPUT(操作)
-p指定默认规则    iptables -P  OUTPUT ACCEPT(操作)
-D删除    iptables -t nat -D INPUT(操作)
-R修改、替换某一条规则    iptables -t nat -R INPUT(操作)
-L查看    iptables -t nat -L(查看)
-n所有字段以数字形式显示(比如任意ip地址是0.0.0.0而不是anywhere,比如显示协议端口号而不是服务名)    iptables -L -n,iptables -nL,iptables -vnL(查看)
-v查看时显示更详细信息,常跟-L一起使用    (查看)
--line-number规则带编号    iptables -t nat -L -n --line-number /iptables -t nat -L --line-number 
-F清除链中所有规则    iptables -F(操作)
-X清空自定义链的规则,不影响其他链    iptables -X
-Z清空链的计数器(匹配到的数据包的大小和总和)    iptables -Z
-S查看链的所有规则或者某个链的规则/某个具体规则后面跟编号

4.1iptables各字段解读

pkts对应规则匹配到的报文的个数
bytes对应匹配到的报文包的大小总和
target规则对应的target,往往表示规则对应的"动作",即规则匹配成功后需要采取的措施
prot表示规则对应的协议,是否只针对某些协议应用此规则
opt表示规则对应的选项
in表示数据包由哪个接口(网卡)流入,我们可以设置通过哪块网卡流入的报文需要匹配当前规则
out表示数据包由哪个接口(网卡)流出,我们可以设置通过哪块网卡流出的报文需要匹配当前规则
source表示规则对应的源头地址,可以是一个IP,也可以是一个网段
destination表示规则对应的目标地址。可以是一个IP,也可以是一个网段
packages匹配到的包数量
bytes匹配到的总字节数

5.iptables规则的使用

5.1查看规则列表

iptables [-t表名] -n -L [链名] |[-- line-numbers]

iptables -nvL    默认查看的是filter

注意:不可以合写为-Ln

当防火墙规则的数量较多时,若能够以数字形式显示地址和端口信息,可以减少地址解析的环节,在一定程度上加快命令执行的速度

5.2添加规则

为了清楚直观看到添加的规则,我先清除了所有规则然后添加

iptables -t filter -A INPUT -p icmp -j REJECT

不允许任何主机ping本主机

iptables -t filter -I INPUT -p icmp -j ACCEPT

允许任何主机ping本主机

根据规则匹配原则从上往下匹配

5.3删除、清除规则

删除一条防火墙规则时,使用管理选项“-D”

 注意:
1.若规则列表中有多条相同的规则时,按内容匹配只删除的序号最小的一条
2.按号码匹配删除时,确保规则号码小于等于已有规则数,否则报错
3.按内容匹配删数时,确保规则存在,否则报错

清空指定链或表中的所有防火墙规则,使用管理选项“-F”

注意:
1.-F仅仅是清空链中的规则,并不影响-p设置的默认规则,默认规则需要手动进行修改
2.-p设置了DROP后,使用-F一定要小心!
防止把允许远程连接的相关规则清除后导致无法远程连接主机,此情况如果没有保存规则可重启主机解决
3.如果不写表名和链名,默认清空filter表中所有链里的所有规则

5.4设置默认策略

iptables 的各条链中,默认策略是规则匹配的最后一个环节——当找不到任何一条能够匹配数据包的规则时,则执行默认策略。默认策略的控制类型为 ACCEPT(允许)、DROP(丢弃)两种
iptables [-t表名] -P <链名> <控制类型>

6.防火墙规则匹配

6.1通用匹配

通用匹配也称为常规匹配,这种匹配方式可以独立使用,不依赖于其他条件或扩展模块。 常见的通用匹配包括协议匹配、地址匹配、网络接口匹配

可直接使用,不依赖于其他条件或扩展,包括网络协议、IP地址、网络接口等条件
协议匹配:-p 协议名
地址匹配:-s 源地址、-d目的地址
接口匹配: -i入站网卡、-o出站网卡  

#可以是IP、网段、域名、空(任何地址)

6.2隐含匹配

要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类型等条件
端口匹配:--sport 源端口、--dport 目的端口
#可以是个别端口、端口范围

--sport 1000              匹配源端口是1000的数据包
--sport 1000:3000     匹配源端口是1000-3000的数据包
--sport :3000             匹配源端口是3000及以下的数据包
--sport 1000              匹配源端口是1000及以上的数据包
注意:--sport和--dport 必须配合-p <协议类型>使用

扩展控制位

TCP标记匹配:--tcp-flags TCP标记
iptables -I INPUT -i ens33 -p tcp --tcp-flags SYN,RST,ACK SYN -j ACCEPT
#丢弃SYN请求包,放行其他包

ICMP类型匹配:--icmp-type ICMP类型
可以是字符串、数字代码
"Echo- Request" (代码为8)表示请求
"Echo- Reply" (代码为0)表示回显
"Dest ination-Unreachable" (代码为3)表示目标不可达
关于其它可用的ICMP协议类型,可以执行“iptables -p icmp -h”命令,查看帮助信息 

6.3显示匹配

要求以“-m扩展模块”的形式明确指出类型,包括多端口、MAC地址、IP范围、数据包状态等条件

多端口匹配:

-m multiport --sport  源端口列表
-m multiport --dport  目的端口列表 

IP范围匹配:

-m iprange --src-range IP范围 

禁止转发源地址位于172.16.58.100-172.16.58.200的udp数据包

MAC地址匹配:

-m mac --mac-source MAC地址

禁止来自某MAC地址的数据包通过本机转发

状态匹配:

-m state --state 连接状态
常见的连接状态:
NEW:与任何连接无关的,还没开始连接
ESTABLISHED:响应请求或者已建立连接的,连接态
RELATED:与已有连接有相关性的(如FTP主被动模式的数据连接),衍生态,一般与ESTABLISHED配合使用
INVALID:不能被识别属于哪个连接或没有任何状态
禁止转发与正常TCP连接无关的非--syn请求数据包(如伪造的网络攻击数据包)

四、两个策略及应用

1.SNAT

工作原理:

私有IP地址到公共IP地址的转换:
当内部网络中的主机向外部网络(如互联网)发送数据包时,SNAT会将数据包的源IP地址从私有IP地址更改为公共IP地址
这种转换通常在路由器或防火墙上进行
连接跟踪:
路由器或防火墙会维护一个连接跟踪表,用于记录内部私有IP地址和端口到外部公共IP地址
和端口的映射关系
当外部网络的响应数据包返回时,SNAT会根据连接跟踪表将公共IP地址和端口转换回相应的
内部私有!P地址和端口
端口转换:
为了区分来自不同内部主机的连接,SNAT通常会改变源端口号
这样,即使多个内部主机同时使用相同的公共IP地址进行通信,SNAT仍然能够正确地将返回
的数据包路由到相应的内部主机

SNAT转换前提条件:
1.局域网各主机已正确设置IP地址、子网掩码、默认网关地址
2.Linux网关开启IP路由转发 

linxu想系统本身是没有转发功能 只有路由发送数据 
临时打开:
echo 1 > /proc/sys/net/ipv4/ip_forward

sysctl -w net.ipv4.ip_forward=1
永久打开:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1    #将此行写入配置文件
sysctl -p                           #将取修改后的配置 

2.DNAT

工作原理:

数据包到达时的转换:
当数据包从外部网络(如互联网)到达网络边界设备(如路由器或防火墙)时,DNAT会根据目标IP地址的规则将其转换为内部网络中的IP地址
目标地址重写:
DNAT主要用于将外部请求的目标IP地址修改为内部网络中一个具体的私有IP地址。例如,将
外部请求的目标IP地址、203.0.113.1转换为内部服务器192.168.1.10
端口映射:
除了IP地址转换,DNAT也可以进行端口映射。例如,将外部请求的目标IP地址
203.0.113.1和端囗80映射到内部服务器192.168.1.10的端口8080。这样,外部用户访问、203.0.113.1:80实际上会访问到内部服务器192.168.1.10:8080
连接跟踪:
路由器或防火墙会维护一个连接跟踪表,用于记录外部请求的目标IP地址和端口与内部服务
器的映射关系。当内部服务器响应外部请求时,设备会根据连接跟踪表将响应数据包的目标
IP地址转换回原始的公共IP地址和端口

DNAT转换前提条件:
1.局域网的服务器能够访问Internet
2.网关的外网地址有正确的DNS解析记录
3.Linux网关开启IP路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

五、firewalld

1.firewalld与iptables的区别

iptables主要是基于接口,来设置规则,从而判断网络的安全性
firewalld是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全。与硬件防火墙的设置相类似

iptables在/etc/sysconfig/iptables中储存配置
firewalld将配置储存在/etc/firewalld/(优先加载)和/usr/lib/firewalld/(默认的配置文件)中的各种XMD文件里

使用iptables每一个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptables里读取所有新的规则

使用firewalld却不会再创建任何新的规则,仅仅运行规则中的不同之处。因此firewalld可以在运行时间内,改变设置而不丢失现行连接

iptables 防火墙类型为静态防火墙
firewalld 防火墙类型为动态防火墙

2.firewalld区域 

(1)trusted(信任区域)

允许所有的传入流量
(2)public(公共区域)

允许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。是新添加网络接口的默认区域
(3)external(外部区域)

允许与 ssh 预定义服务匹配的传入流量,其余均拒绝
默认将通过此区域转发的IPv4传出流量将进行地址伪装,可用于为路由器启用了伪装功能的外部网络
(4)home(家庭区域)

允许与ssh、ipp-client、mdns、samba-client或dhcpvi-client预定义服务匹配的传入流量,其余均拒绝
(5)internal(内部区域)

默认值时与home区域相同
(6)work(工作区域)

允许与 ssh、ipp-client、dhcpv6-client预定义服务匹配的传入流量,其余均拒绝
(7)dmz(隔离区域也称为非军事区域)

允许与ssh预定义服务匹配的传入流量,其余均拒绝
(8)block(限制区域)

拒绝所有传入流量
(9)drop(丢弃区域)

丢弃所有传入流量,并且不产生包含ICMP的错误响应

3. firewalld数据处理流程

firewalld对于进入系统的数据包,会根据数据包的源IP地址或传入的网络接口等条件,将数据流量转入相应区域的防火墙规则。对于进入系统的数据包,首先检查的就是其源地址

firewalld检查数据包的源地址的规则
(1)若源地址关联到特定的区域(即源地址或接口绑定的区域有冲突),则执行该区域所制定的规则
(2)若源地址未关联到特定的区域(即源地址或接口绑定的区域没有冲突),则使用传入网络接口的区域并执行该区域所制定的规则
(3)若网络接口也未关联到特定的区域(即源地址或接口都没有绑定特定的某个区域),则使用默认区域并执行该区域所制定的规则

4. firewalld防火墙的配置方法

1、使用firewall-cmd命令行工具
2、使用firewall-config图形工具
3、编写/etc/firewalld/中的配置文件

首先要开启防火墙服务

systemctl start firewalld.service

常用的firewall-cmd命令选项

--get-default-zone :显示当前默认区域
--set-default-zone=<zone> :设置默认区域

--get-active-zones :显示当前正在使用的区域及其对应的网卡接口
--get-zones :显示所有可用的区域


--get-zone-of-interface=<interface> :显示指定接口绑定的区域
--zone=<zone> --add-interface=<interface>:为指定接口绑定区域
-zone=<zone> --change-interface=<interface> :为指定的区域更改绑定的网络接口
-zone=<zone> --remove-interface=<interface> :为指定的区域删除绑定的网络接口


--zone=<zone> --add-source=<source>[ /<mask>]:为指定源地址绑定区域
--zone=<zone> --change-source=<source>[ /<mask>] :为指定的区域更改绑定的源地址
--zone=<zone>--remove-source=<source> [ /<mask>] :为指定的区域删除绑定的源地址

--list-all-zones :显示所有区域及其规则 
[--Zone=<zone>] --list-all :显示所有指定区域的所有规则,省略--zone=<zone>时表示仅对默认区域操作

[--zone=<zone>] --list-services :显示指定区域内允许访问的所有服务
工具箱快捷>
[--zone=<zone>] --add-service=<service> :为指定区域设置允许访问的某项服务
--zone=<zone>] --remove-service=<service> :删除指定区域已设置的允许访问的某项服务

[--zone=<zone>] --list-ports :显示指定区域内允许访问的所有端口号
[--Zone=<zone>] --add-port=<portid>[-<portid>]/<protocol>:为指定区域设置允许访问的某个/某段端口号〈包括协议名)
-zone=<zone>] [--remove-port=<portid>[-<portid>]/protocol>:删除指定区域已设置的允许访问的端口号〈包括协议名)

添加http服务到默认区域,设置成永久生效 

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人数管控系统助力图书馆实现精准客流统计分析

一、客流统计痛点在图书馆的日常运营中&#xff0c;客流统计面临着诸多难题。传统的人工计数方法不仅耗费人力&#xff0c;而且数据准确性难以保证。无法精确掌握不同时间段的读者流量&#xff0c;导致图书馆在资源配置和服务安排上缺乏科学依据。难以了解各个区域的受欢迎程度…

查看RAM和Flash

0 Preface/Foreword 1 查看方法 1.1 map文件中查看 1.1.1 RAM可用情况 在map文件中&#xff0c;搜索字符串&#xff1a;free_ramcp 该字段表示剩余可用的RAM大小&#xff0c;前面对应的是hexadecimal的数值&#xff08;单位Byte&#xff09;&#xff0c;就是剩余可用的RA…

浅谈ArkTS/ArkUI组件开发

浅谈ArkTS/ArkUI组件开发 本篇文章将从一个移动开发思维的维度出发&#xff0c;浅谈ArkTS组件开发的基础问题&#xff0c;比如状态管理、装饰器、属性传递、自定义构建函数、插槽、条件渲染&#xff0c;模块引用和路由跳转等。 创建项目 这里使用截图简单过一下&#xff0c;不…

数据结构与算法 - 递归

一、递归 1. 概述 定义&#xff1a;在计算机科学中&#xff0c;递归是一种解决计算问题的方法&#xff0c;其中解决方案取决于同一类问题的更小子集。 比如单链表递归遍历的例子&#xff1a; void f(Node node) {if(node null) {return;}println("before:" node…

Java 字符串常量池

目录 一、池化概念 二、字符串常量池 1. 概述 2. String对象的创建过程 1&#xff09;直接使用字符串常量进行赋值 2&#xff09;通过new创建String类对象 3&#xff09;结论 4&#xff09;intern方法 一、池化概念 先看如下的一段代码&#xff1a; String s1 "…

LLM实战系列(1)—强强联合Langchain-Vicuna应用实战

背景 本文主要介绍一下&#xff0c;基于Langchain与Vicuna-13B的外挂OceanBase知识库项目实战以及QA使用&#xff0c;项目地址: github.com/csunny/DB-G… 在开始之前&#xff0c;我们还是先看看效果&#xff5e; 自Meta发布LLaMA大模型以来&#xff0c; 围绕LLaMA微调的模型…

为什么越来越多的IT青年转行网络安全?

目前&#xff0c;我国互联网已经从爆发增长期进入平稳发展阶段&#xff0c;同时每年大量计算机相关专业的毕业生涌入就业市场&#xff0c;导致IT行业逐渐趋于饱和状态&#xff0c;甚至出现裁员现象&#xff0c;去年很多大厂都有裁员&#xff0c;不少程序员再就业成了难题。 面…

大彩触摸屏与单片机通讯

目录&#xff1a; 一、概述 1、触摸屏简介 2、安装软件 1&#xff09;设置VSPD软件 2&#xff09;设置VisualTFT软件 3&#xff09;设置串口软件 二、单片机发送指令给触摸屏 1、发送文本 2、显示与隐藏控件 1&#xff09;通过指令助手生成指令 2&#xff09;隐藏…

IDEA启动springBoot项目,显示构建和正在启动XxxApplication之后无反应

今天拉其他项目组的代码&#xff0c;然后发现IDEA启动不了项目&#xff0c;点击启动一闪而过&#xff0c;啥提示也没有&#xff0c;因为之前有过类似IDEA出错的经验&#xff0c;所以知道怎么排查。 首先打开IDEA日志输出&#xff0c;然后看具体是什么错 帮助>Tail Log in Co…

Linux用户无法访问Github怎么办?

进入Steam官网:Watt Toolkit 1.点击下载 2.在点击授权并下载 3.尽量选择Nas分流&#xff08;德国&#xff09; 4.然后选择最新版本 5.点击Linux版本它会自动文件夹 6.双击,他会自动下载 7.下载完成后进行解压,解压后进入目录 8.右键在此打开终端,在终端输入,运行此脚本 …

揭秘!焦虑症不只是心理战,这些躯体化症状你中招了吗?

引言 在这个快节奏、高压力的时代&#xff0c;焦虑症已成为许多人难以言说的秘密。它不仅悄无声息地侵蚀着我们的心理健康&#xff0c;还可能以一系列令人意想不到的躯体化症状显现&#xff0c;让人误以为自己只是“身体出了点小毛病”。今天&#xff0c;就让我们一起揭开焦虑…

[工具推荐]前端加解密之Burp插件Galaxy

如果觉得该文章有帮助的&#xff0c;麻烦师傅们可以搜索下微信公众号&#xff1a;良月安全。点个关注&#xff0c;感谢师傅们的支持。 免责声明 本号所发布的所有内容&#xff0c;包括但不限于信息、工具、项目以及文章&#xff0c;均旨在提供学习与研究之用。所有工具安全性…

肖扬率团队到北京军区干休所与离退休老干部座谈

在中国人民解放军建军97周年到来之际&#xff0c;为弘扬拥军优属光荣传统&#xff0c;营造尊崇关爱军人的浓厚氛围&#xff0c;世界中医药联合会骨伤科专业委员会副会长肖扬教授率团队遵从上级部门安排于7月31日上午到北京军区干休所看望离退休的老干部和多位老将军的后代&…

【DRF性能优化】

一、背景 项目中有一个查询脚本的接口&#xff0c;查询20条数据需要5min&#xff0c;性能很差,需要优化 二、问题排查 查看代码发现&#xff0c;serializers中&#xff0c;发现了一个奇怪的查询 查询脚本时&#xff0c;关联的脚本版本的一些字段也需要查询出来&#xff0c;…

安卓单机游戏:世界盒子手机游戏,最新版,春秋MOD整合 下载

《世界盒子》&#xff08;WorldBox&#xff09;是一款由Maxim Karpenko制作的沙盒模拟类游戏。这款游戏允许玩家在游戏中扮演上帝的角色&#xff0c;使用神力来创造和改变像素世界。玩家可以利用水、沙子、土壤、森林、人类、种子、动物等元素&#xff0c;以及温度、降雨等环境…

【数据结构】了解哈希表,解决哈希冲突,用Java模拟实现哈希桶

哈希表的概念 哈希表&#xff08;Hash Table&#xff09;是一种高效的数据结构&#xff0c;用于实现快速的数据存储和检索。它通过将数据映射到一个数组的索引位置&#xff0c;从而能够在平均情况下实现O(1)的时间复杂度进行查找、插入和删除操作。 哈希表的基本概念包括以下…

LLM应用-prompt提示:让大模型总结生成PPT

参考&#xff1a; https://mp.weixin.qq.com/s/frKOjf4hb6yec8LzSmvQ7A 思路&#xff1a;通过大模型生成markdown内容&#xff0c;通过markdown去生成PPT 技术&#xff1a;Marp&#xff08;https://marp.app/&#xff09;这里用的这个工具进行markdown转PPT 1、让大模型生成Ma…

川土微电子|高性能模拟芯片供应商

上海川土微电子有限公司&#xff0c;成立于2016年&#xff0c;总部位在上海&#xff0c;并于深圳、北京、杭州设有分支机构&#xff0c;产品涵盖隔离与接口、驱动与电源、高性能模拟三大产品线以及μMiC战略产品&#xff08; micro-Module in Chip&#xff09;。目前产品已广泛…

玩转大模型之五(测试FastGPT高级编排)

一、高级编排 FastGPT 从 V4 版本开始采用新的交互方式来构建 AI 应用。使用了 Flow 节点编排&#xff08;工作流&#xff09;的方式来实现复杂工作流&#xff0c;提高可玩性和扩展性。但同时也提高了上手的门槛&#xff0c;有一定开发背景的用户使用起来会比较容易。 编排方…

局域网内远程控制桌面软件推荐

在现代办公环境中&#xff0c;局域网&#xff08;LAN&#xff09;内的远程桌面连接已成为提升工作效率和促进团队协作的关键技术之一。无论是需要访问办公室内部服务器&#xff0c;还是在家工作时远程操作公司电脑&#xff0c;局域网内的远程桌面都能满足这一需求。本文将探讨在…