【LinuxShell】linux防火墙之firewalld防火墙

news2024/11/25 2:26:45

文章目录

  • 前言
  • 一、firewalld概述
    • 1. 概念
    • 2. firewalld和iptables的关系
  • 二、firewalld网络区域
    • 1. firewalld区域的概念
    • 2. firewalld预定义区域
    • 3. firewalld数据包的处理
      • 3.1 firewalld数据处理流程
      • 3.2 firewalld检查数据包的源地址的规则
      • 3.3 总结
  • 三、firewalld防火墙的配置方法
    • 1. 使用firewall-cmd命令行工具
      • 1.1 区域管理
      • 1.2 服务管理
      • 1.4 端口管理
      • 1.5 协议管理
      • 1.6 设置地址转换
    • 2.使用firewall-config图形工具
    • 3.编写/etc/firewalld/中的配置文件


前言

  在Internet中,企业通过架设各种应用系统来为用户提供各种网络服务,比如Web网站、电子邮件、FTP服务器等。而且大部分都是使用Linux服务器进行搭建的。那么,想要保护这些服务器,过滤非授权的访问,甚至恶意进入内部网络 。就需要使用到——防火墙

  防火墙除了硬件防火墙之外,Linux系统的防火墙也十分强大,今天主要认识CentOS 7系统的防火墙——firewalld

一、firewalld概述

1. 概念

  firewalld防火墙是centos7系统默认的防火墙管理工具,取代了之前的iptables防火墙,也是工作在网络层,属于包过滤防火墙。

  firewalld和liptables都是用来管理防火墙的工具(属于用户态)来定义防火墙的各种规则功能,内部结构都指向netfiter网络过滤子系统(属于内核态)来实现包过滤就火墙功能。

  firewalld提供了支持网络区域所定义的网络连接以及接口安全等级的动态防火墙管理工具。它支持IPv4、IPv6防火墙设置以及以太网桥(在某些高级服务可能会用到,比如云计算〉,并且拥有两种配置模式:运行时配置永久配置

2. firewalld和iptables的关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PnGeovV6-1684743754440)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230522143951227.png)]

基于方式不同

  iptables主要是基于接口,来设置规则,从而判断网络的安全性。

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

配置文件所在位置不同

  iptables 在/etc/sysconfig/iptables 中储存配置,

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

对规则修改不同

  使用iptables 每一个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptables里读取所有新的规则。(规则修改完后会立即生效

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

防火墙类型不同

  iptables防火墙类型为静态防火墙。可以理解为iptables的规则就是一张表,对表进行增删改查操作。

  firewalld防火墙类型为动态防火墙。可以理解为firewalld的规则是一块区域,可以更换不同的区域进行增删改查操作。

二、firewalld网络区域

1. firewalld区域的概念

  firewalld防火墙为了简化管理,将所有网络流量分为多个区域(zone)。然后根据数据包的源IP地址或传入的网络接口等条件将流量传入相应区域。每个区域都定义了自己打开或者关闭的端口和服务列表。

2. firewalld预定义区域

  • 区域如同进入主机的安全门,每个区域都具有不同限制程度的规则,只会允许符合规则的流量传入。
  • 可以根据网络规模,使用一个或多个区域,但是任何一个活跃区域至少需要关联源地址或接口。
  • 默认情况下,public区域是默认区域,包含所有接口(网卡)。
  • 最终一个区域的安全程度是取决于管理员在此区域中设置的规则。

  如果数据包的源地址与区域绑定,则此数据包不管从那个网卡传入都使用改区域的规则过滤数据包。如果数据包的源地址未与区域绑定,则此数据从哪个网卡传入则使用该网卡绑定的区域规则过滤数据包。

区域名含义
trusted(信任区域)允许所有的传入流量。
public(公共区域)默认允许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。是新添加网络接口的默认区域。
external(外部区域)默认允许与 ssh预定义服务匹配的传入流量,其余均拒绝。
默认将通过此区域转发的IPv4传出流量将进行地址伪装(MASQUERADE),可用于为路由器启用了伪装功能的外部网络。
home(家庭区域)默认允许与ssh、mdns、samba-client或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。
internal(内部区域)默认值时与home区域相同。
work(工作区域)允许与 ssh、dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。
dmz(隔离区域也称为非军事区域)默认允许与 ssh预定义服务匹配的传入流量,其余均拒绝。
block(限制区域)拒绝所有传入流量。
drop(丢弃区域)丢弃所有传入流量,并且不产生包含ICMP的错误响应。

  注意:默认情况的默认区域为public(默认与所有网卡绑定),要激活某个区域,就需要将区域与源地址网卡绑定。

3. firewalld数据包的处理

3.1 firewalld数据处理流程

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

3.2 firewalld检查数据包的源地址的规则

  若源地址关联到特定的区域(即源地址或接口绑定的区域有冲突),则执行该区域所制定的规则。

  若源地址未关联到特定的区域(即源地址或接口绑定的区域没有冲突〉,则使用传入网络接口的区域并执行该区域所制定的规则。

  若网络接口也未关联到特定的区域(即源地址或接口都没有绑定特定的某个区域),则使用默认区域并执行该区域所制定的规则。

3.3 总结

  先检查传入数据包的源地址,若源地址与特定区域绑定,则使用该区域的规则过滤数据包。若源地址与特定区域没有绑定,且数据包传入网卡与特定区域绑定,则使用绑定网卡的区域的规则过滤数据包。若也没有区域绑定网卡,则使用默认区域的规则过滤数据包。

三、firewalld防火墙的配置方法

1. 使用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> :为指定的区域删除绑定的网络接口

--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> :删除指定区域已设置的允许访问的端口号(包括协议名)

[--zone=<zone>] --list-icmp-blocks :显示指定区域内拒绝访问的所有 ICMP 类型
[--zone=<zone>] --add-icmp-block=<icmptype> :为指定区域设置拒绝访问的某项 ICMP 类型
[--zone=<zone>] --remove-icmp-block=<icmptype> :删除指定区域已设置的拒绝访问的某项ICMP类型
firewall-cmd --get-icmptypes :显示所有 ICMP 类型

1.1 区域管理

网卡接口显示操作

###显示所有可用的区域
[root@localhost ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
###显示当前默认区域
[root@localhost ~]# firewall-cmd --get-default-zone 
public
###显示当前正在使用的区域及其对应的网卡接口
[root@localhost ~]# firewall-cmd --get-active-zones
public
  interfaces: ens32 ens33  
###显示指定ens33接口绑定的区域
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33
public
###显示指定ens32接口绑定的区域
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens32
public

网卡接口添加与移除操作

###为指定的区域删除绑定的网络接口
[root@localhost ~]# firewall-cmd --remove-interface=ens33
success
###显示指定接口绑定的区域
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33
no zone
###为指定接口绑定区域
[root@localhost ~]# firewall-cmd --add-interface=ens33 --zone=work
success
###显示指定接口绑定的区域
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33
work
###显示当前正在使用的区域及其对应的网卡接口
[root@localhost ~]# firewall-cmd --get-active-zones
work
  interfaces: ens33
public
  interfaces: ens32

网卡接口修改操作

###为指定的区域更改绑定的网络接口
[root@localhost ~]# firewall-cmd --change-interface=ens33 --zone=home
success
[root@localhost ~]# firewall-cmd --get-active-zones
home
  interfaces: ens33
public
  interfaces: ens32

源地址操作

###为指定源地址绑定区域
[root@localhost ~]# firewall-cmd --add-source=2.2.2.2 --zone=work
success
###显示当前正在使用的区域及其对应的网卡接口或者源地址
[root@localhost ~]# firewall-cmd --get-active-zones
home
  interfaces: ens33
work
  sources: 2.2.2.2
public
  interfaces: ens32
###为指定的区域更改绑定的源地址
[root@localhost ~]# firewall-cmd --change-source=2.2.2.2 --zone=internal
success
###显示当前正在使用的区域及其对应的网卡接口或者源地址
[root@localhost ~]# firewall-cmd --get-active-zones
home
  interfaces: ens33
internal
  sources: 2.2.2.2
public
  interfaces: ens32
 ###为指定的区域移除绑定的源地址
[root@localhost ~]# firewall-cmd --remove-source=2.2.2.2 --zone=internal
success
###显示当前正在使用的区域及其对应的网卡接口或者源地址
[root@localhost ~]# firewall-cmd --get-active-zones
home
  interfaces: ens33
public
  interfaces: ens32

显示所有区域及其规则

[root@localhost ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens32
  sources: 
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	
[root@localhost ~]# firewall-cmd --list-all-zones
block
  target: %%REJECT%%
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

dmz
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

drop
  target: DROP
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

external
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

home (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: dhcpv6-client mdns samba-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

internal
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: dhcpv6-client mdns samba-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens32
  sources: 
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

trusted
  target: ACCEPT
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

work (active)
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 1.1.1.1
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

显示所有指定区域的所有规则

[root@localhost ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens32
  sources: 
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	
[root@localhost ~]# firewall-cmd --list-all --zone=work
work (active)
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 1.1.1.1
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

省略--zone=<zone>时表示仅对默认区域操作。

1.2 服务管理

###显示默认区域(public)内允许访问的所有服务
[root@localhost ~]# firewall-cmd --list-services
dhcpv6-client ssh
###为默认区域(public)设置允许访问的某项服务
[root@localhost ~]# firewall-cmd --add-service=http
success
###显示默认区域(public)内允许访问的所有服务
[root@localhost ~]# firewall-cmd --list-services
dhcpv6-client http ssh
###显示指定区域(home)内允许访问的所有服务
[root@localhost ~]# firewall-cmd --list-services --zone=home
dhcpv6-client mdns samba-client ssh
###为指定区域(home)设置允许访问的某项服务
[root@localhost ~]# firewall-cmd --add-service=http --zone=home
success
###显示指定区域(home)内允许访问的所有服务
[root@localhost ~]# firewall-cmd --list-services --zone=home
dhcpv6-client http mdns samba-client ssh
###删除指定区域(home)已设置的允许访问的某项服务
[root@localhost ~]# firewall-cmd --remove-service=http --zone=home
success
###显示指定区域(home)内允许访问的所有服务
[root@localhost ~]# firewall-cmd --list-services --zone=home
dhcpv6-client mdns samba-client ssh

  注意:一个区域可以绑定多个网卡或者多个源地址,一个网卡或者一个源地址只能绑定一个区域。

  如果想要同时添加多个服务可以使用以下方式

[root@localhost ~]# firewall-cmd --add-service=ftp --add-service=http
success
[root@localhost ~]# firewall-cmd --list-services
dhcpv6-client ftp http ssh

  以上方式只适用于少服务的多个添加,较为麻烦。如果服务添加的个数较多,可以使用{}用逗号进行分隔:

[root@localhost ~]# firewall-cmd --list-services --zone=work
dhcpv6-client ssh
[root@localhost ~]# firewall-cmd --add-service={ftp,http} --zone=work
success
[root@localhost ~]# firewall-cmd --list-services --zone=work
dhcpv6-client ftp http ssh

  以上操作运行时配置会立即生效,但是此方式是临时生效,重启firewalld服务后即失效。可以在firiewall-cmd的命令后面添加--permanent选项(此选项标识设置成永久生效),将之前的配置都转化成永久配置,重新加载防火墙规则时才会生效。

firewall-cmd --add-service={ftp,http} --zone=work -permanent
###重启防火墙
firewall-cmd --reload    或   systemctl restart firewalld

  若不带有-permanent选项,表示用于设置运行时规则,但是这些规则在系统或firewalld服务重启、停止时配置将失效。所以可以将当前的运行时配置写入规则配置文件中,使之成为永久性配置。

firewall-cmd --add-service={ftp,http} --zone=work --runtime-to-permanent

1.4 端口管理

###显示指定区域内允许访问的所有端口号
[root@localhost ~]# firewall-cmd --list-ports --zone=home

###为指定区域设置允许访问的tcp协议的80端口
[root@localhost ~]# firewall-cmd --add-port=80/tcp --zone=home
success
###显示指定区域内允许访问的所有端口号
[root@localhost ~]# firewall-cmd --list-ports --zone=home
80/tcp
### 删除指定区域已设置的允许访问的端口号(包括协议名)
[root@localhost ~]# firewall-cmd --remove-port=80/tcp --zone=home
success
###显示指定区域内允许访问的所有端口号
[root@localhost ~]# firewall-cmd --list-ports --zone=home

1.5 协议管理

###显示所有 ICMP 类型
[root@localhost ~]# firewall-cmd --get-icmptypes 
address-unreachable bad-header communication-prohibited destination-unreachable echo-reply echo-request fragmentation-needed host-precedence-violation host-prohibited host-redirect host-unknown host-unreachable ip-header-bad neighbour-advertisement neighbour-solicitation network-prohibited network-redirect network-unknown network-unreachable no-route packet-too-big parameter-problem port-unreachable precedence-cutoff protocol-unreachable redirect required-option-missing router-advertisement router-solicitation source-quench source-route-failed time-exceeded timestamp-reply timestamp-request tos-host-redirect tos-host-unreachable tos-network-redirect tos-network-unreachable ttl-zero-during-reassembly ttl-zero-during-transit unknown-header-type unknown-option
###为指定区域设置拒绝访问的某项 ICMP 类型
[root@localhost ~]# firewall-cmd --add-icmp-block=echo-request
success
###显示指定区域内拒绝访问的所有 ICMP 类型
[root@localhost ~]# firewall-cmd --list-icmp-blocks
echo-request
###为指定区域设置拒绝访问的某项 ICMP 类型
[root@localhost ~]# firewall-cmd --add-icmp-block=destination-unreachable
success
###显示指定区域内拒绝访问的所有 ICMP 类型
[root@localhost ~]# firewall-cmd --list-icmp-blocks
echo-request destination-unreachable
删除指定区域已设置的拒绝访问的某项ICMP类型
[root@localhost ~]# firewall-cmd --remove-icmp-block=destination-unreachable
success
###显示指定区域内拒绝访问的所有 ICMP 类型
[root@localhost ~]# firewall-cmd --list-icmp-blocks
echo-request

ICMP类型协议默认放通所有,拒绝个别。

1.6 设置地址转换

设置SNAT

[root@localhost ~]# firewall-cmd --zone=public --direct --passthrough ipv4 -t nat -A POSTROUTING -s 192.168.145.0/24 -j SNAT --to-source 12.0.0.1
success
[root@localhost ~]# iptables -nL  -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  192.168.145.0/24     0.0.0.0/0            to:12.0.0.1

设置 DNAT

[root@localhost ~]# firewall-cmd --zone=public --direct --passthrough ipv4 -t nat -A PREROUTING -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.145.15
success
[root@localhost ~]# iptables -nL  -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            12.0.0.1             tcp dpt:80 to:192.168.145.15

2.使用firewall-config图形工具

  firewall-config图形化配置工具支持防火墙所有的特性,系统管理员可以通过它来改变系统或用户策略。通过firewall-config图形化配置工具,可以实现配置防火墙允许通过的服务、端口、伪装、端口转发、ICMP 过滤器等功能。

方式1:
[root@localhost ~]# firewall-config

方式2:
在CnetOS7系统中单击"应用程序-->杂项-->防火墙"打开

在这里插入图片描述

  在图形化界面可以根据需要选择服务类型,如果想要配置永久设置可以选择上方的配置项进行更改。

在这里插入图片描述

3.编写/etc/firewalld/中的配置文件

[root@localhost ~]# cd /etc/firewalld/
[root@localhost firewalld]# ls
firewalld.conf  icmptypes  lockdown-whitelist.xml  zones
helpers         ipsets     services
[root@localhost firewalld]# cd zones/
[root@localhost zones]# ls
public.xml  public.xml.old
[root@localhost zones]# vim public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="dhcpv6-client"/>
</zone>

此方式较为麻烦,不建议使用。

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

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

相关文章

“GPT+医疗健康”:给予医疗领域新机遇

现如今&#xff0c;GPT十分火热。随着人们对健康医疗的关注越来越热切&#xff0c;GPT已逐渐成为健康医疗领域的重要角色之一。GPT可以用于许多医疗语境中&#xff0c;如医学咨询、病症诊断、健康建议、在线问诊、患者教育、健康数据跟踪等。 GPT是一种基于深度学习的自然语言处…

结构体-C语言

&#x1f929;本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 &#x1f970;内容专栏&#xff1a;这里是《C知识系统分享》专栏&#xff0c;笔者用重金(时间和精力)打造&#xff0c;基础知识一网打尽&#xff0c…

【Python办公自动化】python实现将图片插入到word中指定位置并将word转换为图片

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、…

垃圾站养殖场除臭杀菌解决方案

养殖场和垃圾站都会产生大量的有机废气和垃圾&#xff0c;这些废气和垃圾会产生难闻的臭味&#xff0c;影响周围环境和居民健康。这些地方又是病菌和细菌的滋生地&#xff0c;这些细菌和病菌会对人类和动物的健康造成威胁。除臭杀菌系统可以杀灭这些细菌和病菌&#xff0c;也可…

换个思维方式,你离网工天花板会更近一点

大家好&#xff0c;我是许公子。 收到老杨的邀请&#xff0c;我正式加入网络工程师俱乐部了&#xff0c;未来会给你分享更多网工硬核内容。 和老杨聊天的过程中&#xff0c;我想起了在刚入社会一两年&#xff0c;我去参加了一个高中同学聚餐。 里面有自主创业的&#xff0c;…

软件测试被00后整顿职场了?

00后带来的压力 公司一位工作3年的老油条工资还没有刚来的00后高&#xff0c;她心中不平&#xff0c;对这件事情有不小的怨气&#xff0c;她觉得自己来公司三年了&#xff0c;三年内迟到次数都不超过5次&#xff0c;每天勤勤恳恳&#xff0c;要加班的时候也愿意加班&#xff0…

Python竖版大屏 | 用pyecharts开发可视化的奇妙探索

你好&#xff01;我是马哥python说&#xff0c;一枚10年程序猿&#x1f468;&#x1f3fb;‍&#x1f4bb;&#xff0c;正在试错用pyecharts开发可视化大屏的非常规排版。 以下&#xff0c;我用8种ThemeType展示的同一个可视化数据大屏。 1、SHINE主题 2、LIGHT主题 3、MACARO…

手撕代码——任意奇数分频

手撕代码——任意奇数分频 一、奇数分频器原理与设计 在上文《手撕代码——任意偶数分频》中&#xff0c;我们编写任意偶数分频的Verilog代码&#xff0c;对时钟进行偶数分频&#xff0c;只需要用到时钟的上升沿或者下降沿即可&#xff0c;而要进行N倍奇数分频&#xff0c;需要…

修改Allure报告窗口标题,Overview的标题文案,环境配置,左上角LOGO

前言 如下图所示&#xff1a; 一、修改Allure报告窗口标题 Allure-html测试报告的窗口标题保存在&#xff1a;allure-html目录下的index.html文件 写个 set_windows_title 方法&#xff0c;并在 run.py 的执行文件去调用即可修改&#xff08; 在html报告生成后&#xff09…

研报精选230522

目录 【行业230522东亚前海证券】新能源行业深度报告&#xff1a;政策东风与海外需求共振&#xff0c;充电桩迎新一轮增长周期 【行业230522西南证券】人工智能专题研究&#xff1a;AIGC投资框架 【行业230522国信证券】传媒互联网行业周报&#xff1a;OpenAI推出移动版及网页端…

文献笔记——A brief introduction to distributed systems(分布式系统)

本文主要讨论了分布式系统。作者提供了关于分布式系统的概述&#xff0c;是一份很好的新手教程。 Fig.1 大纲 在论文的第一部分&#xff0c;作者简要回顾了计算机的演变&#xff0c;指出了分布式系统的两个技术基础&#xff1a;性能强大的微处理器的发展和高速计算机网络的发明…

OpenCV:CMake 产生 VS2019 项目和解决方案

CMake 是一个跨平台的自动化编译程序&#xff0c;它用于管理代码的构建过程。使用 CMake 可以简化跨平台项目的构建和移植&#xff0c;提供简单而强大的语法来描述构建过程&#xff0c;并生成多种不同的构建系统&#xff0c;如 GNU Make、Ninja 和 Visual Studio。因为 CMake 具…

8年测试总结,性能测试问题大全,这些问题你应该认清的...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 响应时间VS吞吐量…

18-02 数据库设计核心要点

概念结构设计 通过对用户需求进行综合、归纳和抽象&#xff0c;形成独立于具体数据库管理系统的概念模型把需求分析阶段得到的应用需求&#xff0c;抽象成概念模型连接现实世界和信息世界的桥梁好的概念结构设计 能真实、充分的反映现实世界要易于理解要易于修改 基本概念 …

kubeadm部署k8s 1.26.0版本高可用集群

1.前言 本次搭建使用centos7.9系统&#xff0c;并且使用haproxykeepalived作为高可用架构软件&#xff0c;haproxy实现k8s集群管理节点apiserver服务的负载均衡以实现集群的高可用功能&#xff0c;keepalived保障了hapxoy的高可用&#xff0c;容器引擎使用docker&#xff0c;需…

迁移iceberg:一.查看所需要的资源。

一&#xff1a;内存&#xff0c;CPU&#xff0c;核数&#xff0c;线程&#xff0c;硬盘。 1. cpu&#xff0c;核素&#xff0c;线程。 cpu cpu就相当于人类的大脑&#xff0c;是处理数据的地方。 cpu由以下三个组成。 控制器。由控制单元、指令译码器、指令寄存器组成。运算…

戴尔 dell Inspiron3670电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。&#xff08;下载请直接百度黑果魏叔&#xff09; 硬件型号驱动情况 主板B360 处理器i5-9400已驱动 内存8GB已驱动 硬盘KBG40ZNS256G NVMe KIOXIA 256GB ST1000DM010 1TB已驱动 显卡UHD630(1.05GHZ)已驱动 声卡Realte…

Node模拟慢接口

为了快速搭建一个后台服务&#xff0c;并模拟慢接口&#xff0c;我们选择 Koa 这个轻量的 Node 框架。 快速开始 Koa 使用起来非常方便&#xff0c;只需要&#xff1a; 新建项目文件夹&#xff1a;mkdir koa-server创建 package.json&#xff1a;npm init -y安装 Koa&#x…

夏季门店做好这3点,销量翻一番!

现在正值5月末&#xff0c;天气开始炎热起来。在酷热的夏日&#xff0c;很多人都只想呆在家里吹空调刷手机&#xff0c;外出消费的人数开始变少。 面对越来越炎热的天气&#xff0c;我们这些做实体店生意的该如何应对呢&#xff1f;想要在夏季客流不减反增&#xff0c;销量翻倍…

【高分论文密码】大尺度空间模拟预测和数字制图技术和不确定性分析

目录 专题一 R语言空间数据介绍及数据挖掘关键技术 专题二 R语言空间数据高级处理技术 专题三 R语言多维时空数据处理技术、数据清洗整合和时间序列分析 专题四 R语言地统计与空间自相关、空间插值方法 专题五 R语言机器学习与空间模型预测及不确定性评估 专题六 R语言空…