学习日志8.21--防火墙NAT

news2024/9/29 22:16:13

在学习过基于路由器的NAT网络地址转换,现在学习基于防火墙NAT的网络地址转换,防火墙的NAT配置和路由器的NAT配置还是有比较大的区别。

防火墙NAT是通过NAT策略实现的,在创建防火墙NAT之前需要先创建防火墙的安全策略。防火墙是不能直接在接口下配置NAT接口映射的

一、实验环境配置

实验拓扑结构图按标注给实验设备配置IP地址,在路由器中配置接口信息,在防火墙中配置接口信息。

给防火墙配置静态路由
命令:[FW01]ip route-static 0.0.0.0 0 GigabitEthernet 1/0/1 12.1.1.2

在防火墙中先划分接口的安全区域,将内网划分为Trust区域,将Internet划分为Untrust区域。
命令:[FW01]firewall zone trust,进入到Trust区域
命令:[FW01-zone-trust] add interface GigabitEthernet 1/0/2,将接口划分到Trust区域,那接口所在的公司内网就属于安全区域。
命令:[FW01]firewall zone untrust,进入untrust区域
命令:[FW01-zone-untrust]add interface  GigabitEthernet 1/0/1,将接口划分到Untrust区域

在防火墙配置安全策略
命令:[FW01]security-policy,进入到策略里面
命令:[FW01-policy-security]rule name tru-to-utru,新建一个策略规则,名字是tru-to-utru,意思是从trust区域到untrust区域
命令:[FW01-policy-security-rule-tru-to-utru]source-zone trust,配置源区域是trust
命令:[FW01-policy-security-rule-tru-to-utru]destination-zone untrust,目的区域是untrust
命令:[FW01-policy-security-rule-tru-to-utru]source-address 192.168.1.0,源地址是192.168.1.0
命令:[FW01-policy-security-rule-tru-to-utru]action permit,允许的动作是通过
配置安全策略,允许192.168.1.0网段的流量从trust区域到untrust区域的通过,安全策略没有配置目的地址,是因为连接Internet的地址太多,可以不进行配置,就只允许主动向外访问,不允许外主动向内访问。

在配置防火墙NAT之前应该先配置NAT策略,NAT策略配置应先配置防火墙地址组,然后再配置防火墙安全策略。

现在的需求是,给公司内网的两个主机PC1和PC2,两个客户端分配公有地址。服务器是外部访问内部的时候需要配置NAT,内部的主机访问内部的服务器是不需要配置NAT的。

向运营商申请四个地址120.1.1.101到10.1.1.104,分配给两台主机,两个客户端。运营商分配的地址120.1.1.0网段是和防火墙接口地址12.1.1.0不在同一个网段,所以应该由运营商的路由器进行静态路由的书写
命令:[ISP]ip route-static 120.1.1.101 32 GigabitEthernet 0/0/1 12.1.1.1
命令:[ISP]ip route-static 120.1.1.102 32 GigabitEthernet 0/0/1 12.1.1.1
命令:[ISP]ip route-static 120.1.1.103 32 GigabitEthernet 0/0/1 12.1.1.1
命令:[ISP]ip route-static 120.1.1.104 32 GigabitEthernet 0/0/1 12.1.1.1
命令:[ISP]dis ip routing-table,查看路由表的信息

实验环境配置完毕

二、配置防火墙静态NAT一对一

配置公有地址组
命令:[FW01]nat address-group no-pat01,创建一个地址组,名字叫no-pat01,因为这个是用来配置静态的一对一,所以我叫no-pat01
命令:[FW01-address-group-no-pat01]mode no-pat global,模式是no-pat global

配置地址段
命令:[FW01-address-group-no-pat01]section 0 120.1.1.101,配置的地址段是0,如果配置的地址分为好多个段,就可以给每个段分配一个ID,比如120.1.1.101-120.1.1.102为一个段ID是1,120.1.1.103-120.1.1.104为一个段ID是2,相当一后面的数字是ID。因为是一对一配置,所以就给了一个地址,正常是应该配置起始地址和结束地址的,但是因为就配置一个地址,所以直接写一个地址就可以。

配置NAT安全策略,将NAT地址组和NAT的安全策略绑定
命令:[FW01]nat-policy,进入NAT策略
命令:[FW01-policy-nat]rule name pc1,配置规则,因为是给PC1配置的说以就起名字叫pc1
命令:[FW01-policy-nat-rule-pc1]source-zone trust,配置源区域是trust
命令:[FW01-policy-nat-rule-pc1]destination-zone untrust,配置目的区域是untrust
命令:[FW01-policy-nat-rule-pc1]source-address 192.168.1.1 32,配置源地址是192.168.1.1
命令:[FW01-policy-nat-rule-pc1]action source-nat address-group no-pat01,配置规则的行为动作是让源地址和NAT进行绑定,绑定的NAT地址组是no-pat01。

配置好后用PC1访问百度访问成功。

分析整个过程。首先是PC1向外发出PING请求数据包,数据包到防火墙之后,会查看路由进行转发,查看路由之后,因为目的地址是80.1.1.1路由表没有这个路由,就从默认路由转出,然后匹配防火墙区域间策略turst到untrust的流量允许通过,然后再匹配NAT安全策略,有匹配的信息,将192.168.1.1转换成120.1.1.101,然后生成会话表,然后根据会话表进行NAT地址转换,然后从NAT转换后从默认路由转发到Internet的路由器上,然后再转发到百度的服务器。百度的服务器先将回包数据转发到Internet的路由器上,通过路由器配置的静态路由再转发到防火墙上,在防火墙上匹配会话表然后允许流量通过,回到PC1。

在用PC1通一下百度,快速查看防火墙会话表ping五个包,有五条会话表。在会话表中,包含两个源地址,一个是NAT转换前的,一个是NAT转换后的。

现在在做用PC1和PC2各通百度一个包,然后查看会话表有什么不同。看到在PC1上配置了防火墙NAT转换后的会话表会有源地址和转换后的地址,但是没有配置NAT的PC2就没有转换后的地址。

防火墙在进行NAT转换时会创建一个server-MAP表Server-map表分为两个部分,因为是时间顺序生成,先生成的会在下面,第一部分是no-pat Reverse的逆向server-map表,第二部分是no-pat的正向server-map。所谓的正向server-map表是从内向外发送的数据,IP地址是192.168.1.1由地址转换到120.1.1.101转发到ANY,匹配这个表就可以完成源地址转换成NAT地址的高速转换。所谓逆向server-map表就是从外向发送到内向的数据,IP地址是ANY转发到120.1.1.101然后地址转换到192.168.1.1,实现目的地址的高速转换。

在做配置NAT地址组的时候,配置了一个global,还有local,那这两个配置有什么区别呢。分别在NAT的global模式和local模式下用PC1通百度,然后查看防火墙的server-map表

global模式local模式在global模式的时候,防火墙创建的会话表的zone区域是空的,意思是在任意区域来的流量都可以匹配这个会话表然后进行NAT地址的转换。在local模式的时候,防火墙创建的会话表的区域是untrust,意思是只有在通往untrust的流量和从untrust区域来的才可以匹配这个会话表然后进行NAT地址的转换。所以global是不做安全区域限制的,local是会做安全区域的限制的。

来说说NAT转换的黑洞路由,其实跟路由器的黑洞接口类似。当外网的客户端访问内网的服务器的时候服务器会给出一个公有地址,比如说120.1.1.0网段的地址,假如说现在外网客户端访问防火墙的120.1.1.101,就会先把数据发送到客户端的网关,即Internet的路由器,然后由路由器中的静态路由转发到防火墙,再在防火墙中查路由表,但是路由表中没有120.1.1.0网段的路由信息没有120.1.1.101的路由信息,防火墙路由器就会从配置的默认路由转发到Internet的路由器上,然后Internet的路由器再从静态路由转发到防火墙上,然后再从防火墙转发到Internet的路由器上,以此循环。

在外网的客户端上ping防火墙120.1.1.101一个包,在g1/0/1上抓包。ping失败,不通。在数据包上,一共发送了254个数据包,都是ICMP的request消息。像这样消息循环发送的称为数据环路,一条消息环路,只能被转发255次,在每个数据包下面有个存活时间当这个值到255的时候就不在进行转发了。

如何解决这个问题呢
可以通过配置默认路由将这个路由信息给他制定转发到黑洞里面去
命令:[FW01]ip route-static 120.1.1.101 32 null0,将120.1.1.101的数据转发到黑洞接口里面
这是手动配置产生黑洞路由

配置好后,用外网的客户端访问防火墙的120.1.1.101,然后重新在防火墙g1/0/1抓包这次就只发送一个包,生存时间的值是254,将发往120.1.1.101的数据都转发到黑洞里面直接丢弃了。

还可以通过在nat地址组里面配置,让数据自动进入黑洞。
命令:[FW01]undo ip route-static 120.1.1.101 32 null0,先关闭之前的配置的黑洞接口
命令:[FW01-address-group-no-pat01]route enable,在之前配置的NAT地址组里面开启允许NAT路由配置好后查看防火墙路由表的信息,会生成一个Unr和NAT相关的路由。这个就是直接产生黑洞路由。

配置好后,用客户端测试一下还是就只发送了一个包,其他的包都发送到黑洞接口,把数据丢弃掉了。

还有一个值得注意的是,在配置好静态的NAT的时候,会有这样一条通知说当前的配置模式是no-pat,即进行NAT转换但是不进行PAT端口转换,如果你的其他的某些业务不需要进行NAT的转换,还需要创建一个新的NAT规则叫No-nat。这是为什么呢?

现在有一个需求,在访问百度的时候进行地址NAT转换,在访问外网客户端Client3 200.1.1.1的时候不进行地址转换。查看NAT的策略,配置了一条是流量从trust区域到untrust区域允许192.168.1.1的通过,目的地址是Any。意味着pc1不仅可以访问百度,还可以访问200.1.1.1。先在限制pc1在访问百度的时候才会进行NAT地址转换,在访问200.1.1.1的时候不进行NAT地址转换。

命令:[FW01-policy-nat]rule name PC1,进入NAT安全策略
命令:[FW01-policy-nat-rule-PC1]destination-address 80.1.1.1 32,配置目的地址查看配置结果,源地址是192.168.1.1访问目的地址80.1.1.1的时候进行源地址的NAT转换。

配置好后用PC1分别去通百度和200.1.1.1,看看能不能通。ping百度能通  ping200.1.1.1也能通      

这是因为在配置NAT安全策略动作的时候可以配置destination-address目的地址的NAT地址转换,也可以配置source-address源地址的NAT地址转换,还可以配置不进行地址转换。在PC1策略中配置的是源地址进行NAT转换,所以在匹配到安全策略的source-address的时候进行NAT地址转换,没有匹配的就不进行地址转换(默认动作是禁止的)。而destination-address因为没有做目的地址的NAT转换所以,对于目的地址不管有没有匹配到安全策略,他都会进行地址转换(默认动作是放行的)。

如果要不让访问200.1.1.1的时候进行地址转换就要再配置一条no-nat的安全策略。
命令:[FW01-policy-nat]rule name PC1-deny,配置一条新的策略名字叫PC1-deny
命令:[FW01-policy-nat-rule-PC1-deny]source-zone trust,源区域是trust
命令:[FW01-policy-nat-rule-PC1-deny]destination-zone untrust,目的区域是untrust
命令:[FW01-policy-nat-rule-PC1-deny]source-address 192.168.1.1 32,源地址是192.168.1.1
命令:[FW01-policy-nat-rule-PC1-deny]destination-address any,目的地址是任何
命令:[FW01-policy-nat-rule-PC1-deny]action no-nat,配置的动作是不做NAT转换配置好后查看。现在配置了两条策略,再匹配的时候会按照顺序进行匹配。访问80.1.1.1的流量就会匹配到PC1的策略,允许地址转换,流量能够通过。访问200.1.1.1的流量因为匹配不上PC1策略的目的地址,于是会匹配到PC1-deny的目的地址的策略上,操作动作是拒绝地址转换,流量无法通过。

下面用PC1分别访问80.1.1.1和200.1.1.1。访问200.1.1.1失败访问80.1.1.1成功。

这个就是对这个INFO的解释和运用。

三、配置防火墙静态NAT多对多

配置静态NAT多(地址组)对多(地址池),从本质上来说还是一对一绑定,在进行绑定时配置是多对多配置,在内部获取外部NAT地址时,仍然是一对一绑定。如果采用的是一对一绑定,就要不断创建NAT的地址组,然后和本地地址进行绑定。在之前的配置中,给本地地址192.168.1.1创建的地址组,如果要对192.168.1.2进行NAT配置,就要为192.168.1.2创建一个地址组
命令:[FW01]nat address-group pc2,配置NAT策略名字叫pc2
命令:[FW01-address-group-pc2]mode no-pat  global,配置模式
命令:[FW01-address-group-pc2]route enable,允许路由
命令:[FW01-address-group-pc2]section 0 120.1.1.102,配置地址

接下来,给pc2配置nat的安全策略
命令:[FW01]nat-policy ,进入到nat的安全策略视图
命令:[FW01-policy-nat]rule name PC2,策略名字叫PC2
命令:[FW01-policy-nat-rule-PC2]source-zone trust,源区域是trust
命令:[FW01-policy-nat-rule-PC2]destination-zone untrust ,目的区域是untrust
命令:[FW01-policy-nat-rule-PC2]source-address 192.168.1.2 32,源地址是192.168.1.2
命令:[FW01-policy-nat-rule-PC2]action source-nat address-group PC2,将源地址和NAT地址进行绑定查看配置结果

用PC2访问百度,看能不能通能通,配置成功。查看NAT的address-group地址表,我们看到配置了两个地址组,一个是给PC1配置的,一个是给PC2配置的。所有如果采用一对一配置需要创建多个地址组,还需要配置多个nat策略,会比较麻烦。

可以通过创建公有地址组和私有地址池进行绑定,然后自动分配,然后通过server-map表进行流量的控制。和基于路由器的多对多的NAT转换是一致的。

配置
命令:[FW01]nat address-group ag01,创建一个NAT地址组名字叫ag01
命令:[FW01-address-group-ag01]mode no-pat  global,配置模式
命令:[FW01-address-group-ag01]route enable,生成全局路由
命令:[FW01-address-group-ag01]section 0 120.1.1.101 120.1.1.103,配置IP地址段
Error: The address section conflict,配置的时候有一条报错,说有地址段冲突,是因为在配置section的时候后面的段号 0 有冲突,在no-pat01的地址组中section 0配置给了120.1.1.101,和现在配置的120.1.1.101 到 120.1.1.103之间有地址冲突,在120.1.1.102的地址给了pc2的地址组,和现在的地址组冲突。解决的办法是,把之前的地址组删除,因为之前的配置不做了,现在是做多对多的配置,所以之前的配置就不需要了。删除这个地址组的时候提示被NAT安全策略使用了,于是又需要删除对应的NAT安全策略。查看NAT安全策略,需要把这两个安全策略删除
命令:[FW01]nat-policy ,进入到nat策略视图
命令:[FW01-policy-nat]undo rule name PC1,删除给PC1配置的NAT策略
命令:[FW01-policy-nat]undo rule name PC2,删除给PC2配置的NAT策略
命令:[FW01]undo nat address-group no-pat01,删除掉地址组no-pat01
命令:[FW01]undo nat address-group pc2,删除掉地址组pc2

删除之后,接上之前报错的地方继续配置section
命令:[FW01-address-group-ag01]section 0 120.1.1.101 120.1.1.103,配置地址段是从120.1.1.101到120.1.1.103,分配三个公有地址。

配置安全策略
命令:[FW01]nat-policy ,进入nat策略视图
命令:[FW01-policy-nat]rule name np01,配置的策略名字是np01
命令:[FW01-policy-nat-rule-np01]source-zone trust,源区域是trust
命令:[FW01-policy-nat-rule-np01]destination-zone untrust,目的区域是untrust
命令:[FW01-policy-nat-rule-np01]source-address 192.168.1.0 24,源地址是192.168.1.0,允许192.168.1.0的网段通过
命令:[FW01-policy-nat-rule-np01]action source-nat address-group ag01,将NAT地址组和本地地址池绑定

配置好后,分别用主机和客户端去通百度,每次一个包,然后迅速查看防火墙的会话表实验现象是用两台主机和两台客户端去通百度,只有最先请求访问的三台设备能够访问成功。从防火墙的会话表中可以看到,公有地址120.1.1.102分配给了192.168.1.2,公有地址120.1.1.101分配给了192.168.1.1,公有地址120.1.1.103分配给了192.168.1.4。和基于路由器的多对多配置一样,在会话表消失以后,任意三台设备都可以分配到这三个地址供上网使用。这次公有地址120.1.1.102分配给了私有地址192.168.1.2,公有地址120.1.1.101分配给了私有地址192.168.1.5,公有地址120.1.1.103分配给了私有地址192.168.1.4。

静态NAT多对多的地址转换,本质上是公有地址组内的多个地址和私有地址池内的多个地址进行一对一的绑定,在防火墙生成会话表之后可以访问网络,在会话表消除之后可以重新访问网络,没有访问到网络的,需要排队。

四、配置防火墙NAT端口转换NAPT

在基于路由器的NAT端口转换的时候,如果发送的是传输层的流量,在NAT转换的时候会把端口给转换了,如果发送的是ICMP的ping流量,在NAT转换的时候会转换对应的ICMPID信息。

要配置端口转换,就要将NAT地址组的模式转换成PAT的模式

命令:[FW01-address-group-ag01]mode pat ,进入到地址组视图,将模式配置成PAT模式
警告提示,说当前地址组运用在一个策略里面。所以说要修改地址组的配置,就要删除这个策略,重新配置策略。

命令:[FW01]dis nat-policy rule all,查看已经配置的NAT策略
命令:[FW01-policy-nat-rule-np01]undo action source-nat,进入到配置的NAT规则里面,删除绑定信息,然后修改配置NAT地址组后,重新进行绑定。
命令:[FW01-address-group-ag01]mode pat,进入到地址组视图,模式配置成PAT端口转换
命令:[FW01-address-group-ag01]section 0 120.1.1.101,如果是使用端口转换的话,可以配置使用一个公有地址就可以了。
命令:[FW01-policy-nat-rule-np01]action source-nat address-group ag01,回到NAT视图进行源地址和NAT地址组进行绑定

配置好后,用两个主句和两个客户端去访问百度,然后再查看防火墙会话表发现都访问成功,而且再转换过程中不仅将地址转换了,还将端口转换了。

在进行端口转换的时候,防火墙不会产生server-map表。对于server-map表是因为,在内部地址和公有地址建立映射关系之后,后续内部地址和公有地址就可以不用再建立映射关系,就能实现对重复的数据快速转发,但是端口转换的话,再每次进行访问都要进行内部地址和端口的转换,每次转换都是不一样的,因此不会建立server-map表。

端口转换关于内网外网地址比的问题。即一个公有地址可以限制能转换多少个私有地址,最多是60k多个。

再实验之前,先将之前的配置删除,因为要修改NAT地址组的配置,所以要删除NAT策略和地址组的绑定
命令:[FW01]nat-policy,进入NAT策略视图
命令:[FW01-policy-nat]rule name np01,进入NAT策略
命令:[FW01-policy-nat-rule-np01]undo action source-nat,删除之前的绑定

然后再NAT地址组中修改策略制定源IP的最大数量,即一个公有IP最大能转换多少私有IP,最大为63488个私有IP
命令:[FW01-address-group-ag01]srcip-car-num 3,配置最多转换三个私有IP

然后再NAT策略中绑定NAT地址组
[FW01-policy-nat-rule-np01]action source-nat  address-group ag01,进入到NAT策略视图,配置NAT地址组的绑定

配置好后用两台主机和俩个客户端去访问百度,然后查看防火墙的会话表通过实验现象,看到四台设备同时访问百度,只有三台设备能够成功访问百度,而且防火墙的会话表也只建立了三个。

那控制内网外网地址比例问题主要运用在网络的带宽问题上,在向运营商申请的公有地址中运营商会限制这个网络的带宽,比如给120.1.1.101分配了100M的带宽,如果不进行内网地址的限制的话,可能出现一个公有地址同时转成100个私有地址,每个地址分到的带宽是1M,这样速度就会很慢,如果进行内网地址的限制,每个公有地址限制同时转换3个私有地址,每个地址分到的带宽就是33M,这样速度就快些。同时剩下的私有地址,就需要通过向运营商申请更多的公有地址才能上网。

五、防火墙smart-nat、easyip

Smart-nat,就是在网络用户低谷的时候采用no-nat的配置,在有大量用户的时候采用smart-nat的配置采用端口转换。这样配置的好处是,不进行端口转换的时候,可以和公有地址建立联系,生成server-map表,在下次流量进来的时候,可以快速进行访问;进行端口转换的时候,可以用一个公有地址进行多个私有地址的转换,用来弥补公有地址的不足。

实验之前先将之前的NAT策略删除,只删除绑定的NAT地址组就可以

然后再配置NAT地址组
命令:[FW01]undo nat address-group ag01,将原来的nat地址组删除
命令:[FW01]nat address-group ag01,创建一个新的地址组名字叫ag01
命令:[FW01-address-group-ag01]mode no-pat global,配置的地址组的模式
命令:[FW01-address-group-ag01]section 0 120.1.1.101 120.1.1.103,配置地址段
命令:[FW01-address-group-ag01]smart-nopat 120.1.1.104,配置smart-nat
命令:[FW01-address-group-ag01]route enable,开启路由

命令:[FW01-policy-nat-rule-np01]action source-nat address-group ag01,然后在NAT策略下绑定NAT地址组

这个配置相当于,在流量很少的时候,先用120.1.1.101到120.1.1.103的地址,进行no-pat的NAT地址转换,在流量很多的时候,启用smart-nopat,进行NAT的端口地址转换。可以说smart-nat就是一个备用地址,当不够用的时候,就释放出来使用。

配置好后用主机和客户端去访问百度,然后查看防火墙的会话表最后的实验结果是,都能访问百度,查看会话表可以知道,192.168.1.2和192.168.1.1和192.168.1.4都只是进行地址转换,没有进行端口转换,用的是no-pat的策略,192.168.1.5不仅发生了地址转换而且还发生了端口转换,从原来的256转换成2048,用的smart-nap的策略。

easy IP,在基于路由器的easy IP中,是通过使用路由器端口的地址来充当向运营商申请的公有地址,就不用再另外向运营商申请公有地址了。那在防火墙下的easy IP也是这样,通过将防火墙和外网连接的端口的IP地址来充当内网的公有地址,实现NAT的地址转换。        

命令:[FW01-policy-nat-rule-np01]undo action source-nat,先将之前的配置的nat策略删除
在配置地址段的命令下可以配置easy-IP和address-group,以及其他。
命令:[FW01-policy-nat-rule-np01]action source-nat easy-ip,配置将源地址和easy-ip地址进行绑定,在地址转换的时候,转换成easy-ip的地址。

配置好后,用主机和客户端去访问百度,查看防火墙的会话表,观察实验结果实验现象是,四台设备都成功访问百度,查看会话表,四台设备的地址都转换成了easy-ip地址,即防火墙和外网的接口的IP地址12.1.1.1。

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

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

相关文章

i2c-tool工具

i2c-tool工具的使用方法 包括i2cdetect、i2cget、i2cset、i2cdump、i2ctransfer i2cdetect命令 该命令用于扫描I2C总线上的设备。 语法:i2cdetect [-y] [-a] [-q|-r] i2cbus [first last]:参数说明:参数y:关闭交互模式&#xf…

GEE 教程:如何实现对指定矢量集合的归一化操作(以北京市各区县面积和边长为例)

简介 数据归一化处理是指将数据按照一定的规则进行变换,使数据落入一个特定的区间范围内。数据归一化处理的目的是消除数据之间的量纲差异,同时保留数据的分布特征,以便更好地进行数据分析和建模。 常见的数据归一化方法有如下几种&#xf…

快讯 | 谷歌AI引擎GameNGen颠覆游戏产业:0代码生成《毁灭战士》

硅纪元快讯栏目,每日追踪AI领域的最新动态,快速汇总最新科技新闻,助您时刻紧跟行业趋势。简明扼要的呈现资讯概要,让您快速了解前沿资讯。 1分钟速览新闻 ChatGPT用户翻倍突破2亿,AI工具融入日常生活 智谱AI发布尖端语…

电工手册 v77.9 — 专业电气知识与实用工具(Mod版)

电工手册是一款专门为电力领域从业者及爱好者设计的知识普及与技能提升应用。无论你是专业电工、DIY爱好者,还是对电力领域有兴趣的学生,这款应用都能为你提供大量实用的资源和工具。内容涵盖电气理论、接线图和计算器等多个方面,旨在帮助用户…

(echarts)散点图怎么给横坐标添加单位

(echarts)散点图怎么给横坐标添加单位 效果: 代码: 拓展-给值加

类在JVM中的工作原理

文章目录 引言I 类在JVM中的工作原理class文件的结构类的生命周期II JVM运行时数据区堆栈的意义栈帧内部结构堆III 在JIT中比较常见的优化手段引言 类是一种抽象概念,它是一种模板,用来定义一类事物的属性和行为。类是面向对象编程的基础,它是一种抽象的概念,代表一类事物…

Java 魔法类 Unsafe 源码解读(一)

Java 魔法类 Unsafe 源码解读(一) 前言 阅读过 JUC 源码的同学,一定会发现很多并发工具都调用了一个叫做 Unsafe 的类。 那这个类的作用是什么呢?有什么使用场景呢?底层源码是什么样呢?这篇文章笔者就带…

uni-app商城小程序+后台管理系统,手把手教你搭建

uni-app商城小程序是一种通过uni-app框架开发的,可以在微信、支付宝、字节跳动等多个平台上运行的轻量级电商应用。 一、特点 跨平台兼容:基于uni-app框架,一次开发,可同时适配微信小程序、支付宝小程序、H5、App等多个平台&…

3DMAX2025新款插件精选大全

关于3DMAX2025的新款插件,虽然无法提供一个详尽无遗的列表,本文根据公开发布的信息和插件的流行趋势,概述一些新款插件或插件更新。请注意,由于插件市场不断变化,以下信息可能随时间而有所更新。 以下插件按首字母排序…

ts转mp4怎么转?分享3个方法,快速搞定

在视频编辑和处理的世界里,格式转换是一个常见且必要的任务。特别是当你手头上有一些ts格式的视频文件,而你又需要将它们转换成更通用、更容易分享的mp4格式时,了解如何进行转换就显得尤为重要。 只有掌握了格式转换的技能,我们才…

yolov8训练野火烟雾识别检测模型

1.数据集下载 数据集下载链接:https://hyper.ai/datasets/33096 2. 数据集格式转换 需要将json中的标注信息转换为yolo格式的标注文件数据 import json import os import shutil import cv2 import matplotlib.pyplot as plttarget "./data/val" def…

如何在没有密码的情况下解锁 Oppo 手机?5 种简单的方法

保护智能手机隐私的一种很好的方法是设置复杂的锁屏密码或图案。一些 OPPO 手机的所有者在更改后一夜之间经历了图案或密码的内存丢失。事实上,OPPO 用户遇到的众多问题包括忘记密码或锁定屏幕。遗憾的是,没有多少人知道无需密码即可解锁 OPPO 手机的简单…

JAVA毕业设计166—基于Java+Springboot+vue3的流浪宠物救助管理小程序(源代码+数据库)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue3的流浪宠物救助管理小程序(源代码数据库)166 一、系统介绍 本项目前后端分离带小程序(可以改为ssm版本),分为用户、救助站、管理员三种角色 1、…

chapter09-OOP高级部分——(类变量和类方法)——day12

目录 ​编辑 374-类变量引出 375-类变量快速入门 376-类变量内存剖析 377-类变量定义访问 378-类变量使用细节 379-类方法快速入门 380-类方法最佳实践 381-类方法注意事项 静态方法只能访问静态变量 非静态方法可以访问静态成员和非静态成员(都可以访问…

OpenAI AI 聊天机器人周活跃用户超 2 亿

🦉 AI新闻 🚀 OpenAI AI 聊天机器人周活跃用户超 2 亿 摘要:科技媒体 Axios 报道,OpenAI 的 AI 聊天机器人在短短一年内实现了周活跃用户超过 2 亿的增长。该公司表示,全球财富 500 强企业中已有 92% 使用其产品&…

革新客户服务艺术:揭秘高效集成第三方平台与质检升级的前沿策略

Hi~这里是ProXiao 文章参考:晓观点 如何实现与第三方客服平台的有效对接并提高客户服务的质检水平?https://insight.xiaoduoai.com/intelligent-tools/quality-inspection/how-to-achieve-effective-integration-with-third-party-customer-service-pl…

书法图片自动扣字的批处理

本程序会根据原文字图片,自动扣字并生成黑字、红字2个透明的png图片,原图片黑字或白字均可。运行的话需要先安装好 ImageMagick-7.1.1-37 用法与生成效果举例: a.jpg 白字 转 黑、红扣字png: b.jpg 黑字 转 黑、红扣字png: 分享脚本如下: …

Kafka 到数据仓库:使用 bend-ingest-kafka 将消息加载到 Databend

将消息从 Apache Kafka 导入到像 Databend 这样的云数据仓库可能是一项艰巨的任务。bend-ingest-kafka 工具简化了这一过程,使您能够轻松地将 Kafka 消息导入到 Databend 表中。 什么是 bend-ingest-kafka? bend-ingest-kafka 工具是一个专门为从 Apac…

网上一堆教人用AI做自媒体的,真的能挣钱吗?看我真实测评~

今日主题:AI副业能做吗? 今年这情况,几乎所有人都想搞个副业。 有人问我:普通人真的能靠AI做自媒体搞钱吗? 先说结论:可以,但要找准路子! 听我慢慢道来~ 我是今年开始做AI自媒体…

同声传译用什么软件?5款优质软件评测

最近,我遇到了一个尴尬的情况。在一次国际会议中,我被分配到了一个多语言小组讨论。虽然我的英语还算流利,但面对来自世界各地的同事们,各种口音和语速让我感到有些力不从心。 那一刻,我多么希望有一个神奇的工具&…