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

Firewalld 防火墙基础

Firewalld 防火墙基础

  • 一、Firewalld概述
    • firewalld 简介
    • firewalld 和 iptables 的关系
    • firewalld 与 iptables service 的区别
  • 二、Firewalld 网络区域
    • 区域介绍
    • Firewalld数据处理流程
  • 三、Firewalld 防火墙的配置方法
    • firewall-config 图形工具
      • “区域”选项卡
      • “服务”选项卡
      • 改变防火墙设置
      • 修改默认分区
    • firewall-cmd 命令
      • 1. firewalld 服务管理
    • 2. 获取预定义信息
      • 3. 区域管理
      • 4. 服务管理
      • 5. 端口管理
      • 6. 两种配置模式

一、Firewalld概述

firewalld 简介

  • 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具
  • 支持IPv4、IPv6防火墙设置以及以太网桥
  • 支持服务或应用程序直接添加防火墙规则接口
  • 拥有两种配置模式
    • 运行时配置
    • 永久配置

firewalld 和 iptables 的关系

  • netfilter
    • 位于Linux内核中的包过滤功能体系
    • 称为Linux防火墙的 “内核态”
  • firewalld/iptables
    • CentOS7默认的管理防火墙规则的工具(Firewalld)

    • 称为Linux防火墙的 “用户态”
      在这里插入图片描述

    • 他们的作用都是用于维护规则,而真正使用规则干活的是内核的 netfilter

firewalld 与 iptables service 的区别

Firewalldiptables
配置文件/usr/lib/firewalld/ /etc/firewalld//etc/sysconfig/iptables
对规则的修改不需要全部刷新策略,不丢失现行链接需要全部刷新策略,丢失链接
防火墙类型动态防火墙静态防火墙

二、Firewalld 网络区域

区域介绍

  • 区域如同进入主机的安全门,每个区域都具有不同限制程度的规则
  • 可以使用一个或多个区域,但是任何一个活跃区域至少需要关联源地址或接口
  • 默认情况下,public区域是默认区域,包含所有接口(网卡)
firewalld 的预定义区域说明
区域说明
trusted(信任区域)可接收所有的网络连接
public(公共区域)除非与传出流量相关,或与 ssh 或 dhcpv6-client 预定义服务匹配,否则拒绝流量传入,在公共区域内,不能相信网络内的其他计算机不会对计算机造成危害,只能接收经过选择的连接。并且,该区域是新添加网络接口的默认区域
work(工作区域)除非与传出流量相关,或与 ssh、ipp-client、dhcpv6-client 预定义服务匹配,否则拒绝流量传入,用于工作区。相信网络内的其他计算机不会危害计算机,仅接收经过选 择的连接
home(家庭区域)除非与传出流量相关,或与 ssh、ipp-client、mdns、samba-client、dhcpv6-client 预定义服务匹配,否则拒绝流量传入,用于家庭网络。信任网络内的其他计算机不会危害计算机,仅接收经过选择的连接
internal(内部区域)除非与传出流量相关,或与 ssh、ipp-client、mdns、samba-client、dhcpv6-client 预定义服务匹配,否则拒绝流量传入,用于内部网络。信任网络内的其他计算机不会危害计算机,仅接收经过选择的连接
external(外部区域)除非与传出流量相关,或与ssh 预定义服务匹配,否则拒绝流量传入。通过此区域转发的IPv4 传出流量将进行地址伪装,可用于为路由器启用了伪装功能的外部网络
dmz(隔离区域也称为非军事区域)除非与传出的流量相关,或与ssh 预定义服务匹配,否则拒绝流量传入
block(限制区域)除非与传出流量相关,否则拒绝所有传入流量
drop(丢弃区域)除非与传出流量相关,否则丢弃所有传入流量,并且不产生包含 ICMP(Internet Control Message Protocol,互联网控制报文协议)的错误响应

Firewalld数据处理流程

  • 检查数据来源的源地址
    • 若源地址关联到特定的区域,则执行该区域所制定的规则。
    • 若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所制定的规则。
    • 若网络接口未关联到特定的区域,则使用默认区域并执行该区域所制定的规则。

三、Firewalld 防火墙的配置方法

  • 在 CentOS7 系统中,可以使用三种方式配置 firewalld 防火墙:
    • firewall-config 图形工具。
    • firewall-cmd 命令行工具。
    • /etc/firewalld/中的配置文件。
  • 通常情况下,不建议直接编辑配置文件

firewall-config 图形工具

  • 在终端中输入 firewall-config 命令
    在这里插入图片描述
  • firewall-config 工作界面主要分为三个部分,上面是主菜单,中间是配置选项,下面是区域、服务、IPsets、ICMP 类型、直接配置、锁定白名单设置选项卡。
  • 其中,ICMP 类型、直接配置和锁定白名单选项卡只在从“查看”下拉菜单中选择之后才能看见。
  • 最底部是状态栏从左到右显示了四个信息,依次是连接状态、默认区域、锁定状态、应急模式。

firewall-config 主菜单包括四个菜单项:文件、选项、查看、帮助。其中,“选项”菜单是最重要的,主要包括以下几个选项。

重新加载防火墙重新加载防火墙规则,当前的永久配置将变成新的运行时配置。 例如,所有的当前运行的配置规则如果没有在永久配置中操作,系统重新加载后就会丢失。
更改连接区域更改网络连接的所属区域和接口。
改变默认区域更改网络连接的默认区域。
应急模式表示丢弃所有的数据包。
锁定可以对防火墙的配置进行加锁,只允许白名单上的应用程序进行修改。

“区域”选项卡

  • (1) “服务”子选项卡
    • “服务”子选项卡可以定义区域中哪些服务是可信的,可信的服务可以被绑定到该区域的 任意连接、接口和源地址访问
      在这里插入图片描述
  • (2) “端口”子选项卡
    • “端口”子选项卡用于设置允许访问的主机或网络访问的端口范围
      在这里插入图片描述
  • (3) “协议”子选项卡
    • 用于添加所有主机或网络均可访问的协议
      在这里插入图片描述
  • (4) “源端口”子选项卡
    • 可以添加额外的源端口或范围,连接到这台主机的所有主机或网 络均可访问
    • 设置源端口时,可以设置某一个端口号或者是端口范围,同时还需要选择对应的 TCP 或 UDP 协议。
      在这里插入图片描述
  • (5) “伪装”子选项卡
    • 用于把私有网络地址映射到公有的 IP 地址,该功能目前只适用于 IPv4
      在这里插入图片描述
  • (6) “端口转发”子选项卡
    • 可以将指定端口映射到另一个端口或其他主机的指定端口
    • 在设置端口转发时同样需要选择协议类型,且该功能也仅支持 IPv4。
      在这里插入图片描述
  • (7) “ICMP 过滤器”子选项卡
    • ICMP 主要用于在联网的计算机间发送出错信息,但也发送类似 ping 请求以及回应等信息。
    • 在“ICMP 过滤器”子选项卡中可以选择应该被拒绝的ICMP 类型,其他所有的 ICMP 类型则被允许通过防火墙。默认设置是没有限制
      在这里插入图片描述

“服务”选项卡

  • 服务是端口、协议、模块和目标地址的组合,并且“服务”选项卡只能在“永久”配置视图中修改,“运行时”配置中的服务是不可以修改的。

  • 与“区域”选项卡不同,“服务”选项卡仅包含五个子选项卡。

  • 其中,“端口”“协议”“源端口”这些子选项卡的作用及配置方法与“区域”选项卡中的相同。

  • (1)“模块”子选项卡

    • 是用于设置网络过滤的辅助模块
      在这里插入图片描述
  • (2)“目标地址”子选项卡:

    • 如果某服务指定了目标地址,服务项目仅限于目标地址和类型
    • 如果 IPv4 与 IPv6 均为空,则没有限制
      在这里插入图片描述

改变防火墙设置

  • 要立刻改变现在的防火墙设置,须确定当前视图设定在运行时。
  • 或者,从下拉菜单中选择永久(Permanent),编辑下次启动系统或者防火墙重新加载时执行的设定。
  • 在运行时(Runtime)模式下更改防火墙的设定时,一旦您启动或者清除连接服务器的 复选框,选择立即生效。
  • 在 Permanent 模式下更改防火墙的设定,仅仅在重新加载防火墙或者系统重启之后生效。
  • 可以使用文件菜单下的重新加载图标,或者点击 选项菜单,选择重新加载防火墙
    在这里插入图片描述

修改默认分区

  • 要设定一个将要被分配新接口的分区作为默认值,则启动 firewall-config,从菜单栏选择选项卡,由下拉菜单中选择修改默认区域,出现默认区域窗口。
  • 从给出的列表中选择您需要用的分区作为默认分区,点击确定按钮即可。
    在这里插入图片描述

firewall-cmd 命令

1. firewalld 服务管理

# 启动服务
[root@bogon ~]# systemctl start firewalld
# 设置开机自启动
[root@bogon ~]# systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1. service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/basic.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
# 如果 firewalld 正在运行,通过 systemctl status firewalld 或 firewall-cmd 命令可以查看其运行状态。
# 查看防火墙状态
[root@bogon ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: active (running) since 三 2024-06-26 09:03:16 CST; 1s agoDocs: man:firewalld(1)Main PID: 2898 (firewalld)Tasks: 2CGroup: /system.slice/firewalld.service└─2898 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid626 09:03:15 bogon systemd[1]: Starting firewalld - dynamic firewall daemon...
626 09:03:16 bogon systemd[1]: Started firewalld - dynamic firewall daemon.
626 09:03:16 bogon firewalld[2898]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future rel...ling it now.
Hint: Some lines were ellipsized, use -l to show in full.
# 查看防火墙状态
[root@bogon ~]# firewall-cmd --state
running
# 如果想要禁用 firewalld,执行以下命令即可实现
# 关闭 firewalld
[root@localhost ~]# systemctl stop firewalld
# 设置 firewalld 开机不自启动
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

2. 获取预定义信息

  • firewall-cmd 预定义信息主要包括三种:可用的区域、可用的服务以及可用的 ICMP 阻塞类型,具体的查看命令如下所示
# 查看有哪些区域
# 显示预定义的区域
[root@bogon ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
# 查看有哪些服务
# 显示预定义的服务
[root@bogon ~]# firewall-cmd --get-service
# 显示预定义的ICMP 类型
[root@bogon ~]#  firewall-cmd --get-icmptypes
  • firewall-cmd --get-icmptypes 命令的执行结果中各种阻塞类型的含义分别如下所示
destination-unreachable目的地址不可达
echo-reply应答回应(pong)
parameter-problem参数问题
redirect重新定向
router-advertisement路由器通告
router-solicitation路由器征寻
source-quench源端抑制
time-exceeded超时
timestamp-reply时间戳应答回应
timestamp-request时间戳请求

3. 区域管理

  • 使用 firewall-cmd 命令可以实现获取和管理区域,为指定区域绑定网络接口等功能
firewall-cmd 命令的区域管理选项说明
选项说明
--get-default-zone显示网络连接或接口的默认区域
--set-default-zone=<zone> 设置网络连接或接口的默认区域
--get-active-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=时表示仅对默认区域操作

(1) 显示当前系统中的默认区域。

[root@bogon ~]# firewall-cmd --get-default-zone
public

(2) 显示默认区域的所有规则。

[root@bogon ~]# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: dhcpv6-client sshports: 8080-8083/tcp 80/tcpprotocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules: 

(3) 显示网络接口 ens33 对应区域。

[root@bogon ~]# firewall-cmd --get-zone-of-interface=ens33
public

(4) 将网络接口 ens33 对应区域更改为 internal 区域。

[root@bogon ~]# firewall-cmd --zone=internal --change-interface=ens33
success
[root@bogon ~]# firewall-cmd --zone=internal --list-interfaces
ens33
[root@bogon ~]# firewall-cmd --get-zone-of-interface=ens33
internal

(5) 显示所有激活区域。

[root@bogon ~]# firewall-cmd --get-active-zones
internalinterfaces: ens33

4. 服务管理

  • service 配置具有以下优点
    • 通过服务名字来管理规则更加人性化。
    • 通过服务来组织端口分组的模式更加高效,如果一个服务使用了若干个网络端口,则服 务的配置文件就相当于提供了到这些端口的规则管理的批量操作快捷方式。
firewall-cmd 命令区域中服务管理的常用选项说明
选项说明
[--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 类型,省略--zone=时表示对默认区域操作

(1) 为默认区域设置允许访问的服务。

# 显示默认区域内允许访问的所有服务
[root@bogon ~]# firewall-cmd --list-servicesdhcpv6-client ssh
# 设置默认区域允许访问http 服务
[root@bogon ~]# firewall-cmd --add-service=httpsuccess[root@bogon ~]# firewall-cmd --list-servicesdhcpv6-client http ssh

(2) 为 internal 区域设置允许访问的服务。

# 设置internal 区域允许访问 mysql 服务
[root@localhost ~]# firewall-cmd --zone=internal --add-service=mysql
success
# 设置internal 区域不允许访问 samba-client 服务
[root@localhost~]# firewall-cmd --zone=internal --remove-service=samba-client
success
# 显示internal 区域内允许访问的所有服务
[root@localhost ~]# firewall-cmd --zone=internal --list-services
dhcpv6-client mdns mysql ssh

5. 端口管理

  • 在进行服务配置时,预定义的网络服务可以使用服务名配置,服务所涉及的端口就会自动打开。
  • 但是,对于非预定义的服务只能手动为指定的区域添加端口。
# 在 internal 区域打开 443/TCP 端口。
[root@localhost ~]# firewall-cmd --zone=internal --add-port=443/tcp
success
# 在 internal 区域禁止 443/TCP 端口访问
[root@localhost ~]# firewall-cmd --zone=internal --remove-port=443/tcp
success

6. 两种配置模式

  • 前面提到 firewall-cmd 命令工具有两种配置模式:
    • 运行时模式(Runtime mode)表示当前内存中运行的防火墙配置,在系统或 firewalld 服务重启、停止时配置将失效;
    • 永久模式(Permanent mode)表示重启防火墙或重新加载防火墙时的规则配置,是永久存储在配置文件中的。
  • firewall-cmd 命令工具与配置模式相关的选项有三个:
    • –reload:重新加载防火墙规则并保持状态信息,即将永久配置应用为运行时配置。
    • –permanent:带有此选项的命令用于设置永久性规则,这些规则只有在重新启动 firewalld 或重新加载防火墙规则时才会生效;若不带有此选项,表示用于设置运行时规则。
    • –runtime-to-permanent:将当前的运行时配置写入规则配置文件中,使之成为永久性配置。

相关文章:

Firewalld 防火墙基础

Firewalld 防火墙基础 一、Firewalld概述firewalld 简介firewalld 和 iptables 的关系firewalld 与 iptables service 的区别 二、Firewalld 网络区域区域介绍Firewalld数据处理流程 三、Firewalld 防火墙的配置方法firewall-config 图形工具“区域”选项卡“服务”选项卡改变防…...

针对 Windows 10 的功能更新,版本 22H2 - 错误 0xc1900204

最近想帮女朋友生win11发现她电脑安装更新总是卡到安装%10这里失败 原来是安装路径被修改过了&#xff0c;改回c盘 win R → 输入regedit 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion...

goframe框架规范限制(but it should be named with “Res“ suffix like “XxxRes“)

背景&#xff1a; 首页公司最近要启动一个项目&#xff0c;公司主要业务是用java开发的&#xff0c;但是目前这个方向的项目&#xff0c;公司要求部署在主机上&#xff0c;就是普通的一台电脑上&#xff0c;电脑配置不详&#xff0c;还有经常开关机&#xff0c;所以用java面临…...

格式化选NTFS还是exFAT 格式化NTFS后Mac不能用怎么办 移动硬盘格式化ntfs和exfat的区别

面对硬盘、U盘或移动硬盘的格式化决策&#xff0c;NTFS与exFAT作为主流的文件系统&#xff0c;用户在选择时可以根据它们的不同特点来选择适用场景。下面我们来看看格式化选NTFS还是exFAT&#xff0c;格式化NTFS后Mac不能用怎么办的相关内容。 一、格式化选NTFS还是exFAT 在数…...

中国桥梁空间分布数据

2020年中国桥梁空间分布数据&#xff0c;共包含102000余条数据。 数据属性表包括&#xff1a;地级市名、区县名、桥梁名称和经纬度。有shp和EXCEl两种格式数据。目前暂没有广西、广东和台湾三个省份数据。...

14-15 为什么我们现在对阅读如此难以接受

写出来感觉很奇怪&#xff0c;但最近我感觉自己失去了阅读能力。长篇文本对我来说尤其具有挑战性。句子很难读完。更别提章节了。章节有很多段落&#xff0c;而段落又由许多句子组成。 啊。 即使在极少数情况下&#xff0c;我读完了一章&#xff0c;下一页上已经有另一章等着…...

经典的卷积神经网络模型 - ResNet

经典的卷积神经网络模型 - ResNet flyfish 2015年&#xff0c;何恺明&#xff08;Kaiming He&#xff09;等人在论文《Deep Residual Learning for Image Recognition》中提出了ResNet&#xff08;Residual Network&#xff0c;残差网络&#xff09;。在当时&#xff0c;随着…...

【Git 学习笔记】1.3 Git 的三个阶段

1.3 Git 的三个阶段 由于远程代码库后续存在新的提交&#xff0c;因此实操过程中的结果与书中并不完全一致。根据书中 HEAD 指向的 SHA-1&#xff1a;34acc370b4d6ae53f051255680feaefaf7f7850d&#xff0c;可通过以下命令切换到对应版本&#xff0c;并新建一个 newdemo 分支来…...

华为DCN之:SDN和NFV

1. SDN概述 1.1 SDN的起源 SDN&#xff08;Software Defined Network&#xff09;即软件定义网络。是由斯坦福大学Clean Slate研究组提出的一种新型网络创新架构。其核心理念通过将网络设备控制平面与数据平面分离&#xff0c;从而实现了网络控制平面的集中控制&#xff0c;为…...

黑马头条-数据管理平台

目录 项目准备 验证码登录 验证码登录-流程 token 的介绍 个人信息设置和 axios 请求拦截器 axios 响应拦截器和身份验证失败 优化-axios 响应结果 发布文章-富文本编辑器 项目准备 技术&#xff1a; • 基于 Bootstrap 搭建网站标签和样式 • 集成 wangEditor 插件…...

API Object设计模式

API测试面临的问题 API测试由于编写简单&#xff0c;以及较高的稳定性&#xff0c;许多公司都以不同工具和框架维护API自动化测试。我们基于seldom框架也积累了几千条自动化用例。 •简单的用例 import seldomclass TestRequest(seldom.TestCase):def test_post_method(self…...

Python 爬虫:多进程,多线程爬虫<提高爬取效率>

关于多进程&#xff0c;多线程的知识&#xff0c;请自行查询资料补充 ~~~~~~~~~~~ 使用多进程&#xff1a; 在python中&#xff0c;使用多进程需要先导包&#xff1a; from threding import Threaddef work(name):for i in range(1000):print(f"我是线程&#xff1a;{n…...

什么是上拉电阻器?上拉和下拉电阻的典型应用

什么是上拉电阻器&#xff1f; 上拉电阻是逻辑电路中使用的电阻&#xff0c;用于确保引脚在所有条件下具有明确定义的逻辑电平。提醒一下&#xff0c;数字逻辑电路有三种逻辑状态&#xff1a;高、低和浮动&#xff08;或高阻抗&#xff09;。当引脚未被拉至高或低逻辑电平&…...

centos7安装python3.10

文章目录 1. 安装依赖项2. 下载Python 3.10源码3. 解压源码并进入目录4. 配置安装选项5. 编译并安装Python6. 验证安装7.创建软连接8. 安装pip39. 换源 1. 安装依赖项 sudo yum groupinstall -y "Development Tools" sudo yum install -y openssl-devel bzip2-devel…...

QT事件处理及实例(鼠标事件、键盘事件、事件过滤)

这篇文章通过鼠标事件、键盘事件和事件过滤的三个实例介绍事件处理的实现。 鼠标事件及实例 鼠标事件包括鼠标的移动、按下、松开、单击和双击等。 创建一个MouseEvent项目&#xff0c;通过项目介绍如何获得和处理鼠标事件。程序效果如下图所示。 界面布局代码如下&#xff…...

职场新人必备待办工具 高效待办工作更省心

作为一名初入职场的菜鸟&#xff0c;我曾被繁琐的工作任务压得喘不过气。每天&#xff0c;邮件、会议、项目任务像潮水般涌来&#xff0c;我常常感到力不从心&#xff0c;生怕遗漏了什么重要事项。那种焦虑&#xff0c;就像站在人来人往的地铁站&#xff0c;却不知道自己该搭乘…...

【创作纪念日】我的CSDN1024创作纪念

机缘 注册CSDN是很长时间了&#xff0c;但是上学时因为专业是电气工程&#xff0c;与编程打交道比较少&#xff0c;一直都是寻求帮助&#xff0c;而非内容输出。直到考研后专业改变&#xff0c;成为了主要跟软件编程、计算机知识相关的研究后&#xff0c;才逐步开启自己的CSDN…...

在AvaotaA1全志T527开发板上使用 UART 连接开发板

连接开发板 AvaotaA1提供两种连接串口输出方式&#xff0c;因为AvaotaA1需要DC 12V/2A/5.5-2.1电源适配器才可以启动系统&#xff0c;请先确保电源已接通。 方式一&#xff1a; 使用配套的 TyepC-SUB 转接板 40Gbps雷电线标准TypeC数据线&#xff0c;就可以同步实现 USB 串口…...

【Asterinas】Asterinas 进程启动与切换

Asterinas 进程启动与切换 进程启动 进程创建&#xff1a; Rust pub fn spawn_user_process( executable_path: &str, argv: Vec, envp: Vec, ) -> Result<Arc> { // spawn user process should give an absolute path debug_assert!(executable_path.starts_with…...

CVE-2024-6387 分析

文章目录 1. 漏洞成因2. 漏洞利用前置知识2.1 相关 SSH 协议报文格式2.2 Glibc 内存分配相关规则 3. POC3.1 堆内存布局3.2 服务端解析数据时间测量3.3 条件竞争3.4 FSOP 4. 相关挑战 原文链接&#xff1a;个人博客 近几天&#xff0c;OpenSSH爆出了一个非常严重的安全漏洞&am…...

STM32 ADC精度提升方法

STM32 ADC精度提升方法 Fang XS.1452512966qq.com如果有错误&#xff0c;希望被指出&#xff0c;学习技术的路难免会磕磕绊绊量的积累引起质的变化 硬件方法 优化布局布线&#xff0c;尽量减小其他干扰增加电源、Vref去耦电容使用低通滤波器&#xff0c;或加磁珠使用DCDC时尽…...

Redis为什么设计多个数据库

​关于Redis的知识前面已经介绍过很多了,但有个点没有讲,那就是一个Redis的实例并不是只有一个数据库,一般情况下,默认是Databases 0。 一 内部结构 设计如下: Redis 的源码中定义了 redisDb 结构体来表示单个数据库。这个结构有若干重要字段,比如: dict:该字段存储了…...

零基础学习MySQL---MySQL入门

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、什么是数据库 问&#xff1a;存储数据用文件就可以了&#xff0c;为什么还要弄个数据库呢&#xff1f; 这就不得不提…...

HUAWEI MPLS 静态配置和动态LDP配置

MPLS(Multi-Protocol Label Switching&#xff0c;多协议标签交换技术)技术的出现&#xff0c;极大地推动了互联网的发展和应用。例如&#xff1a;利用MPLS技术&#xff0c;可以有效而灵活地部署VPN(Virtual Private Network&#xff0c;虚拟专用网)&#xff0c;TE(Traffic Eng…...

【Rust】——所有的模式语法

&#x1f4bb;博主现有专栏&#xff1a; C51单片机&#xff08;STC89C516&#xff09;&#xff0c;c语言&#xff0c;c&#xff0c;离散数学&#xff0c;算法设计与分析&#xff0c;数据结构&#xff0c;Python&#xff0c;Java基础&#xff0c;MySQL&#xff0c;linux&#xf…...

基于Python的求职招聘管理系统【附源码】

摘 要 随着互联网技术的不断发展&#xff0c;人类的生活已经逐渐离不开网络了&#xff0c;在未来的社会中&#xff0c;人类的生活与工作都离不开数字化、网络化、电子化与虚拟化的数字技术。从互联网的发展历史、当前的应用现状和发展趋势来看&#xff0c;我们完全可以肯定&…...

Python23 使用Tensorflow实现线性回归

TensorFlow 是一个开源的软件库&#xff0c;用于数值计算&#xff0c;特别适用于大规模的机器学习。它由 Google 的研究人员和工程师在 Google Brain 团队内部开发&#xff0c;并在 2015 年首次发布。TensorFlow 的核心是使用数据流图来组织计算&#xff0c;使得它可以轻松地利…...

C++:枚举类的使用案例及场景

一、使用案例 在C中&#xff0c;枚举类&#xff08;也称为枚举类型或enum class&#xff09;是C11及以后版本中引入的一种更加强大的枚举类型。与传统的枚举&#xff08;enum&#xff09;相比&#xff0c;枚举类提供了更好的类型安全性和作用域控制。下面是一个使用枚举类的案…...

中英双语介绍美国的州:明尼苏达州(Minnesota)

中文版 明尼苏达州简介 明尼苏达州位于美国中北部&#xff0c;以其万湖之州的美誉、丰富的自然资源和多样化的经济结构而著称。以下是对明尼苏达州的详细介绍&#xff0c;包括其地理位置、人口、经济、教育、文化和主要城市。 地理位置 明尼苏达州东接威斯康星州&#xff0…...

Python实现万花筒效果:创造炫目的动态图案

文章目录 引言准备工作前置条件 代码实现与解析导入必要的库初始化Pygame定义绘制万花筒图案的函数主循环 完整代码 引言 万花筒效果通过反射和旋转图案创造出美丽的对称图案。在这篇博客中&#xff0c;我们将使用Python来实现一个动态的万花筒效果。通过利用Pygame库&#xf…...

JavaScript之深入对象,详细讲讲构造函数与常见内置构造函数

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;我是前端菜鸟的自我修养&#xff01;今天给大家详细讲讲构造函数与常见内置构造函数&#xff0c;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;原创不易&#xff0c;如果能帮助到带大家&#xff0c;欢迎…...

PyQt5水平布局--只需5分钟带你搞懂

PyQt5水平布局&#xff08;QHBoxLayout&#xff09;是一种在GUI应用程序中用于组织和排列控件的布局方式。它允许开发者将控件在水平方向上从左到右依次排列&#xff0c;非常适合于需要并排显示控件的场景&#xff0c;如工具栏、水平菜单等。 import sys from PyQt5.QtWidgets…...

telegram mini app和game实现登录功能

接上一篇文章&#xff0c;我们在创建好telegram机器人后&#xff0c;开始开发小游戏或者mini App&#xff0c;那就避免不了登录功能。 公开链接 bot设置教程:https://lengmo714.top/6e79860b.html 参考教程参考教程,telegram已经给我们提供非常多的api&#xff0c;我们在获取用…...

【Python】字典练习

python期考练习 目录 1. 首都名​编辑 2. 摩斯电码 3. 登录 4. 学生的姓名和年龄​编辑 5. 电商 6. 学生基本信息 7. 字母数 1. 首都名 初始字典 (可复制) : d{"China":"Beijing","America":"Washington","Norway":…...

Apache POI、EasyPoi、EasyExcel

目录 ​编辑 &#xff08;一&#xff09;Apache PoI 使用 &#xff08;二&#xff09;EasyPoi使用 &#xff08;三&#xff09;EasyExcel使用 写 读 最简单的读​ 最简单的读的excel示例​ 最简单的读的对象​ &#xff08;一&#xff09;Apache PoI 使用 &#xff08;二&…...

gcop:简化 Git 提交流程的高效助手 | 一键生成 commit message

&#x1f496; 大家好&#xff0c;我是Zeeland。Tags: 大模型创业、LangChain Top Contributor、算法工程师、Promptulate founder、Python开发者。&#x1f4e3; 个人说明书&#xff1a;Zeeland&#x1f4e3; 个人网站&#xff1a;https://me.zeeland.cn/&#x1f4da; Github…...

TS_类型

目录 1.类型注解 2.类型检查 3.类型推断 4.类型断言 ①尖括号&#xff08;<>&#xff09;语法 ②as语法 5.数据类型 ①boolean ②number ③string ④undefined 和 null ⑤数组和元组 ⑥枚举 ⑦any 和void ⑧symbol ⑨Function ⑩Object 和 object 6.高…...

Linux源码阅读笔记10-进程NICE案例分析2

set_user_nice set_user_nice函数功能&#xff1a;设置某一进程的NICE值&#xff0c;其NICE值的计算是根据进程的静态优先级&#xff08;task_struct->static_prio&#xff09;&#xff0c;直接通过set_user_nice函数更改进程的静态优先级。 内核源码 void set_user_nice…...

Elasticsearch实战教程: 如何在海量级数据中进行快速搜索

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 Elasticsearch&#xff08;简称ES&#xff09;是一个基于Apache Lucene™的开源搜索引擎&#xff0c;无论在开源还是专有领…...

Python学习笔记24:进阶篇(十三)常见标准库使用之数据压缩功能模块zlib,gzip,bz2,lzma的学习使用

前言 本文是根据python官方教程中标准库模块的介绍&#xff0c;自己查询资料并整理&#xff0c;编写代码示例做出的学习笔记。 根据模块知识&#xff0c;一次讲解单个或者多个模块的内容。 教程链接&#xff1a;https://docs.python.org/zh-cn/3/tutorial/index.html 数据压缩…...

【笔记】Android Settings 应用设置菜单的界面代码介绍

简介 Settings应用中&#xff0c;提供多类设置菜单入口&#xff0c;每个菜单内又有各模块功能的实现。 那么各个模块基于Settings 基础的界面Fragment去实现UI&#xff0c;层层按不同业务进行封装继承实现子类&#xff1a; DashboardFragmentSettingsPreferenceFragment 功…...

Symfony配置管理深度解析:构建可维护项目的秘诀

Symfony是一个高度灵活且功能丰富的PHP框架&#xff0c;它提供了一套强大的配置管理系统&#xff0c;使得开发者能够轻松定制和优化应用程序的行为。本文将深入探讨Symfony中的配置管理机制&#xff0c;包括配置的结构、来源、加载过程以及最佳实践。 一、配置管理的重要性 在…...

视频的宣传片二维码怎么做?扫码播放视频的制作教程

现在很多的宣传片会通过扫码的方式来展示&#xff0c;通过将视频生成二维码之后&#xff0c;其他人就可以扫码来查看视频内容&#xff0c;从而简化获取视频的过程&#xff0c;提升视频传播的效率及用户查看视频的便捷性。目前&#xff0c;日常生活和工作中就有视频二维码的应用…...

实用的网站

前端 精简CSS格式 Font Awesome 图标库 BootCDN 加速服务 LOGO U钙网 AI AI工具集 视频下载 B站视频解析下载...

Monorepo(单体仓库)与 MultiRepo(多仓库): Monorepo 单体仓库开发策略与实践指南

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、引言1. Monorepo 和 MultiRepo 简介2. 为什么选择 Monorepo&#xff1f; 二、Monorepo 和 MultiRepo 的区别1. 定义和概述2. 各自的优点和缺点3. 适用场景 三、Monorepo 的开发策略1. 版本控制2. 依赖管理3. 构建和发布…...

使用 PyTorch 创建的多步时间序列预测的 Encoder-Decoder 模型

Encoder-decoder 模型在序列到序列的自然语言处理任务&#xff08;如语言翻译等&#xff09;中提供了最先进的结果。多步时间序列预测也可以被视为一个 seq2seq 任务&#xff0c;可以使用 encoder-decoder 模型来处理。本文提供了一个用于解决 Kaggle 时间序列预测任务的 encod…...

开启IT世界的第一步:高考新生的暑期学习指南

目录 前言 了解IT领域 学习编程语言 实践项目 学习资源 阅读专业书籍 培养良好的学习习惯 结语 最后 - 投票 前言 七月的钟声敲响&#xff0c;各省的高考分数已揭晓&#xff0c;意味着一段紧张而又充满奋斗的旅程画上了句号。然而&#xff0c;高考的结束并不意味…...

软考系统架构师高效备考方法论

软考系统架构师高效备考方法论 本章总结的备考方法论也是希望能帮助更多的小伙伴高效的备考最终通过考试&#xff0c;这种考试个人感觉是尽量一次性考过&#xff0c; 要不然老拖着&#xff0c;虽然每年可以考两次&#xff0c;5月和11月&#xff0c;两次考试间隔5个月时间&#…...

【neo4j图数据库】入门实践篇

探索数据之间的奥秘&#xff1a;Neo4j图数据库引领新纪元 在数字化浪潮汹涌的今天&#xff0c;数据已成为企业最宝贵的资产之一。然而&#xff0c;随着数据量的爆炸性增长和数据关系的日益复杂&#xff0c;传统的关系型数据库在处理诸如社交网络、推荐系统、生物信息学等高度互…...

【TS】TypeScript 原始数据类型深度解析

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 TypeScript 原始数据类型深度解析一、引言二、基础原始数据类型2.1 boolean2.2 …...

Apache Flink架构介绍

目录 一、Apache Flink架构组件栈 1.1 概述 1.2 架构图 1.3 架构分层组件说明 1.3.1 物理部署层 1.3.2 Runtime 核心层 1.3.3 API & Libraries层 二、Flink运行时架构 2.1 概述 2.2 架构图 2.3 架构角色和组件 2.3.1 Flink Clients客户端 2.3.2 JobManager 2.…...

Day05-03-Nexus仓库

Day05-03-Nexus仓库 05-nexus-仓库1. 概述2. 极速部署指南2.1 下载2.2 部署2.3 配置2.4 连接使用nexus2.4 编译与测试 3. 总结 05-nexus-仓库 1. 概述 背景: maven编译的时候&#xff0c;npm/cnpm编译&#xff0c;需要下载大量的依赖包。这些依赖包在每一次构建的时候都需要使…...

基于Pinia的WebSocket管理与优化实践(实现心跳重连机制,异步发送)

WebSocket作为一种全双工通信协议&#xff0c;允许服务器和客户端之间建立持久的连接&#xff0c;提供了比传统HTTP请求更为高效的数据交换方式。本文将探讨如何使用Pinia状态管理库在Vue应用中优雅地管理和优化WebSocket连接&#xff0c;以实现稳定、高效的实时数据传输。 环境…...

云计算【第一阶段(26)】Linux网络设置

一、查看网络配置 1.查看网络接口信息ifconfig 查看所有活动的网络接口信息 2.ifconfig命令 查看指定网络接口信息 ifconfig 网络接口 &#xff08;1&#xff09;第一行&#xff1a;以太网卡的名字 ens33其中en代表以太网卡&#xff0c; centos6的是eth0&#xff0c; e…...

鸿蒙:1.入门

概述 简介 鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是华为公司发布的一款智能终端系统&#xff0c;是基于微内核的面向全场景的分布式操作系统。它致力于提供更加安全、高效、低延迟、低功耗的操作体验&#xff0c;可通过技术手段对应用程序和设备进行智能协同&#xf…...

2024攻防演练:亚信安全新一代WAF,关键时刻守护先锋

实网攻防 网络安全如同一面坚固的盾牌&#xff0c;保护着我们的信息资产免受无孔不入的威胁。而其中&#xff0c;WAF就像网络安全的守门员&#xff0c;关键时刻挺身而出&#xff0c;为您的企业筑起一道坚实的防线。 攻防不对等 防守方实时应答压力山大 在攻防对抗中&#xf…...

构造+模拟,CF1148C. Crazy Diamond

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1148C - Codeforces 二、解题报告 1、思路分析 题目提示O(5n)的解法了&#xff0c;事实上我们O(3n)就能解决&#xff0c;关键在于1&#xff0c;n的处理 我们读入数据a[]&#xff0c;代表初始数组…...

C++进程间通信 匿名管道和命名管道

C进程间通信 匿名管道和命名管道 1. 匿名管道匿名管道概述匿名管道代码示例代码解释运行结果 2. 命名管道命名管道概述命名管道代码示例写入数据的程序&#xff08;writer.cpp&#xff09;读取数据的程序&#xff08;reader.cpp&#xff09; 代码解释运行步骤运行结果 匿名管道…...

原神抽卡点名程序教程(直接下载用)

今天我要给大家分享一个在抖音上特别火的视频——原神抽卡点名程序教程。 &#xff08;要源码的私信扣31&#xff09; 废话不多说&#xff0c;直接上效果图 &#xff1a; 步骤1&#xff1a; 步骤2&#xff1a;&#xff08;写名单&#xff0c;前面加数字代表星级&#xff0c;用…...

【Rust日报】Rust 中的形式验证

文章 - 未来的愿景&#xff1a;Rust 中的形式验证 这篇文章回顾了形式化验证的基本概念&#xff0c;作者展示了如何使用 Hoare triples 来描述和推理程序的正确性&#xff0c;以及如何使用分离逻辑来解决验证的复杂性。文章还解释了为什么 Rust 适用于形式化验证&#xff0c;以…...

Vue.js组件设计模式:构建可复用组件库

在Vue.js中&#xff0c;构建可复用的组件库是提高代码复用性和维护性的关键。下面是一些设计模式&#xff0c;说明如何创建可复用的Vue组件&#xff1a; 1. 单文件组件&#xff08;Single File Component, SFC&#xff09; Vue.js组件通常是单文件组件&#xff0c;包含HTML、…...

电脑同时配置两个版本mysql数据库常见问题

1.配置时&#xff0c;要把bin中的mysql.exe和mysqld.exe 改个名字&#xff0c;不然两个版本会重复&#xff0c;当然&#xff0c;在初始化数据库的时候&#xff0c;如果时57版本的&#xff0c;就用mysql57(已经改名的)和mysqld57 代替 mysql 和 mysqld 例如 mysql -u root -p …...