firewalld(8) policies

简介

前面的文章中我们介绍了firewalld的一些基本配置以及NAT的相关配置。在前面的配置中,我们所有的策略都是与zone相关的,例如配置的rich rule,--direct,以及NAT,并且这些配置都是数据包进入zone或者从zone发出时设置的策略。

我们在介绍firewalld的基本原理时候就介绍过,firewalld zone处理数据时的一些原则,更加详细的内容在firewalld(1)基本原理中都有介绍。本篇文章主要介绍firewalld的policies,即如何管理进入和离开某个区域的流量。

firewalld中,策略(Policies)是一种用于在防火墙的不同区域(Zones)之间应用一系列规则的方法。每个策略都定义了一组入口区域(Ingress Zones)和一组出口区域(Egress Zones),这些区域之间的流量将受到策略中定义的规则的影响。

策略policies

策略是一系列规则的集合,这些规则应用于在两个或多个区域之间流动的流量。策略以有状态的单向方式影响流量,例如从区域A到区域B。这种设计允许实现异步的过滤策略。

策略与区域的关系

策略通过指定一组入口区域和一组出口区域来定义与区域的关系。例如,如果入口区域包含“trusted”且出口区域包含“public”,则该策略将影响从“trusted”区域流向“public”区域的所有流量。但需要注意,由于策略是单向的,因此它不会应用于从“public”到“trusted”的流量。入口和出口区域集合中可以包含多个区域。

策略与区域的主要区别

尽管策略和区域在功能上有所重叠,但它们之间存在一些关键的区别:

  1. 方向性:策略允许在所有方向上进行过滤:输入(input)、输出(output)和转发(forwarding)。相比之下,区域通常只支持输入过滤,这对于终端站点的防火墙来说是足够的。但是,对于网络级别的过滤或代表虚拟机和容器进行的过滤,需要更灵活的东西,即策略。

  2. 灵活性:策略提供了更高的灵活性,允许根据流量流动的特定方向来定义规则。

  3. 内部实现:现代 firewalld 中的区域实际上是作为策略集合来内部实现的。这意味着区域可以看作是策略的一种特殊形式或子集。

激活策略的条件

策略只有满足以下条件时才会生效:

  1. 入口区域列表:至少包含一个常规区域或单个符号区域。
  2. 出口区域列表:至少包含一个常规区域或单个符号区域。
  3. 非符号区域的激活状态:对于非符号区域,该区域必须处于激活状态,即必须有接口或源被分配给它。

如果策略未激活,则它不会产生任何效果。

符号区域

firewalld中,除了常规的区域(如publicinternal等)外,还定义了一些符号区域来填补特定场景下的需求。这些符号区域在处理数据包过滤时具有独特的用途和限制。。例如,没有区域能表示流向或来自运行firewalld的主机的流量。因此,引入了一些符号区域来填补这些空白。但符号区域在入口或出口区域集合中是唯一的,例如,不能在入口区域中同时使用“public”和“HOST”。

符号区域包括:

  • HOST
    • 此符号区域用于流向或从运行firewalld的主机流出的流量。这对应于netfilter(iptables/nftables)的INPUT和OUTPUT链。
      • 在入站区域列表中:当HOST用于入站区域列表时,它实际上应用于OUTPUT链。这意味着它过滤的是由主机自身发出的流量。尽管这里提到的是“入站”,但在这个上下文中,它是指从主机视角出发的“出站”流量,即主机发出的流量。
      • 在出站区域列表中:当HOST用于出站区域列表时,它实际上应用于INPUT链。这看起来有些反直觉,因为“出站”通常指的是离开主机的流量,但在这里,它是指进入主机的流量(从主机防火墙的视角来看)。也就是说,它过滤的是进入主机的流量。
  • ANY
    • ANY符号区域在入站和出站区域中充当通配符的角色,但不包括HOST区域。它在你希望某个策略应用于除了主机自身以外的所有区域时非常有用。
      • 在入站区域列表中:当ANY用于入站区域列表时,它适用于来自任何区域(除了主机自身)的流量。这意呀着它过滤的是进入主机的外部流量。
      • 在出站区域列表中:当ANY用于出站区域列表时,它适用于离开主机前往任何区域(除了主机自身)的流量。这意呀着它过滤的是从主机发出的、前往外部目标的流量。

预定义策略

防火墙附带了一些预定义的策略。默认情况下,这些选项可能是活动的,也可能不是活动的。

例如默认的预定义策略
allow-host-ipv6

policy配置文件结构

文件位置

  • 用户自定义策略:通常存放在 /etc/firewalld/policies/ 目录下。这里的策略文件是用户可以自定义和修改的。
  • 系统默认策略:可能存放在 /usr/lib/firewalld/policies/ 目录下。这些策略文件通常是系统预定义的,用户不应直接修改它们,除非有特殊需要并且了解可能的影响。

文件命名

策略文件的命名规则是 policy_name.xml,其中 policy_name 是策略的名称这个命名规则确保了文件名在系统中的唯一性,并简化了策略的识别和管理。

命令结构

<?xml version="1.0" encoding="utf-8"?>
<policy [version="versionstring"] [target="CONTINUE|ACCEPT|REJECT|DROP"] [priority="priority"]>[ <ingress-zone name="zone"/> ][ <egress-zone name="zone"/> ][ <short>short description</short> ][ <description>description</description> ][ <service name="string"/> ][ <port port="portid[-portid]" protocol="tcp|udp|sctp|dccp"/> ][ <protocol value="protocol"/> ][ <icmp-block name="string"/> ][ <masquerade/> ][ <forward-port port="portid[-portid]" protocol="tcp|udp|sctp|dccp" [to-port="portid[-portid]"] [to-addr="IP address"]/> ][ <source-port port="portid[-portid]" protocol="tcp|udp|sctp|dccp"/> ][<rule [family="ipv4|ipv6"] [priority="priority"]>[ <source address="address[/mask]"|mac="MAC"|ipset="ipset" [invert="True"]/> ][ <destination address="address[/mask]"|ipset="ipset" [invert="True"]/> ][<service name="string"/> |<port port="portid[-portid]" protocol="tcp|udp|sctp|dccp"/> |<protocol value="protocol"/> |<icmp-block name="icmptype"/> |<icmp-type name="icmptype"/> |<masquerade/> |<forward-port port="portid[-portid]" protocol="tcp|udp|sctp|dccp" [to-port="portid[-portid]"] [to-addr="address"]/>][<log [prefix="prefix text"] [level="emerg|alert|crit|err|warn|notice|info|debug"]> [<limit value="rate/duration"/>] </log> |<nflog [group="group id"] [prefix="prefix text"] [queue-size="threshold"]> [<limit value="rate/duration"/>] </nflog>][ <audit> [<limit value="rate/duration"/>] </audit> ][<accept> [<limit value="rate/duration"/>] </accept> |<reject [type="rejecttype"]> [<limit value="rate/duration"/>] </reject> |<drop> [<limit value="rate/duration"/>] </drop> |<mark set="mark[/mask]"> [<limit value="rate/duration"/>] </mark>]</rule>]</policy>
<policy> 标签
必需:这个标签定义了策略的开始和结束,每个策略配置文件中只能使用一次。可选属性:version="string":为策略指定一个版本号。target="CONTINUE|ACCEPT|REJECT|DROP":指定不匹配任何规则(如端口、服务等)的数据包的处理方式。CONTINUE 是默认值,用于非终端策略;ACCEPT 接受数据包;REJECT 拒绝数据包并发送一个响应;DROP 丢弃数据包且不发送任何响应。<ingress-zone> 和 <egress-zone> 标签
可选:这两个标签可以多次使用,分别指定入站和出站流量的防火墙区域。它们可以是 firewalld 的区域名称之一,或者是符号区域 HOST 或 ANY。<short> 标签
可选:这是一个可选的开始和结束标签,用于为策略提供一个更易读的名称。<description> 标签
可选:这也是一个可选的开始和结束标签,用于提供策略的详细描述。<service> 标签
可选:这是一个空元素标签,可以多次使用以启用多个服务条目。必需属性:name="string":要启用的服务的名称。可以使用 firewall-cmd --get-services 命令获取有效的服务名称列表。<port> 标签
可选:这也是一个空元素标签,可以多次使用以定义多个端口条目。必需属性:port="portid[-portid]":指定端口号,可以是单个端口号 portid 或端口范围 portid-portid。protocol="tcp|udp|sctp|dccp":指定协议类型,可以是 tcp、udp、sctp 或 dccp。<protocol> 标签
可选:这是一个空元素标签,可以多次使用以定义多个协议条目。必需属性:value="string":这是一个必需的属性,指定了系统支持的任何协议。要查看系统支持的协议列表,可以查看 /etc/protocols 文件。<icmp-block> 标签
可选:这也是一个空元素标签,可以多次使用以定义多个 ICMP 阻塞条目。必需属性:name="string":这是一个必需的属性,指定了要阻塞的 Internet Control Message Protocol (ICMP) 消息类型的名称。可以使用 firewall-cmd --get-icmptypes 命令获取有效的 ICMP 类型列表。<tcp-mss-clamp> 标签
可选:这是一个空元素标签,可以多次使用(尽管在实践中,通常只设置一次 TCP MSS Clamp 的值)。必需属性:value="string":这是一个可选的属性。如果留空,则最大段大小(MSS)将设置为“pmtu”(路径最大传输单元)。如果设置了该属性,其值可以是“pmtu”或用户定义的值(该值应大于或等于 536)。TCP MSS Clamp 用于限制 TCP 数据包的最大段大小,这有助于避免在具有较小 MTU(最大传输单元)的网络路径上发生分片。<masquerade> 标签
可选:这是一个空元素标签,用于启用地址伪装(也称为网络地址转换,NAT)。
限制:这个标签只能使用一次。如果出现在配置文件中,则表示启用了地址伪装。地址伪装允许内部网络(私有地址空间)的设备通过防火墙访问外部网络(公共地址空间),同时隐藏它们的真实 IP 地址。<forward-port> 标签
可选:这是一个空元素标签,可以多次使用以定义多个端口或数据包转发条目。强制属性:port="portid[-portid]":指定要转发的本地端口。这可以是一个单独的端口号(portid)或一个端口范围(portid-portid)。
protocol="tcp|udp|sctp|dccp":指定协议类型,可以是 tcp、udp、sctp 或 dccp。可选属性:to-port="portid[-portid]":指定转发到的目标端口或端口范围。如果省略,则使用 port= 属性的值。to-addr="address":指定目标 IP 地址,用于远程转发。这可以是 IPv4 或 IPv6 地址。
<forward-port> 标签允许配置本地或远程端口转发。对于本地转发,通常只需指定 to-port(如果目标端口与源端口不同)。对于远程转发,需要指定 to-addr 和可选的 to-port。<source-port> 标签
可选:这是一个空元素标签,可以多次使用以定义多个源端口条目。所有属性都是强制的:port="portid[-portid]":指定源端口或端口范围。protocol="tcp|udp|sctp|dccp":指定协议类型。

rich rule命令结构

<rule [family="ipv4|ipv6"] [priority="priority"]>[ <source address="address[/mask]"|mac="MAC"|ipset="ipset" [invert="True"]/> ][ <destination address="address[/mask]"|ipset="ipset" [invert="True"]/> ][<service name="string"/> |<port port="portid[-portid]" protocol="tcp|udp|sctp|dccp"/> |<protocol value="protocol"/> |<icmp-block name="icmptype"/> |<icmp-type name="icmptype"/> |<masquerade/> |<forward-port port="portid[-portid]" protocol="tcp|udp|sctp|dccp" [to-port="portid[-portid]"] [to-addr="address"]/> |<source-port port="portid[-portid]" protocol="tcp|udp|sctp|dccp"/> |][ <log [prefix="prefix text"] [level="emerg|alert|crit|err|warn|notice|info|debug"]> [<limit value="rate/duration"/>] </log> |<nflog [group="group id"] [prefix="prefix text"] [queue-size="threshold"]> [<limit value="rate/duration"/>] </nflog>][ <audit> [<limit value="rate/duration"/>] </audit> ][<accept> [<limit value="rate/duration"/>] </accept> |<reject [type="rejecttype"]> [<limit value="rate/duration"/>] </reject> |<drop> [<limit value="rate/duration"/>] </drop> |<mark set="mark[/mask]"> [<limit value="rate/duration"/>] </mark>]
</rule>

以上的内容和参数在我们介绍各部分功能时都有对应的介绍,这里可以再次回顾一下firewalld-cmd的命令结构。

实验环境

配置环境和前面所介绍的环境一致。

和我们在做iptables网络防火墙以及rich rule时的环境是一模一样,内部区域为192.168.140.0/24网段,firewalld配置在主机B上,分为内部trusted区域,和外部public区域。其中主机A的网关是主机B 192.168.140.250,主机B的网关是主机C模拟的公网192.168.170.128。
​​​​​

清除除前面配置的安全策略,可以直接编辑?etc/firewalld/下面的文件进行删除,如我们前面配置的trusted.xml,public.xml,direct.xml文件

查看结果

此时除了接口加入到对应的zone和public zone开启了masquerade外,其他安全策略均已经被删除

测试

此时我们的主机A是可以访问主机C的

主机A可以正常访问主机C

配置policy

firewall-cmd --permanent --new-policy myOutputPolicy
firewall-cmd --permanent --policy myOutputPolicy --add-ingress-zone 
firewall-cmd --permanent --policy myOutputPolicy --add-egress-zone 

创建策略

我这里创建一个policy名为trusted-to-public。注意,此时policy的优先级为-1,默认的那个是-15000,target是CONTINUE

设置策略默认动作

将该policy的默认动作改为ACCEPT模式,即为黑名单模式,默认放行所有,然后在前面设置禁止策略。也可以改为白名单模式,默认禁止所有,可以根据自己的需求进行自定义。下面是可以设置的动作类型
ACCEPT: 允许数据包通过防火墙,不会对其进行任何处理或过滤。CONTINUE: 与 ACCEPT 类似,但继续查看下一个规则进行匹配,而不是停止执行规则集。DROP: 静默丢弃数据包,不给发送方任何响应,也不通知接收方数据包未到达目的地。REJECT: 拒绝数据包,并向发送端发出拒绝通知,告知其连接被主机拒绝

修改策略优先级

数值越小优先级越高

设置policy中的策略

在配置policy的策略的时候,会发现其实policy的策略和我们前面配置的zone的策略非常的相似的,只不过一个是在zone中配置策略,一个是在policy中配置策略

我这里配置策略,拒绝从192.168.140.248即主机A来的数据包去ping 192.168.170.128即主机C其他可以正常访问,那么策略该如何设置呢?因为要设置具体的源和目的地,我们可以通过rich rule来配置。rich rule在firewalld中是非常重要的,因为很多复杂的策略都是通过rich rule来完成的。

如上图所示,reject从192.168.140.248-192.168.170.128的icmp流量

策略与zone关联

将该policy应用到对应的zone中,一定要注意方向,如果方向和自己定义的rich rule不匹配,那么该条策略也是不会生效的。此时在zone中,并没有其他显示信息。

测试

此时主机A ping主机C因为我们策略的动作是Reject所以会显示不可达。
但是http还是可以正常访问的。

需求1

前面我们介绍了普通区域之间的策略,那么现在有一个需求,阻止从任何区域到我们本机的icmp数据包。也就是不允许从任何区域对我们主机进行ping操作。这个我们应该如何实现呢,可以配置我们前面介绍的irch rule,然后将该规则配置到我们所有的区域上,这样从任何区域来的icmp数据包都会被阻止。那么还有其他方式吗?

注意该规则前面应该都很好理解,注意最后调用的区域,--add-egress-zone=HOST,这个HOST的含义在前面我们有专门介绍,在这里虽然调用在egress-zone其实是应用在INPUT链上的。我们可以看看如下显示
root@debian:~# iptables -nvL   IN_any-to-local
Chain IN_any-to-local (2 references)pkts bytes target     prot opt in     out     source               destination206 17608 IN_any-to-local_pre  0    --  *      *       0.0.0.0/0            0.0.0.0/02   472 IN_any-to-local_log  0    --  *      *       0.0.0.0/0            0.0.0.0/02   472 IN_any-to-local_deny  0    --  *      *       0.0.0.0/0            0.0.0.0/02   472 IN_any-to-local_allow  0    --  *      *       0.0.0.0/0            0.0.0.0/02   472 IN_any-to-local_post  0    --  *      *       0.0.0.0/0            0.0.0.0/02   472 ACCEPT     0    --  *      *       0.0.0.0/0            0.0.0.0/0
root@debian:~# iptables -nvL  INPUT_POLICIES_pre
Chain INPUT_POLICIES_pre (3 references)pkts bytes target     prot opt in     out     source               destination241 20548 IN_allow-host-ipv6  0    --  *      *       0.0.0.0/0            0.0.0.0/0202 16968 IN_any-to-local  0    --  ens36  *       0.0.0.0/0            0.0.0.0/00     0 IN_any-to-local  0    --  ens33  *       0.0.0.0/0            0.0.0.0/0
root@debian:~# iptables -nvL  IN_trusted
Chain IN_trusted (1 references)pkts bytes target     prot opt in     out     source               destination28  2352 INPUT_POLICIES_pre  0    --  *      *       0.0.0.0/0            0.0.0.0/00     0 IN_trusted_pre  0    --  *      *       0.0.0.0/0            0.0.0.0/00     0 IN_trusted_log  0    --  *      *       0.0.0.0/0            0.0.0.0/00     0 IN_trusted_deny  0    --  *      *       0.0.0.0/0            0.0.0.0/00     0 IN_trusted_allow  0    --  *      *       0.0.0.0/0            0.0.0.0/00     0 IN_trusted_post  0    --  *      *       0.0.0.0/0            0.0.0.0/00     0 INPUT_POLICIES_post  0    --  *      *       0.0.0.0/0            0.0.0.0/00     0 ACCEPT     0    --  *      *       0.0.0.0/0            0.0.0.0/0
root@debian:~# iptables -nvL  INPUT_ZONES
Chain INPUT_ZONES (1 references)pkts bytes target     prot opt in     out     source               destination28  2352 IN_trusted  0    --  ens33  *       0.0.0.0/0            0.0.0.0/0           [goto]435 36844 IN_public  0    --  ens36  *       0.0.0.0/0            0.0.0.0/0           [goto]0     0 IN_block   0    --  *      *       0.0.0.0/0            0.0.0.0/0           [goto]
root@debian:~# iptables -nvL  INPUT
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination523 35381 ACCEPT     0    --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED,DNAT0     0 ACCEPT     0    --  lo     *       0.0.0.0/0            0.0.0.0/00     0 DROP       0    --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID477 40372 INPUT_direct  0    --  *      *       0.0.0.0/0            0.0.0.0/0477 40372 INPUT_ZONES  0    --  *      *       0.0.0.0/0            0.0.0.0/00     0 REJECT     0    --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
root@debian:~#

 我们配置的策略是在IN_any-to-local_pre-------->IN_any-to-local-------->INPUT_POLICIES_pre------->IN_trusted------->INPUT_ZONE-------->INPUT

测试

192.168.170.200在public此时已经无法ping通了

 

此时从主机Aping,192.168.140.250是在trusted区域,也是无法ping通的

注意:

此时从主机B去ping主机A和主机C能否ping通呢?

此时可以ping通,因为我们配置的policy是有方向性的,在策略调用的时候一定要注意策略配置的方向和调用的方向保持一致。

需求2

        在需求1中我们用HOST过滤了从外部任何区域来的到达本机的icmp流量。那么此时我想要过滤任何从本机发出的http流量应该如何做呢?也就是说从本机发出的,目的地址是80端口的不管从那个区域发出,都是不允许的。

先定义一个策略名为local-to-public,注意这个public只是一个名字,与public区域无关。名字可以根据自己的需求自行设置,所有http服务全部被reject
将该策略应用到ingress-zone位HOST,HOST在ingress zone意味着,从本机发出的流量,而egress是ANY表示任何区域。那么该策略的含义就为从本机发出的http流量都会被reject。HOST和ANY在上面有具体的介绍,需要多理解多测试便可以充分掌握这两个参数的含义。

测试

此时主机B已经不能发起任何http流量了
主机A访问主机C的80端口依旧可以正常访问。

总结

通过使用policy我们可以设置基于zone之间的安全策略,并且可以将不同的应用进行整合,不同的应用类型设置不通的policy,提升策略的灵活度。可以根据自己的需求,自定义自己的安全策略模式和风格,这样当策略数量非常庞大且复杂的时候,可以极大的提升策略的可视化程度,提升管理效率。

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

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

相关文章

昇思25天学习打卡营第15天 | Vision Transformer图像分类

内容介绍&#xff1a; 近些年&#xff0c;随着基于自注意&#xff08;Self-Attention&#xff09;结构的模型的发展&#xff0c;特别是Transformer模型的提出&#xff0c;极大地促进了自然语言处理模型的发展。由于Transformers的计算效率和可扩展性&#xff0c;它已经能够训练…

在VMware虚拟机的创建以及安装linux操作系统

一、创建虚拟机 1.双击打开下载好的VMware Workstation软件 2.点击“创建新的虚拟机” 3.根据个人选择需要创建的虚拟机&#xff0c;点击下一步 4.直接点击下一步 5.选择稍后安装操作系统&#xff0c;点击下一步 、 6.选择需要的操作系统&#xff0c;点击下一步 7.根据…

YOLOv8改进---BiFPN特征融合

一、BiFPN原理 1.1 基本原理 BiFPN&#xff08;Bidirectional Feature Pyramid Network&#xff09;&#xff0c;双向特征金字塔网络是一种高效的多尺度特征融合网络&#xff0c;其基本原理概括分为以下几点&#xff1a; 双向特征融合&#xff1a;BiFPN允许特征在自顶向下和自…

【踩坑】修复pyinstaller报错 No module named pkg_resources.extern

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 报错如下&#xff1a; 修复方法&#xff1a; pip install --upgrade setuptools pippyinstaller -F -w main.py --hidden-importpkg_resources.py2_wa…

算法系列--分治排序|归并排序|逆序对的求解

一.基本概念与实现 归并排序(mergeSort)也是基于分治思想的一种排序方式,思路如下: 分解:根据中间下标mid将数组分解为两部分解决:不断执行上述分解过程,当分解到只有一个元素时,停止分解,此时就是有序的合并:合并两个有序的子区间,所有子区间合并的结果就是原问题的解 归并…

【TB作品】51单片机 Proteus仿真 00002仿真-智能台灯色调倒计时光强

实验报告&#xff1a;基于51单片机的智能台灯控制系统 背景 本实验旨在设计一个基于51单片机的智能台灯控制系统&#xff0c;该系统可以通过按键进行手动控制&#xff0c;并能根据环境光强度自动调节台灯亮度。此外&#xff0c;系统还具备倒计时关灯功能。 器件连接 51单片…

Xilinx FPGA:vivado关于真双端口的串口传输数据的实验

一、实验内容 用一个真双端RAM&#xff0c;端口A和端口B同时向RAM里写入数据0-99&#xff0c;A端口读出单数并存入单端口RAM1中&#xff0c;B端口读出双数并存入但端口RAM2中&#xff0c;当检测到按键1到来时将RAM1中的单数读出显示到PC端&#xff0c;当检测到按键2到来时&…

强化学习的数学原理:时序差分算法

概述 之前第五次课时学习的 蒙特卡洛 的方法是全课程当中第一次介绍的第一种 model-free 的方法&#xff0c;而本次课的 Temporal-Difference Learning 简称 TD learning &#xff08;时序差分算法&#xff09;就是第二种 model-free 的方法。而对于 蒙特卡洛方法其是一种 non…

QWidget窗口抗锯齿圆角的一个实现方案(支持子控件)2

QWidget窗口抗锯齿圆角的一个实现方案&#xff08;支持子控件&#xff09;2 本方案使用了QGraphicsEffect&#xff0c;由于QGraphicsEffect对一些控件会有渲染问题&#xff0c;比如列表、表格等&#xff0c;所以暂时仅作为研究&#xff0c;优先其他方案 在之前的文章中&#…

论文辅助笔记:ST-LLM

1 时间嵌入 2 PFA&#xff08;Partial Frozen Architecture&#xff09; 3 ST_LLM 3.1 初始化 3.2 forward

Idea新增Module报错:sdk ‘1.8‘ type ‘JavaSDK‘ is not registered in ProjectJdkTable

文章目录 一&#xff0c;创建Module报错二&#xff0c;原因分析三&#xff0c;解决方案1&#xff0c;点击上图的加号&#xff0c;把JDK8添加进来即可2&#xff0c;点击左侧[Project]&#xff0c;直接设置SDK为JDK8 四&#xff0c;配置检查与验证 一&#xff0c;创建Module报错 …

【Linux】:进程创建与终止

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关Linux程序地址空间的相关知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从…

dell Vostro 3690安装win11 23h2 方法

下载rufus-4.5.exe刻U盘去除限制 https://www.dell.com/support/home/zh-cn/product-support/product/vostro-3690-desktop/drivers dell官网下载驱动解压到U盘 https://dl.dell.com/FOLDER09572293M/2/Intel-Rapid-Storage-Technology-Driver_88DM9_WIN64_18.7.6.1010_A00_01…

【鸿蒙学习笔记】创建自定义组件

官方文档&#xff1a;创建自定义组件 目录标题 [Q&A] 如何自定义组件&#xff1f;&#xff11;・struct 自定义组件名 {...}&#xff12;・build()函数&#xff1a;&#xff13;・&#xff20;Component&#xff14;・Entry&#xff15;・Reusable 自定义组件的参数 buil…

GD32 MCU ADC采样率如何计算?

大家在使用ADC采样的时候是否计算过ADC的采样率&#xff0c;这个问题非常关键&#xff01; 以下为GD32F303系列MCU中有关ADC的参数&#xff0c;其中ADC时钟最大值为40MHz&#xff0c;12位分辨率下最大采样率为2.86MSPS.如果ADC时钟超频的话&#xff0c;可能会造成ADC采样异常&…

SAP_MM模块-采购信息记录变更文档的三种查询方式

最近有用户在问采购信息记录变更的信息怎么去查找&#xff0c;想要看看是谁更改了价格&#xff0c;于是就给她查了一下&#xff0c;顺便做个记录&#xff0c;SAP中的业务数据或者主数据的变更信息查询方法&#xff0c;都是比较类似的&#xff0c;学会了这三个方法&#xff0c;其…

商家店铺电商小程序模板源码

橙色通用的商家入驻&#xff0c;商户商家&#xff0c;商家店铺&#xff0c;购物商城&#xff0c;商家购物平台app小程序网页模板。包含&#xff1a;商家主页、优先商家、商品详情、购物车、结算订单、个人中心、优惠券、会员卡、地址管理等功能页面。 商家店铺电商小程序模板源…

SSM高校教师教学质量评估系统-计算机毕业设计源码03344

摘要 在高等教育中&#xff0c;教学质量是培养优秀人才的关键。为了提高教学质量&#xff0c;高校需要建立一套科学、有效的教师教学质量评估系统。本研究采用 SSM技术框架&#xff0c;旨在开发一款高校教师教学质量评估系统。 SSM框架作为一种成熟的Java开发框架&#xff0c;具…

Centos新手问题——yum无法下载软件

起因&#xff1a;最近在学习centos7&#xff0c;在VM上成功安装后&#xff0c;用Secure进行远程登陆。然后准备下载一个C编译器&#xff0c;看网络上的教程&#xff0c;都是用yum来下载&#xff0c;于是我也输入了命令&#xff1a; yum -y install gcc* 本以为会自动下载&…

DevEco Studio无法识别本地模拟器设备的解决方法

目录 场景 解决办法 方式1 方式2 场景 有很多小伙伴遇到过安装了手机模拟器, 但是开发工具设备栏不识别手机设备的问题, 如下图,明明模拟器都安装了,并启动, 但为什么设备栏不显示呢? 解决后的截图,应该是这样(其实跟 android 类似 )