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

Linux 防火墙( iptables )

目录

一、 Linux 防火墙基础

1. 防火墙基础概念

(1)防火墙的概述与作用

(2)防火墙的结构与匹配流程

(3)防火墙的类别与各个防火墙的区别

2. iptables 的表、链结构

(1)规则表

(2)规则链

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

(1)规则表之间的顺序

(2)规则链之间的顺序

入站流量处理流程

出站流量处理流程

(3)规则链内部各条防火墙规则之间的顺序

总结速记表

二、编写防火墙规则

1. iptables 的基础设置

(1)iptables 安装

(2)启动防火墙并设置开机自启动

2. 基本语法、数据包控制类型

(1)基本语法

(2)控制类型

3. 添加·、查看、删除规则等基本规则

(1)添加新的规则(链的末尾可使用“-p 协议名”作匹配条件)

(2)查看规则列表(可结合“-L”,“--line-numbers”)

(3)删除、清空规则

(4)设置默认策略

三、规则的匹配条件(分为三大类)

1. 通用匹配

(1)协议匹配

(2)地址匹配

(3)网络接口匹配

2. 隐含匹配

(1)端口匹配

(2)ICMP 类型匹配

3. 显式匹配

(1)多端口匹配

(2)IP范围匹配

(3)MAC 地址匹配

(4)状态匹配


一、 Linux 防火墙基础

1. 防火墙基础概念

(1)防火墙的概述与作用
  • 定义:防火墙是位于网络边界的 安全屏障,通过预定义规则控制进出网络的流量。

  • 核心功能

    • 访问控制:允许或拒绝特定流量(如 IP、端口、协议)。

    • 网络地址转换(NAT):隐藏内部网络结构,实现 IP/端口映射。

    • 流量监控:记录网络活动,检测异常行为(如 DDoS 攻击)。

    • 防御攻击:阻止恶意流量(如 SYN Flood、ICMP 洪水)。

(2)防火墙的结构与匹配流程
           ┌───────────────┐  输入流量 →│ 规则匹配引擎 │→ 输出流量  └───────┬───────┘  ↓  [日志记录/警报]  
数据包 → 匹配规则 → 执行动作(ACCEPT/DROP/REJECT)  ↑  规则数据库(表+链+规则)  

匹配流程
协议分析 → 规则匹配 → 执行动作(允许/拒绝/日志)

(3)防火墙的类别与各个防火墙的区别
  • iptables:传统防火墙工具,用于管理Linux防火墙的命令程序,基于 Netfilter 框架,通过规则表(Tables)和规则链(Chains)管理流量。是“用户态”(User Space ,用户空间)的防火墙管理体;通常在/sbin/iptables 目录下。

  • nftables:iptables 的替代品,在Linux内核中实现包过滤防火墙的内部结构,语法更简洁,性能更优,逐步成为主流。是“内核态”(Kernel Space ,内核空间)不以程序或文件形式存在的防火墙功能体系。

  • firewalld:动态防火墙管理工具(Red Hat 系默认),支持区域(Zones)和运行时/永久配置。

  •  类型对比

工具特点适用场景
iptables基于 Netfilter 框架,直接管理规则表/链,语法复杂但灵活。精细化控制、复杂网络环境
nftablesiptables 的替代品,统一语法、性能更优,支持多规则合并。新系统、追求高效管理的场景
firewalld动态防火墙管理工具,支持运行时/永久配置,抽象为“服务”和“区域”。快速配置(如开放 Web 服务)

2. iptables 的表、链结构

iptables 的作用是为了过滤机制的实现提供规则

(1)规则表
表名功能常见操作
filter数据包过滤(默认表)确定是否放行数据包允许/拒绝流量(ACCEPT/DROP)
nat网络地址转换(NAT)修改数据包中的源、目标 IP 地址或端口。端口转发、IP 伪装(MASQUERADE)
mangle修改数据包头部(如 TTL(生存周期)、TOS(服务类型))为数据包设置标记标记数据包(MARK)
raw决定是否对数据包进行状态跟踪标记不追踪的数据包(NOTRACK)
(2)规则链

每个表包含多个链,链是规则的集合,决定数据包的处理路径:

链名所属表触发场景
POSTROUTINGmangle, nat数据包离开网卡前(SNAT 修改源地址)
PREROUTINGraw, mangle, nat数据包进入网卡后、路由决策前(DNAT 修改目标地址)
INPUTfilter数据包目标是本机地址应用(入站)
OUTPUTfilter本机向外发出的数据包(出站)
FORWARDfilter数据包需要转发到其他主机(路由开启时生效)

链路由图

外部数据 → PREROUTING → 路由判断 → 目标是否本机?  ↓                 ↙             ↘  INPUT链         FORWARD链        OUTPUT链  ↓                 ↓               ↓  本机进程          转发处理        POSTROUTING → 外发

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

匹配流程:

数据包依次经过不同 表(raw → mangle → nat → filter)。

在表中按 链 的顺序处理(如 PREROUTING → INPUT)。

链内规则按 从上到下 顺序匹配,命中则执行动作(ACCEPT/DROP)。

(1)规则表之间的顺序

数据包依次经过 raw → mangle → nat → filter 表的处理:

  1. raw 表PREROUTING链:决定是否跳过连接追踪(如标记 NOTRACK)。

  2. mangle 表PREROUTING链:修改数据包头部(如调整 TTL)。

  3. nat 表PREROUTING链:执行地址转换(如 DNAT 端口映射)。

  4. filter 表INPUT链:最终决定是否允许数据包通过。

(2)规则链之间的顺序

数据包根据方向触发不同链:

  • 入站流量(如访问本机 Web 服务):

    网卡 → PREROUTING(raw/mangle/nat) → 路由决策 → INPUT(filter) → 本地应用  
  • 转发流量(如路由器转发数据):

    网卡 → PREROUTING → 路由决策 → FORWARD(filter) → POSTROUTING → 出站网卡  
  • 出站流量(如本机访问外网):

    本地应用 → OUTPUT(filter) → POSTROUTING(mangle/nat) → 出站网卡  
入站流量处理流程
1. 网卡接收数据包  ↓  
2. raw 表的 PREROUTING 链  ↓  
3. mangle 表的 PREROUTING 链  ↓  
4. nat 表的 PREROUTING 链(DNAT)  ↓  
5. 路由决策(目标是否为本机?)  ↓  
6. 是 → filter 表的 INPUT 链(决定是否允许进入本机)  ↓  
7. 本地应用接收  
出站流量处理流程
1. 本地应用发送数据包  ↓  
2. filter 表的 OUTPUT 链(决定是否允许出站)  ↓  
3. mangle 表的 POSTROUTING 链  ↓  
4. nat 表的 POSTROUTING 链(SNAT/MASQUERADE)  ↓  
5. 数据包从网卡发出  
(3)规则链内部各条防火墙规则之间的顺序

执行原则

  • 从上到下逐条匹配

  • 首次匹配后停止(ACCEPT/DROP/REJECT)

  • 未匹配则执行链的默认策略(通过 iptables -P 设置)

总结速记表

核心概念要点
防火墙作用访问控制、NAT、流量监控、防御攻击
表与链的关系表按功能分类,链按流量方向划分
匹配流程顺序raw → mangle → nat → filter(表顺序);PREROUTING → INPUT/FORWARD → POSTROUTING(链顺序)
安全最佳实践默认拒绝(-P DROP)、细化规则优先、定期审计规则

二、编写防火墙规则

1. iptables 的基础设置

(1)iptables 安装

yum -y install iptables iptables-services     ##注意有些系统装过iptables,直接下一步启动就好

(2)启动防火墙并设置开机自启动

systemctl stop firewalld     ##关闭默认的 防火墙(firewalld),避免产生影响

systemctl disable  firewalld

systemctl start iptables.service     ##启动iptables 防火墙

systemctl enable iptables.service

2. 基本语法、数据包控制类型

(1)基本语法
iptables [-t 表名] 命令选项 [链名] [规则条件] [-j 控制类型  ]

参数解析

  • -t:指定操作表(不指定,默认为filter表)

  • 命令选项:-A(追加)/-I(插入)/-D(删除)/-L(查看)等

  • -j:指定数据包处理动作(ACCEPT/DROP等)

  • -p : 指定协议

(2)控制类型
控制类型功能描述典型场景
ACCEPT允许通过开放SSH端口(22)
DROP静默丢弃防御端口扫描
REJECT拒绝并返回错误明确拒绝HTTP请求(返回RST)
LOG记录日志(不阻断流量)/var/log/messages调试防火墙规则
SNAT源地址转换内网机器访问外网
DNAT目标地址转换外网访问内网服务器
MASQUERADE动态源地址转换拨号上网等动态IP环境

3. 添加·、查看、删除规则等基本规则

管理选项:

类别选项用途
增加-A追加到最后一行
-I插入到第一行(或指定序号)
查看-L列出所有规则
-n以数字形式显示
-v详细信息
--line(--line-numbers)显示序号
删除-D删除一条(指定序号或内容)
-F清空所有
修改-R替换某条规则
设置默认-P设置默认规则
(1)添加新的规则(链的末尾可使用“-p 协议名”作匹配条件)
# 允许特定IP访问SSH  
iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT  # 插入规则到链首(优先级最高)  
iptables -I INPUT 1 -p icmp -j DROP          # 禁止所有ping  # 设置端口转发(需开启ip_forward)  
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.0.2:80  
(2)查看规则列表(可结合“-L”,“--line-numbers”)
# 查看filter表规则(默认表)  
iptables -L -n --line-numbers -v  # 查看nat表规则  
iptables -t nat -L -n  # 输出解析:  
# num   pkts bytes target     prot opt in out source      destination  
# 1      200 12000 ACCEPT     tcp  --  *  *   192.168.1.100 0.0.0.0/0   tcp dpt:22  
(3)删除、清空规则
# 按编号删除  
iptables -D INPUT 2          # 删除INPUT链第2条规则  # 按条件删除  
iptables -D INPUT -s 192.168.1.100 -j ACCEPT  # 清空所有规则  
iptables -F                  # 清空当前表  默认filter表
iptables -t nat -F           # 清空nat表  
(4)设置默认策略
# 设置INPUT链默认拒绝所有入站  
iptables -P INPUT DROP  # 设置OUTPUT链默认允许所有出站  
iptables -P OUTPUT ACCEPT  # 注意:默认策略应在具体规则前设置!  

三、规则的匹配条件(分为三大类)

匹配条件是什么?有什么用?

1. 通用匹配(常规匹配,可直接使用)

(1)协议匹配

结合“ -p  协议名 ”的形式指定,用来检查数据包所使用的网络协议(--protocol),可用协议类型在/etc/procotols 文件。

iptables -I INPUT -p icmp -j DROP   //丢弃通过 icmp 协议访问防火墙本机的数据包iptables -A FORWARD ! -p icmp -j ACCEPT   //允许转发经过防火墙的除 icmp 协议之外的数据包
(2)地址匹配

结合“-s 源地址” 或 “-d 目标地址 ”的形式指定,用来检查数据包的源地址(--source)或目标地址(--destination)。

##拒接转发源地址192.168.1.11的数据,允许转发源地址位于192.168.7.0/24网段的数据
iptables -A FORWARD -s 192.168.1.11 -j REJECT
iptables -A FORWARD -s 192.168.7.0/24 -j ACCEPT#遭到小规模扫描和攻击时(例如10.20.30.0/24),封锁IP地址
iptables -I INPUT -s 10.20.30.0/24 -j DROP
iptables -I FORWARD -s 10.20.30.0/24 -j DROP
(3)网络接口匹配

结合“-i 接口名” 和 “-o 接口名 ”的形式指定,用于检查数据包从防火墙的哪一个接口进入或发出,分别对应入站网卡(--in-interface)、出站网卡(--out-interface)

##要丢弃从外网接口访问防火墙本机且源地址为私有地址的数据包
iptables -A INPUT -i ens33 -s 10.0.0.0/8 -j DROP
iptables -A INPUT -i ens33 -s 172.16.0.0/16 -j DROP
iptables -A INPUT -i ens33 -s 192.168.0.0/16 DROP

2. 隐含匹配(指定的协议匹配为前提条件,无法单独使用)

(1)端口匹配

结合“--sport 源端口” 或 “--dport 目标端口” 的形式,针对的协议为 TCP 或 UDP,用来检查数据包的源端口或目标端口。单个端口号或以冒号“ : ”分隔,但多个端口不采用。

##允许为网段192.168.4.0/24 转发 DNS 查询数据包
iptables -A FORWARD -s 192.168.4.0/24 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -d 192.168.4.0/24 -p udp --sport 53 -j ACCEPT
(2)ICMP 类型匹配

结合“--icmp-type ICMP” 的形式,用于检查ICMP数据包的类型(--icmp-type).

##禁止从其他主机ping本机,但是允许本机ping其他本机
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT -p icmp -j DROP

3. 显式匹配(要求额外的内核模块提供支持,必须“-m 模块名称”形式调用)

(1)多端口匹配

结合“-m multiport --dports 端口列表”、“-m multiport --sports 端口列表”的形式,用于检查数据包的源端口、目标端口、多个端口以逗号进行分隔。

iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT
(2)IP范围匹配

结合“-m iprange --src-range IP 范围”、“-m iprange --dst-range IP范围”的形式,用于检查数据包的源地址、目标地址。

iptables -A FORWARD -p tcp -m iprange --src-range192.168.4.21-192.168.4.28 -j DROP
(3)MAC 地址匹配

结合“-m mac --mac-source MAC地址”的形式,用于检查数据包的源MAC地址。

iptables -A INPUT -m mac --mac-source MAC地址  -j DROP
(4)状态匹配

结合“-m state --state 连接状态”的形式,基于iptables 的状态跟踪机制用来检查数据包的连接状态(State)。

##禁止转发与正常TCP连接无关的非--syn请求数据包
iptables -A FORWARD -m state --state NEW -p tcp ! --syn -j DROP##只开放本机Web服务(80端口),但对发给本机的TCP应答数据包放行
iptables -I INPUT -p tcp -m multiport --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
iptables -P INPUT DROP

相关文章:

Linux 防火墙( iptables )

目录 一、 Linux 防火墙基础 1. 防火墙基础概念 (1)防火墙的概述与作用 (2)防火墙的结构与匹配流程 (3)防火墙的类别与各个防火墙的区别 2. iptables 的表、链结构 (1)规则表 …...

Hook插件

hook插件 1.概念 在JavaScript中,hook是一种能够拦截和修改函数或方法行为的技术。通过使用hook,开发者可以在现有的函数执行前、执行后或者替换函数的实现逻辑。hook目的是找到函数入口以及一些参数变化,便于分析js逻辑。 2.hook的作用&a…...

ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],

因客户机房断电,2台主机和共享存储全部断电,来电后,集群启动正常,实例无法正常启动,手动启动报错如下 SQL > startup; ORACLE instance started. Total System Global Area 3.9551E10 bytes Fixed Size …...

R4打卡——tensorflow实现火灾预测

🍨 本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 1.检查GPU import tensorflow as tf import pandas as pd import numpy as npgpus tf.config.list_physical_devices("GPU") if gpus:…...

基于AI大语言模型的历史文献分析在气候与灾害重建领域中的技术应用

随着人工智能技术的快速发展,大语言模型(如GPT、BERT等)在自然语言处理领域取得了显著进展,特别是在非结构化文本数据的分析方面,极大地拓展了我们的研究视角。这些技术不仅提高了处理和理解文本数据的效率&#xff0c…...

CSS 字体背景波浪

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><title>字体背景波浪</title><style>/* HTML: <div class"loader"></div> *//* HTML: <div class"loader"…...

2025能源网络安全大赛CTF --- Crypto wp

文章目录 前言simpleSigninNumberTheory 前言 大半年以来写的第一篇文章&#xff01;&#xff01;&#xff01; simpleSignin 题目&#xff1a; from Crypto.Util.number import * from gmpy2 import * import osflag bxxx p next_prime(bytes_to_long(os.urandom(128))…...

Redis面试——日志

一、RDB&#xff08;Redis DataBase&#xff09; RDB 全程是 Redis DataBase&#xff0c;它是一种将 Redis 在某一时刻内存中的数据以快照形式保存到磁盘的机制 &#xff0c;相当于给执行save/bgsave命令时刻的内存数据库数据拍了一张快照我们如果通过save命令来执行快照&…...

计算机视觉与深度学习 | 基于YOLOv8与光流法的目标检测与跟踪(Python代码)

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 目标检测与跟踪 关键实现逻辑检测-跟踪协作机制‌特征点选择策略‌运动…...

nginx-基础知识

目录 相关协议&#xff1a; HTTP协议特点 HTTP协议的原理 HTTP协议的请求方式 HTTP协议的状态码 nginx的功能 nginx缓存 nginx异步非阻塞 nginxI/O多路复用 nginx常用模块以及其功能 相关协议&#xff1a; HTTP协议&#xff0c;超文本传输协议&#xff0c;占用端口80…...

class的访问器成员

class的访问器成员 本质是 class 的语法糖 等价于对象的defineProperty对象里面也能使用 class Product{constructor(count, price){this.count count;this.price price;}get total(){ // 相当于getterreturn this.count * this.price;}}const product new Product(10, 10…...

学习海康VisionMaster之矩形检测

这几天太忙了&#xff0c;好几天没有学习了&#xff0c;今天终于空下来了&#xff0c;继续学习之路吧。 一&#xff1a;进一步学习了 今天学习下VisionMaster中的矩形检测&#xff0c;这个一开始我以为是形态学方面的检测&#xff0c;实际操作下来其实还是边缘直线的衍生应用&…...

【已更新】2025华中杯C题数学建模网络挑战赛思路代码文章教学数学建模思路:就业状态分析与预测

完整内容请看文末最后的推广群 先展示问题一代码和结果、再给出四个问题详细的模型 按性别分析就业与失业状态&#xff1a; employment_status 失业 sex 0 182 1 163 按学历分析就业与失业状态&#xff1a; employment_status 失业 edu_level 0 10 1 172 2 163 按年龄区间分…...

CS144 Lab1实战记录:实现TCP重组器

文章目录 1 实验背景与要求1.1 TCP的数据分片与重组问题1.2 实验具体任务 2 重组器的设计架构2.1 整体架构2.2 数据结构设计 3 重组器处理的关键场景分析3.1 按序到达的子串&#xff08;直接写入&#xff09;3.2 乱序到达的子串&#xff08;需要存储&#xff09;3.3 与已处理区…...

Linux信号三部曲:产生机制、处理方式与内核接口

Linux系列 文章目录 Linux系列前言一、背景知识铺垫1.1 信号的基本概念1.2 进程对信号的处理 二、信号的产生2.1 前台进程和后台进程2.2 键盘组合键2.3 kill 命令2.4 系统调用2.4.1 signal()接口2.4.2 kill()接口2.4.3 raise()接口2.4.4 abort()接口 总结 前言 Linux中&#x…...

对抗生成进化:基于DNA算法的AIGC检测绕过——让AI创作真正“隐形“

一、技术背景与核心思想 2025年&#xff0c;AIGC检测工具&#xff08;如Originality.AI 5.0&#xff09;的识别准确率已达99.3%。本研究提出基于染色体编码的对抗进化框架&#xff08;CAEF&#xff09;&#xff0c;通过模拟生物进化过程动态优化生成模型&#xff0c;成功将检测…...

探索大语言模型(LLM):马尔可夫链——从诗歌分析到人工智能的数学工具

提出背景与灵感起源 马尔可夫链由俄国数学家安德雷马尔可夫于1906年提出&#xff0c;最初是为了挑战当时概率论中“独立性假设”的局限性。他希望通过研究相依变量序列&#xff0c;证明即使随机变量之间存在依赖关系&#xff0c;大数定律和中心极限定理仍然成立。 灵感来源&am…...

深入解析Java Socket服务器实现:从基础到优雅停机

本文将详细解析一个基于Java Socket实现的服务器程序&#xff0c;涵盖线程池管理、心跳检测、优雅停机等关键特性&#xff0c;并最终提供完整代码实现。 1. 架构概述 这个Socket服务器实现具有以下核心特性&#xff1a; 基于Java原生Socket API实现使用线程池处理客户端连接…...

AI+SWAT模型革命性应用!ArcGIS Pro流域水循环/水生态智能模拟实战;SWAT模型下载 安装 运行 建模流程

⚠️您是否面临&#xff1a; 传统水文模型效率低下&#xff1f; 多源空间数据处理耗时&#xff1f; 复杂生态过程难以量化&#xff1f; &#x1f4a1;当SWAT模型遇见"ArcGIS ProAI"&#xff1a; → 传统需要1个月的参数率定缩短至3天 → 多情景分析报告自动生成&a…...

《AI大模型应知应会100篇》第23篇:角色扮演技巧:让AI成为你需要的专家

第23篇&#xff1a;角色扮演技巧&#xff1a;让AI成为你需要的专家 摘要 在当今人工智能快速发展的时代&#xff0c;大模型已经不仅仅是简单的问答工具&#xff0c;它们可以通过角色扮演技巧模拟各类专家身份&#xff0c;从而为用户提供更专业、更有针对性的服务。本文将深入探…...

【17】数据结构之图的遍历篇章

目录标题 图的遍历深度优先遍历 Depth First Search广度优先遍历 Breadth First Search 图的遍历 从图中某一个顶点出发&#xff0c;沿着一些边访遍图中所有的顶点&#xff0c;且使用每个顶点仅被访问一次&#xff0c;这个过程称为图的遍历.Graph Traversal. 其中&#xff0c…...

【gpt生成-其一】以go语言为例,详细描述一下 ​:语法规范​​BNF/EBNF形式化描述

在 Go 语言中通过 EBNF 形式化描述语法规范需要结合语言规范文档的结构&#xff0c;以下是详细实现方法及标准规范示例&#xff1a; 一、Go 语法规范结构&#xff08;基于 Go 1.21 标准&#xff09; ebnf 复制 // 基础元素定义 letter "A" ... "Z&quo…...

深度剖析:GPT-3.5与GPT-4的主要区别及架构解析

随着自然语言处理技术的飞速发展&#xff0c;OpenAI推出的各类语言模型备受瞩目。尤其是GPT-3.5和GPT-4这两个版本之间的差异&#xff0c;成为了技术爱好者、研究人员和企业关注的焦点。在这篇文章中&#xff0c;我们将探讨这两个版本的主要区别以及它们的架构特点&#xff0c;…...

协同推荐算法实现的智能商品推荐系统 - [基于springboot +vue]

&#x1f6cd;️ 智能商品推荐系统 - 基于springboot vue &#x1f680; 项目亮点 欢迎来到未来的购物体验&#xff01;我们的智能商品推荐系统就像您的私人购物顾问&#xff0c;它能读懂您的心思&#xff0c;了解您的喜好&#xff0c;为您精心挑选最适合的商品。想象一下&am…...

【运维学习】lvs + keepalived + 主从dns 项目搭建

需求 主机规划 环境搭建 配置主从dns 主dns 从dns 配置web服务 搭建lvs keepalived 配置master 配置backup 更改dns配置 添加VIP 配置内核参数 更改web配置 添加VIP 配置内核参数 客户端测试 需求 主机规划 主机名IP角色lvs-master192.168.239.105主lvs&#x…...

ESP32-idf学习(二)esp32C3作服务端与电脑蓝牙数据交互

一、当前需求 目前是想利用蓝牙来传输命令&#xff0c;或者一些数据&#xff0c;包括电脑、手机与板子的数据传输&#xff0c;板子与板子之间的数据传输。构思是一个板子是数据接收终端&#xff0c;在电脑或手机下发指令后&#xff0c;再给其他板子相应指令&#xff0c;也需要…...

考道路运输安全员证应具备哪些经验?

考道路运输安全员证&#xff0c;通常没有明确的工作经验年限要求&#xff0c;但具备以下相关经验会对考试有很大帮助&#xff1a; 驾驶经验&#xff1a;报考要求取得相应的机动车驾驶证 1 年以上。有实际驾驶经验&#xff0c;能更好地理解驾驶员的操作规范、疲劳驾驶等问题&…...

ubtuntu安装docker拉取iwebsec镜像

docker安装&#xff1a; --可以在这之前换源&#xff08;非必要&#xff09;没有权限直接加sudo sudo apt-get update ​ sudo apt-get upgrade 安装依赖&#xff1a; sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-re…...

Using the CubeMX code (一)(GPIO,PWM ,Cube AI,手写数字识别 MNIST,Demo)

该例程对使用CubeMX初始化GPIO做了示范&#xff0c;GPIO使用HAL库进行GPIO编程分为以下几个步骤&#xff1a; 一、例程简述 1. 包含必要的头文件和HAL库的相关头文件 CubeMX初始化会自动包含&#xff0c;对手敲HAL感兴趣的同学可以熟悉下生成的代码框架学习哦~ 2. 初始化GP…...

【第46节】windows程序的其他反调试手段中篇

目录 引言 一、利用SetUnhandledExceptionFilter/Debugger Interrupts 二、Trap Flag 单步标志异常 三、利用SeDebugPrivilege 进程权限 四、利用DebugObject:NtQueryObject() 五、OllyDbg:Guard 六、Software Breakpoint Detection 引言 在程序反调试领域&#xff0c;存…...

【APM】How to enable Trace to Logs on Grafana?

系列文章目录 【APM】Observability Solution 【APM】Build an environment for Traces, Metrics and Logs of App by OpenTelemetry 【APM】NET Traces, Metrics and Logs to OLTP 【APM】How to enable Trace to Logs on Grafana? 前言 本文将介绍如何在Grafana上启用 …...

第十节:性能优化-如何排查组件不必要的重复渲染?

工具&#xff1a;React DevTools Profiler 方法&#xff1a;memo、shouldComponentUpdate深度对比 React 组件性能优化&#xff1a;排查与解决重复渲染问题指南 一、定位性能问题&#xff1a;React DevTools 高级用法 使用 React Developer Tools Profiler 精准定位问题组件&…...

Spring Boot 项目中发布流式接口支持实时数据向客户端推送

1、pom依赖添加 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency>2、事例代码 package com.pojo.prj.controller;import com.pojo.common.core.utils.String…...

SpringBoot整合Thymeleaf变量渲染全解析:从基础到高阶实践

Thymeleaf作为SpringBoot官方推荐的模板引擎,其核心价值在于将动态数据无缝注入静态HTML模板。本文将从基础语法到复杂场景,深入剖析Thymeleaf对各种类型变量的渲染机制。 一、环境搭建与基础配置 依赖注入 在pom.xml中引入核心依赖:<dependency><groupId>org.s…...

【verilog】Verilog 工程规范编码模板

这一套【Verilog 工程规范编码模板】&#xff0c;适合写清晰、可维护、可综合的 RTL 代码&#xff0c;适用于 FPGA/ASIC 开发&#xff1a; &#x1f4d8; Verilog 工程级编码规范模板 1️⃣ 模块结构规范 module my_module #(parameter WIDTH 8 // 模块参数 )(input wire c…...

satoken的奇奇怪怪的错误

发了 /user/getBrowseDetail和/user/getResponDetail&#xff0c;但为什么进入handle里面有三次&#xff1f;且第一次的handle类型是AbstractHandleMapping$PreFlightHttpRequestHandlerxxx,这一次进来的时候flag为false&#xff0c;StpUtils.checkLogin抛出了异常 第二次进来的…...

使用prometheus-operator部署prometheus服务,并对外提供访问

先决条件: 已经部署好k8s #这里我使用的版本是1.28.12 [rootprometheus-operator /zpf/prometheus/kube-prometheus/manifests]$kubectl version Client Version: v1.28.12 Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3 Server Version: v1.28.12安装git服务 #安…...

FPGA阵列

FPGA&#xff08;现场可编程门阵列&#xff09;阵列是由多个 FPGA 芯片组成的集合&#xff0c;通过特定的架构和互联方式协同工作&#xff0c;以实现强大的计算和处理能力。以下是关于 FPGA 阵列的详细介绍&#xff1a; 基本原理 FPGA 是一种可重构的集成电路&#xff0c;内部…...

Oracle补丁安装工具opatch更新报错处理

今日&#xff0c;在进行Oracle补丁升级更新opatch工具包后&#xff0c;执行opatch命令出现了如下报错&#xff1a; [oracles203116 ~]$ opatch version /u01/product/oracle/12.1.0/db_1/OPatch/opatch: line 839: [: too many arguments /u01/product/oracle/12.1.0/db_1/O…...

前端笔记-html+css测试2

HTML & CSS 能力测试卷 选择题&#xff08;每题2分&#xff0c;共20分&#xff09; 下列哪个HTML5标签用于定义文档的导航链接&#xff1f; A) <nav> B) <navigate> C) <navbar> D) <navigation> CSS中哪个属性用于设置元素的透明度&#xff1f;…...

Visual Studio C++ 常用配置变量表

前言 visual studio中常用配置变量表 帮助你快速查阅&#xff0c;复制粘贴嘎嘎方便! 附上美图&#xff01;&#xff01; 一、解决方案 & 项目路径 变量含义示例&#xff08;典型用法&#xff09;$(SolutionDir)解决方案文件所在目录&#xff08;末尾带\&#xff09;$(S…...

论文阅读VACE: All-in-One Video Creation and Editing

code&#xff1a;https://github.com/ali-vilab/VACE 核心 单个模型同时处理多种视频生成和视频编辑任务通过VCU&#xff08;视频条件单元&#xff09;进行实现 方法 视频任务 所有的视频相关任务可以分为4类 文本生视频 参考图片生视频 视频生视频 视频mask生视频 VCU …...

【Python Cookbook】迭代器与生成器(一)

迭代器与生成器&#xff08;一&#xff09; 1.手动遍历迭代器2.代理迭代3.使用生成器创建新的迭代模式4.实现迭代器协议 1.手动遍历迭代器 你想遍历一个可迭代对象中的所有元素&#xff0c;但是却不想使用 for 循环。 为了手动的遍历可迭代对象&#xff0c;使用 next() 函数并…...

Qwen2.5-VL视觉大语言模型复现过程,没碰到什么坑

视频讲解&#xff1a;Qwen2.5-VL视觉大语言模型复现过程&#xff0c;没碰到什么坑_哔哩哔哩_bilibili Qwen2.5-VL视觉大语言模型复现过程&#xff0c;没碰到什么坑 今天复现下Qwen2.5-VL玩玩 https://github.com/QwenLM/Qwen2.5-VL 创建conda环境&#xff0c;实测22.04&#x…...

LVGL填充函数

lvgl填充函数的位置&#xff1a; static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p) {LCD_Color_Fill(area->x1,area->y1,area->x2,area->y2,(u16*)color_p);lv_disp_flush_ready(disp_drv); }填充函数的具体内容…...

关于 传感器 的详细解析,涵盖定义、分类、工作原理、常见类型、应用领域、技术挑战及未来趋势,结合实例帮助理解其核心概念

以下是关于 传感器 的详细解析&#xff0c;涵盖定义、分类、工作原理、常见类型、应用领域、技术挑战及未来趋势&#xff0c;结合实例帮助理解其核心概念&#xff1a; 一、传感器的定义与核心功能 1. 定义 传感器&#xff08;Sensor&#xff09;是一种能够将物理量&#xff…...

回归,git 分支开发操作命令

核心分支说明 主分支&#xff08;master/production&#xff09;存放随时可部署到生产环境的稳定代码&#xff0c;仅接受通过测试的合并请求。 开发分支&#xff08;develop&#xff09;集成所有功能开发的稳定版本&#xff0c;日常开发的基础分支&#xff0c;从该分支创建特性…...

指形铣刀的结构

指形铣刀&#xff0c;作为机械加工领域中一种至关重要的切削工具&#xff0c;其主要结构类型多样且各具特色&#xff0c;深入学习这些类型对于提升加工效率与精度至关重要。 首先&#xff0c;我们来看看最基本的直柄指形铣刀。这种铣刀的设计简洁明了&#xff0c;其柄部为直线…...

【verilog】always @(*) 是Verilog 中写组合逻辑

always (*) 是 Verilog 中写组合逻辑&#xff08;combinational logic&#xff09; 的标准写法&#xff0c;下面讲解含义、作用、以及为什么这么写。 &#x1f31f; 什么是 always (*)&#xff1f; always (*) begin// 组合逻辑 end它的意思是&#xff1a; “只要块中用到的任…...

【IC】STA计算

这张图很好&#xff0c;把STA的方法展示的很清楚&#xff01; 时序分析在每个设计阶段都是必不可少的&#xff0c;以便在现代 IC 设计中实现时序收敛。除了准确性之外&#xff0c;全芯片分析的效率和可扩展性也尤为重要。因此&#xff0c;门级静态时序分析 &#xff08;STA&am…...