防火墙原理与应用总结
防火墙介绍:
防火墙(Firewall)是一种网络安全设备,其核心目标是通过分析数据包的源地址、端口、协议等内容,保护一个网络区域免受来自另一个网络区域的网络攻击和网络入侵行为,同时允许合法流量自由通行。
这里的防火墙不是指建筑领域用来隔离火源的那一堵墙,而是指网络防火墙,可以是硬件、软件、软件即服务(SaaS)等形式。防火墙作为网络部署中安全防护的第一道防线,可灵活应用于网络边界、子网隔离等位置,具体如企业网络出口、大型网络内部子网隔离、数据中心边界等等。
防火墙分类:
按功能分类:
- 主机防火墙:针对于单个主机进行防护。
- 网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。
按类型分:
- 硬件防火墙有:华为、思科等品牌的防火墙
- 软件防火墙分为:firewalld、iptables 及 windows 内置的 Defender 防火墙。
其中硬件防火墙比软件防火墙又快很多倍。
防火墙的发展史:
防火墙自上世纪80年代末期开始发展,至今已有近30年的历史,在这段时间内,防火墙的发展大致可分为三个重要阶段。
阶段一:1989-1994年
1、1989年,第一款基于访问控制列表(包过滤)的防火墙被开发,被称为第一代防火墙。
2、之后出现了基于ALG的第二代防火墙:令防火墙拦截从客户端向服务器发起的所有请求报文,由防火墙代理访问服务器,在将服务器的相应报文回传至客户端;安全级别较高,但处理速度较慢;同时,ALG很难针对网络中的每种应用单独开发独立的代理服务程序,因此仅仅只能够代理某些访问请求。
3、1994年,出现了基于状态化检测的第三代防火墙:通过分析报文的当前状态来执行不同的拦截操作。
阶段二:1995-2004年
1、在这一时期,状态化检测防火墙得到了长足的发展与进步,同时人们针对状态化检测防火墙增加了许多增值性功能:VPN、NAT等
2、一些专业设备也在这一时期出现了雏形,例如专门保护web服务器安全的WAF(web application firewall)设备
阶段三:2005-至今
2004年业界提出了业界提出了UTM(united threat managemetn)统一威胁管理概念,将传统防火墙、入侵检测、防病毒、URL过滤、应用程序控制、邮件过滤等功能融合到一台防火墙上,实现全面的安全防护
2008年Palo Alto Networks公司发布了下一代防火墙,解决了解决了UTM多个功能同时运行时性能下降的问题。同时,还可以基于用户、应用和内容来进行管控。
2009年Gartner对下一代防火墙进行了定义,明确下一代防火墙应具备的功能特性。随后各个安全厂商也推出了各自的下一代防火墙产品,防火墙进入了一个新的时代。
我们现在常见的防火墙都是第五代防火墙。
第五代防火墙的名字就叫“下一代防火墙”,没有指代之意。
防火墙类型 | 工作原理 | 优点 | 缺点 |
---|---|---|---|
包过滤防火墙 | 基于网络层和传输层,通过分析经过防火墙的每个 IP 数据包的源地址、目标地址、协议类型以及端口号等信息,与事先设定好的安全策略进行匹配,决定这些数据包是被允许通过,还是被拒绝或丢弃。 | ① 简单高效:包过滤防火墙处理速度快,资源消耗相对较低。② 兼容性好:几乎可以在任何网络层上进行配置和使用。 | ① 安全性有限:仅能基于数据包的表面层面进行审查,无法深入到应用层,因此无法识别复杂的攻击手段。② 功能单一:缺乏更高级的网络安全功能,如状态检查、内容审查等。 |
应用代理防火墙 | 基于应用层的防火墙技术,它通过代理服务器来处理进出网络的数据包。应用代理防火墙可以对数据包的内容进行过滤和检查,可以识别应用层协议(如 HTTP、FTP),并可以对数据包进行加密和解密。 | ① 安全性高:可以对数据包的内容进行深度检查。② 精确控制:可以根据应用需求设置详尽的访问控制规则,实行更为精细化的流量管理。 | ① 资源消耗大:由于需要深入分析数据包内容,会大幅增加 CPU 等资源的消耗。② 处理速度慢:复杂的分析过程延长了处理时间,对于高速网络可能产生瓶颈。 |
状态检测防火墙 | 在包过滤防火墙基础上发展而来,除了具有包过滤防火墙的基础功能外,它还能够跟踪和分析数据流的状态信息,如会话过程中的数据包顺序、连接状态等。 | ① 安全性提升:通过跟踪连接状态,能够更准确地判断数据流的合法性,有效抵御一些简单攻击。② 智能化:可以根据通信状态和历史记录作出更为精准的判断。 | ① 资源消耗大:相比包过滤防火墙,状态检测防火墙在跟踪连接状态时需要消耗更多资源。② 处理速度慢:处理速度相对较慢,面对极高速度的网络流量时可能会成为瓶颈。 |
统一威胁管理 UTM | 将传统防火墙、入侵检测、反病毒、URL 过滤、应用识别和控制、邮件过滤等功能融合到一台防火墙上,实现全面的安全防护。 | ① 综合防护:UTM 集成了多种安全功能,提供从网络层到应用层的全面防护。② 简化管理:UTM 将多种安全功能集成到一台设备中,简化了网络安全管理,减少了部署和维护多个独立安全设备的复杂性。 | ① 安全性有限:尽然 UTM 提供了比包过滤等防火墙更深入的安全检查,但它的安全性仍然受到限制,例如,可能无法完全防御零日攻击或高级持续性威胁等。② 性能瓶颈:多个功能同时运行,可能会遇到性能瓶颈。 |
下一代防火墙 NGFW | NGFW 解决了 UTM 多个功能同时运行时性能下降的问题,通过深入分析网络流量中的用户、应用和内容,基于高性能并行处理引擎,为基于应用层一体化安全防护,全面应对应用层威胁。 | ① 深度检测:提供基于应用粒度的安全策略访问控制,实行更为精细化的上网行为管理。② 性能更高:一体化引擎处理,大大提升了设备处理性能。 | ① 管理复杂:无法基于意图进行智能管控,威胁处置人工程度高、花费时间长。② 未知威胁难预测:高级威胁日益增多,而且衍生出很多变种,NGFW 的静态规则库检测方式难以为继。 |
典型的企业网络安全拓扑图
如下图所示,不安全区即我们的外网区域,安全区就是我们的内网区域,还有DMZ区,在每个区域的边界上连接防火墙设备。通过防火墙设备,我们可以实现网络的区域隔离,不允许外网访问内网,也不允许内网访问外网,保证安全性。同时如果我们企业的业务需要暴露在外网中,比如公司官网,这时候就要用到DMZ区。外网和DMZ区可以相互访问,内网也可以访问DMZ区,但是我们可以在防火墙上设置不允许DMZ区访问内网,从而保证了内网的安全性。这样通过DMZ区,既保证了公司内网不暴露在外网中,也能时业务和外网正常交互。
防火墙与路由器、交换机的对比
路由器、交换机的本质是根据MAC地址表/路由表进行数据帧/数据包的转发/路由
防火墙的本质是在一个已经连通的网络中对传输的数据进行控制,以达到防治网络病毒攻击的目的
防火墙默认所有的流量都不让通过,如果想让某些流量通过,则需要进行配置,加入白名单;相反,路由器默认是所有流量都可以通过,如果不想让某些流量通过,则通过ACL进行控制。
那么防火墙控制流量访问是不是也用了ACL这种技术呢?不是的,ACL这种技术最大的弊端就是它都是双向访问的,如果我允许你访问为,那么我也能访问你,如果我拒绝你访问我,那么我也不能访问你,这就是ACL,没办法做到单通。防火墙对ACL技术进行了升级,可以限制流量单向访问。
另外,路由器只能对下四层进行流量控制,而防火墙可以做到对整个7层进行流量控制(例如防火墙上配置允许doc文件通过,docx文件不通过,这就是在第七层应用层进行控制)。
主机防火墙使用
目前 Linux 系统的防火墙类型主要有两种:分别是 iptables 和 firewalld
iptables-静态防火墙
早期的 Linux 系统中默认使用的是 iptables 防火墙,配置文件在 /etc/sysconfig/iptables
,主要工作在网络层
该防火墙使用链式规则,只可以过滤互联网的数据包,无法过滤从内网到内网的数据包
iptables只可以通过命令行进行配置
iptables默认是允许所有,需要通过拒绝去做限制
iptables在修改了规则之后必须得全部刷新才可以生效,还会丢失连接(无法守护进程)
尽管新型的 firewalld 防火墙管理服务已经被投入使用多年,但是大量的企业在生产环境中依然出于各种原因而继续使用 iptables。 iptables 在当前生产环境中还具有顽强的生命力,且各个防火墙管理工具的配置思路是一致的, 在掌握了 iptables 后再学习其他防火墙管理工具时,也有借鉴意义。
firewalld-动态防火墙
取代了之前的 iptables 防火墙,配置文件在 /usr/lib/firewalld
和 /etc/fiewalld
中,主要工作在网络层
新增区域概念,不仅可以过滤互联网的数据包,也可以过滤内网的数据包
firewalld不仅可以通过命令行进行配置,也可以通过图形化界面配置
firewalld默认是拒绝所有,需要通过允许去放行
firewalld可以动态修改单条规则,动态管理规则集(允许更新规则而不破环现有会话和连接,可以守护进程)
补充:
iptables 和 firewalld 不是真正的防火墙,是指用来定义防火墙规则功能的 “防火墙管理工具/程序”,将定义好的规则交由内核中的 netfilter 即网络过滤器来读取,从而真正实现防火墙功能。 即:真正的防火墙执行者是位于内核的 netfilter,只不过 firwalld 和 iptables 的使用方法以及效果等不同。
在配置防火墙时,不建议两种配置方法结合使用(可能会冲突,建议只使用其中的一种)
Iptables(Linux)
firewalld 只能做和 IP/Port 相关的限制,web相关的限制无法实现。
1. 核心概念
表(Tables),不同表负责不同功能:
filter(默认表):用于数据包过滤(允许/拒绝)
nat:网络地址转换(如端口转发、IP伪装)
mangle:修改数据包头部(如 TTL、QoS)
raw:绕过连接跟踪,用于高性能场景
链(Chains),链是规则的集合,不同链处理不同阶段的数据包:
INPUT:处理进入本机的数据包(如 SSH 请求)。
OUTPUT:处理从本机发出的数据包(如访问网页)。
FORWARD:处理经过本机转发的数据包(如路由器)。
PREROUTING(nat 表):修改目标地址(DNAT,端口转发)。
POSTROUTING(nat 表):修改源地址(SNAT,IP伪装)。
2. 基本命令格式
iptables [-t 表名] [命令选项] [链名] [规则条件] [-j 目标动作]
常用命令选项:
-A 在链末尾追加规则
-I 在链开头插入规则
-D 删除规则
-L 列出规则
-F 清空规则
-P 设置链的默认策略
-N 创建自定义链
-X 删除自定义链
3. 常用操作示例
1.查看规则
iptables -L -n -v # 查看 filter 表规则
iptables -t nat -L -nv # 查看 nat 表规则
2.清空规则
iptables -F # 清空 filter 表
iptables -t nat -F # 清空 nat 表
iptables -X # 删除自定义链
iptables -Z # 重置计数器
3.允许/拒绝流量
# 允许来自局域网的 SSH 连接
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT# 拒绝所有其他 INPUT 流量
iptables -A INPUT -j DROP
4.端口转发(NAT)
# 将外部 80 端口流量转发到内网 192.168.1.100:8080
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.1.100:8080
iptables -t nat -A POSTROUTING -j MASQUERADE # 自动SNAT(出口网卡IP伪装)
5.开放 Web 服务器端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
6.指定阻止访问多个端口服务
iptables -A INPUT -s 10.0.0.9 -p tcp --dport 22:80 -j DROP --- 匹配连续的端口号访问
iptables -A INPUT -s 10.0.0.9 -m multiport -p tcp --dport 22,24,25 -j DROP --- 匹配不连续的端口号访问
7.禁止访问80端口
iptables -A INPUT -p tcp --dport 80 -j DROP允许 192.168.19.1 访问 80 端口的数据包
iptables -I INPUT -p tcp -s 192.168.19.1 --dport 80 -j ACCEPT
↓
仅允许 192.168.19.1 访问80端口的数据包
8.放行整个19段
iptables -I INPUT -p tcp -s 192.168.19.1/24 --dport 80 -j ACCEPT
规则配置后未保存,导致iptables重启后失效
保存命令:
service iptables save
4. 安全配置模板
# 设置默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT# 允许已建立的连接
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT# 开放 SSH 端口(示例:端口 22)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT# 开放 HTTP/HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT# 允许 ICMP(Ping)
iptables -A INPUT -p icmp --icmp-type 8 -m limit --limit 1/s -j ACCEPT
Firewalld(Linux)
firewalld 只能做和 IP/Port 相关的限制,web相关的限制无法实现。
1. 基础操作
# 启动/停止服务
systemctl start firewalld
systemctl stop firewalld# 启用/禁用开机自启
systemctl enable firewalld
systemctl disable firewalld# 查看默认区域
firewall-cmd --get-default-zone# 查看当前活动规则
firewall-cmd --list-all
2. 常用规则配置
(1) 开放端口
# 开放TCP 80端口(HTTP)
firewall-cmd --permanent --add-port=80/tcp# 开放UDP 53端口(DNS)
firewall-cmd --permanent --add-port=53/udp# 重载配置生效
firewall-cmd --reload
(2) 允许服务
# 允许SSH服务(默认端口22)
firewall-cmd --permanent --add-service=ssh# 允许HTTP/HTTPS服务
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
(3) 限制IP访问
# 仅允许192.168.1.0/24网段访问SSH
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept'# 拒绝特定IP(如10.0.0.5)访问所有端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.5" reject'
(4) 端口转发
# 将外部80端口转发到内部服务器192.168.1.100:8080
firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.100
相关文章:
防火墙原理与应用总结
防火墙介绍: 防火墙(Firewall)是一种网络安全设备,其核心目标是通过分析数据包的源地址、端口、协议等内容,保护一个网络区域免受来自另一个网络区域的网络攻击和网络入侵行为,同时允许合法流量自由通行。…...
Graph Database Self-Managed Neo4j 知识图谱存储实践2:通过官方新手例子入门(未完成)
官方入门例子:neo4j-graph-examples/get-started: An introduction to graph databases and Neo4j for new users 官方例子仓库:https://github.com/neo4j-graph-examples 下载数据 git clone https://github.com/neo4j-graph-examples/get-started …...
GIT下载步骤
git官方链接: 添加链接描述...
C++中的vector和list的区别与适用场景
区别 特性vectorlist底层实现动态数组双向链表内存分配连续内存块非连续内存块随机访问支持,通过索引访问,时间复杂度O(1)不支持,需遍历,时间复杂度O(n)插入/删除末尾操作效率高,时间复杂度O(1)任意位置操作效率高&am…...
软件测试入门学习笔记
今天学习新知识,软件测试。 什么是软件测试? 使用人工和自动手段来运行或测试某个系统的过程,目的在于检验它是否满足规定的需求或弄清实际结果与预期结果之间的差别。 软件测试的目的? 1)为了发现程序࿰…...
2025年深度学习模型发展全景透视(基于前沿技术突破与开源生态演进的交叉分析)
2025年深度学习模型发展全景透视 (基于前沿技术突破与开源生态演进的交叉分析) 一、技术突破与能力边界拓展 智能水平跃升 2025年开源模型如Meta Llama-4、阿里Qwen2.5-VL参数规模突破1300亿,在常识推理能力测试中首次超越人类基准线7.2%谷歌…...
时间复杂度分析
复杂度分析的必要性: 当给我们一段代码时,我们是以什么准则来判断代码效率的高低呢?每一段代码都会消耗一段时间,或占据一段数据空间,那么自然是在实现相同功能的情况下,代码所耗时间最少,所占…...
BGE-m3 和 BCE-Embedding 模型对比分析
以下是对 BGE-m3 和 BCE-Embedding 模型在 embedding 领域的多维度对比分析,基于公开的技术文档和实验数据: 1. 基础信息对比 维度BGE-m3 (智源研究院)BCE-Embedding (网易)发布时间2024 年 1 月2023 年 9 月模型架构Transformer-basedTransformer-base…...
题目 3320: 蓝桥杯2025年第十六届省赛真题-产值调整
题目 3320: 蓝桥杯2025年第十六届省赛真题-产值调整 时间限制: 2s 内存限制: 192MB 提交: 549 解决: 122 题目描述 偏远的小镇上,三兄弟共同经营着一家小型矿业公司 “兄弟矿业”。公司旗下有三座矿山:金矿、银矿和铜矿,它们的初始产值分别用…...
计算机组成原理第二章 数据的表示和运算——2.1数制与编码
计算机组成原理第二章 数据的表示和运算——数制与编码 一、基本概念与核心知识点 1.1 数制系统基础 1.1.1 进位计数制 定义:以固定基数(如2、8、10、16)表示数值的系统核心要素: 基数(R):允…...
基于归纳共形预测的大型视觉-语言模型中预测集的**数据驱动校准**
摘要 本研究通过分离共形预测(SCP)框架,解决了大型视觉语言模型(LVLMs)在视觉问答(VQA)任务中幻觉缓解的关键挑战。虽然LVLMs在多模态推理方面表现出色,但它们的输出常常表现出具有…...
Golang | 自行实现并发安全的Map
核心思路,读写map之前加锁!哈希思路,大map化分为很多个小map...
【Python数据库编程实战】从SQL到ORM的完整指南
目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心代码实现案例1:SQLite基础操作案例2:MySQL连接池案例3:SQLAlchemy ORM …...
深入剖析扣子智能体的工作流与实战案例
前面我们已经初步带大家体验过扣子工作流,工作流程是 Coze 最为强大的功能之一,它如同扣子中蕴含的奇妙魔法工具,赋予我们的机器人处理极其复杂问题逻辑的能力。 这篇文章会带你更加深入地去理解并运用工作流解决实际问题 目录 一、工作流…...
【计算机网络】IP地址
IPv4 五类地址 1.0.0.0 ~ 126.255.255.255A类子网8位,主机24位128.0.0.0 ~ 191.255.255.255B类子网16位,主机16位192.0.0.0 ~ 223.255.255.255C类子网24位,主机8位224.0.0.0 ~ 239.255.255.255D类不分网络地址和主机地址,作为组播…...
基于CATIA参数化管道建模的自动化插件开发实践——NX建模之管道命令的参考与移植
引言 在机械设计领域,CATIA作为行业领先的CAD软件,其强大的参数化建模能力备受青睐。本文介绍如何利用Python的PySide6框架与CATIA二次开发技术,开发一款智能管状体生成工具。该工具借鉴了同类工业软件NX的建模的管道命令,通过Py…...
运维之SSD硬盘(SSD hard Drive for Operation and Maintenance)
背景 SSD的产生背景是计算技术发展和市场需求驱动的结果。早期计算机使用磁芯存储器,后来被半导体存储器取代,提高了速度和可靠性。随着电子设备小型化,对轻便、低功耗存储器的需求增长,SSD因无机械部件、速度快、耗电少而受到关…...
基于javaweb的SSM+Maven红酒朔源管理系统设计与实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...
HTML 地理定位(Geolocation)教程
HTML 地理定位(Geolocation)教程 简介 HTML5 的 Geolocation API 允许网页应用获取用户的地理位置信息。这个功能可用于提供基于位置的服务,如导航、本地搜索、天气预报等。本教程将详细介绍如何在网页中实现地理定位功能。 工作原理 浏览器可以通过多种方式确定…...
RHEL与CentOS:从同源到分流的开源操作系统演进
RHEL与CentOS:从同源到分流的开源操作系统演进 一、核心关系:源代码的重构与社区化 RHEL(Red Hat Enterprise Linux)与CentOS(Community ENTerprise Operating System)的关系可以概括为“同源异构”。RHE…...
架构师面试(三十六):广播消息
题目 在像 IM、短视频、游戏等实时在线类的业务系统中,一般会有【广播消息】业务,这类业务具有瞬时高流量的特点。 在对【广播消息】业务实现时通常需要同时写 “系统消息库” 和更新用户的 “联系人库” 的操作,用户的联系人表中会有未读数…...
Spine 动画教程:皮肤制作
一、前言 搁了很久的抖音直播小玩法开发,最近又让我想起来了。由于是初次尝试,所以我将开发费用的预算降到为零。不但不买服务器采用 UnitySDK 的指令直推,而且游戏的资产也用 AI 生成,主打省时又省钱。 但是图片有了࿰…...
Rust 学习笔记:函数和控制流
Rust 学习笔记:函数和控制流 Rust 学习笔记:函数和控制流函数(Function)语句和表达式带返回值的函数注释控制流if 表达式使用 else if 处理多个条件在 let 语句中使用 if循环loop从循环中返回值循环标签消除多个循环之间的歧义带 …...
探秘LLM推理模型:hidden states中藏着的self verification的“钥匙”
推理模型在数学和逻辑推理等任务中表现出色,但常出现过度推理的情况。本文研究发现,推理模型的隐藏状态编码了答案正确性信息,利用这一信息可提升推理效率。想知道具体如何实现吗?快来一起来了解吧! 论文标题 Reasoni…...
《Learning Langchain》阅读笔记8-RAG(4)在vector store中存储embbdings
什么是 vector store? 与专门用于存储结构化数据(如 JSON 文档或符合关系型数据库模式的数据)的传统数据库不同,vector stores处理的是非结构化数据,包括文本和图像。像传统数据库一样,vector stores也能执…...
【C/C++】深入理解指针(五)
文章目录 深入理解指针(五)1.回调函数是什么?2.qsort使用举例2.1 使用qsort函数排序整型数据强调 2.2 使用qsort排序结构数据 3.qsort函数的模拟实现 深入理解指针(五) 1.回调函数是什么? 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指…...
【vue】【element-plus】 el-date-picker使用cell-class-name进行标记,type=year不生效解决方法
typedete,自定义cell-class-name打标记效果如下: 相关代码: <el-date-pickerv-model"date":clearable"false":editable"false":cell-class-name"cellClassName"type"date"format&quo…...
RocketMQ 主题与队列的协同作用解析(既然队列存储在不同的集群中,那要主题有什么用呢?)---管理命令、配置安装
学习之前呢需要会使用linux的基础命令 一.RocketMQ 主题与队列的协同作用解析 在 RocketMQ 中,主题(Topic)与队列(Queue)的协同设计实现了消息系统的逻辑抽象与物理存储分离。虽然队列实际存储在不同集群的 B…...
解决视频处理中的 HEVC 解码错误:Could not find ref with POC xxx【已解决】
问题描述 今天在使用 Python 处理视频时遇到了以下错误: [hevc 0x7f8a1d02b7c0] Could not find ref with POC 33之前没接触过视频处理,查了一下,这个错误通常发生在处理 HEVC(H.265)编码 的视频时,原因…...
NEGATIVE LABEL GUIDED OOD DETECTION WITH PRETRAINED VISION-LANGUAGE MODELS
1. 介绍: 这篇论文也是基于CLIP通过后处理的方法实现的OOD的检测,但是设计点在于,之前的方法是使用的ID的类别,这篇工作是通过添加一些在语义上非常不同于ID的类别的外分布类来做的OOD检测。 CLIP做OOD检测的这个系列里面我看的以及记录的第一篇就是MCM的方法,这也是确实是…...
Appium自动化 -- 环境安装
1.安装Appium-Python-Clientpip install Appium-Python-Client 2.AndroidSdk安装和环境配置 AndroidSdk下载地址:https://www.androiddevtools.cn/# 下载后解压 SDK Manager.exe 安装sdk tools、sdk plaform-tools、sdk build-tools AndroidSDK 环境变量配…...
Zeppelin在spark环境导出dataframe
1.Zeppelin无法直接访问本地路径 如果zeppelin无法直接访问本地路径,可先将dataframe写到s3,在通过读取s3路径下载文件 %pyspark # 示例:用 PySpark 处理数据 df spark.createDataFrame([(1, "Alice"), (2, "Bob")], …...
Vue3 上传后的文件智能预览(实战体会)
目录 前言1. Demo12. Demo2 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 爬虫神器,无代码爬取,就来:bright.cn 此处的基本知识涉及较少,主要以Demo的形式供大…...
面试常问问题:Java基础篇
一、面向对象编程(OOP) 四大特性 封装、继承、多态、抽象的具体实现与区别? 抽象类与接口的区别?何时选择抽象类或接口? 重写(Override)和重载(Overload)的规则与区别&…...
测试流程?
需求分析 组织需求评审会议,邀请开发团队和测试团队参与。产品经理详细讲解需求,确保开发和测试人员对需求理解一致。 测试计划 分配测试人员:根据项目需求和测试人员的技能,分配测试任务和范围。确定测试策略:包括测…...
Python命名参数的使用
Python脚本传递参数的方式有: 使用sys.argv按照先后的顺序传入对应的参数使用argparse包加载和解析传递的命名参数 下面代码是第2中使用的实例: parser argparse.ArgumentParser(description参数使用说明) parser.add_argument(--time, -t, typestr,…...
赛灵思 XCKU115-2FLVB2104I Xilinx Kintex UltraScale FPGA
XCKU115-2FLVB2104I 是 AMD Xilinx Kintex UltraScale FPGA,基于 20 nm 先进工艺,提供高达 1 451 100 个逻辑单元(Logic Cells),77 721 600 bit 的片上 RAM 资源,以及 5 520 个 DSP 切片(DSP48E…...
使用 Python 项目管理工具 uv 快速创建 MCP 服务(Cherry Studio、Trae 添加 MCP 服务)
文章目录 下载Traeuv 工具教程参考我的这篇文章创建 uv 项目main.pyCherry Studio 添加 MCP 服务DeepSeek API配置 DeepSeek API调用 MCP 服务 Trae 添加 MCP 服务添加 MCP创建智能体 使用智能体调用 MCP 创建 demo 表查询 demo 表结构信息demo 表插入 2 条测试数据查询 demo 表…...
Docker容器持久化
引言 Docker 容器作为一种轻量级、可移植的虚拟化技术,广泛应用于开发、测试和生产环境中。然而,容器天生是短暂的,意味着它们在生命周期结束后会被销毁,而其中的数据也会随之丢失。为了确保容器中的数据能够持久化,我…...
【信息系统项目管理师】高分论文:论成本管理与采购管理(信用管理系统)
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文1、规划成本管理2、成本估算3、成本预算4、成本控制论文 2019年1月,我作为项目经理参与了 XX基金管理有限公司信用管理系统项目。该项目成 本1000万,建设期为1年。通过该项目,XX基金管理有限公司在信用…...
WINDOWS 下Maven 安装及配置教程
Maven 安装及配置教程(Windows)【安装】_windows 安装maven-CSDN博客...
Pycharm(十六)面向对象进阶
一、继承 概述: 实际开发中,我们发现很多类中的步分内容是相似的,或者相同的,每次写很麻烦,针对这种情况, 我们可以把这些相似(相同的)部分抽取出来,单独地放到1个类中&…...
实时数据驱动未来:谷云科技CDC实时数据集成平台新版本发布
数据流动的“零延迟时代”已来 在数字化转型的浪潮中,数据已成为企业核心资产,而数据的实时流动能力正成为业务竞争力的关键。谷云科技深耕数据集成领域多年,基于对行业痛点的深刻洞察,正式推出CDC实时数据集成平台****全新版本。…...
来自 3D 世界的 JPEG。什么是 glTF?什么是 glb?
定义和简史 GLTF(GL 传输格式)是一种用于存储 3D 场景和模型的文件格式,它非常易于理解(结构是用 JSON 标准编写的),可扩展并易于与现代 Web 技术交互。这种格式可以很好地压缩 3D 场景,并最大限…...
同一页面下动态加载内容的两种方式:AJAX与iframe
iframe iframe能够嵌入另一个 HTML 文档到当前页面。 iframe可以加载任何类型的内容,包括完整的HTML页面。 AJAX 使用 JavaScript 发起 HTTP 请求,通常通过 XMLHttpRequest 或现代浏览器中的 fetch API。 可以异步更新页面内容,而不必刷…...
蓝桥杯 6. 冰雹数
冰雹数 原题目链接 题目描述 任意给定一个正整数 N: 如果是偶数,执行:N / 2;如果是奇数,执行:N 3 1。 生成的新数字继续执行同样的动作,循环往复。 观察发现,这个数字会一会…...
常见网络安全攻击类型深度剖析(三):DDoS攻击——分类、攻击机制及企业级防御策略
常见网络安全攻击类型深度剖析(三):DDoS攻击——分类、攻击机制及企业级防御策略 在网络安全威胁中,分布式拒绝服务攻击(Distributed Denial of Service, DDoS)堪称“网络流量炸弹”。攻击者通过控制成百上…...
AI与思维模型【76】——SWOT思维模型
一、定义 SWOT思维模型是一种用于分析事物内部和外部因素的战略规划工具。其中,S代表优势(Strengths),是指事物自身所具备的独特能力、资源或特点,这些因素有助于其在竞争中取得优势;W代表劣势(…...
安全测试之SQL注入深度解析
引言 在当今数字化的浪潮中,Web 应用程序如同璀璨星辰般闪耀,承载着海量的信息交互与数据处理。然而,网络安全的阴影也如影随形,SQL 注入攻击便是其中极具威胁的一把利刃。它就像一个隐藏在暗处的黑客,一旦找到应用程序的漏洞,便能肆意篡改、窃取甚至破坏数据库中的重要…...
<论文>(谷歌)用于时序链接预测的迁移学习
一、摘要 本文介绍谷歌在2025年4月牵头发表的新论文《Transfer Learning for Temporal Link Prediction》。论文主要探讨了动态图中的时间链路预测(TLP)任务,以及如何让模型在不同图之间进行迁移学习。 译文: 基于图的链接预测应用…...