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

linux之防火墙工具

netfilter

Linux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在linux内核中。

Netfilter在内核中选取五个位置放了五个hook(勾子) function(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING),而这五个hook function向用户开放,用户可以通过一个命令工具(iptables)向其写入规则。

由信息过滤表(table)组成,包含控制IP包处理的规则集(rules),规则被分组放在链(chain)上。

img

  • 流入本机:PREROUTING --> INPUT–>用户空间进程

  • 流出本机:用户空间进程 -->OUTPUT–> POSTROUTING

  • 转发:PREROUTING --> FORWARD --> POSTROUTING

iptables介绍

-netfilter/iptables关系:

netfilter:

属于“内核态”又称内核空间(kernel space)的防火墙功能体系。linux 好多东西都是内核态 用户态,那我们运维人员关注的是用户态, 内核我们关注不是很多,内核基本是我们开发人员关心的事情是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables :

属于“用户态”(User Space, 又称为用户空间)的防火墙管理体系。是一种用来管理Linux防火墙的命令程序,它使插入、修改和删除数据包过滤表中的规则变得容易,通常位于/sbin/iptables目录下。 netfilter/iptables后期简称为iptables。iptables是基于内核的防火墙,其中内置了raw、mangle、 nat和filter四个规则表。表中所有规则配置后,立即生效,不需要重启服务。

iptables由四个表table和五个链chain以及一些规则组成。

iptables表、链

img

  • filter:过滤规则表,根据预定义的规则过滤符合条件的数据包,默认表

  • nat:network address translation 地址转换规则表

  • mangle:修改数据标记位规则表

  • raw:关闭启用的连接跟踪机制,加快封包穿越防火墙速度

优先级由高到低的顺序为:
security -->raw-->mangle-->nat-->filter
raw:主要用来决定是否对数据包进行状态跟踪 包含两个规则链,OUTPUT、PREROUTING
mangle : 修改数据包内容,用来做流量整形的,给数据包设置标记。包含五个规则链,INPUT、 OUTPUT、 FORWARD、 PREROUTING、 POSTROUTING
nat:负责网络地址转换,用来修改数据包中的源、目标IP地址或端口。包含三个规则链,OUTPUT、PREROUTING、POSTROUTING。
filter:负责过滤数据包,确定是否放行该数据包(过滤)。包含三个链,即PREROUTING、POSTROUTING、OUTPUT

  • INPUT: 处理入站数据包,匹配目标IP为本机的数据包。

  • OUTPUT: 处理出站数据包,一般不在此链上做配置。

  • FORWARD: 处理转发数据包,匹配流经本机的数据包。

  • PREROUTING链: 在进行路由选择前处理数据包,用来修改目的地址,用来做DNAT。相当于把内网服务器的IP和端口映射到路由器的外网IP和端口上。

  • POSTROUTING链: 在进行路由选择后处理数据包,用来修改源地址,用来做SNAT。相当于内网通过路由器NAT转换功能实现内网主机通过一个公网IP地址上网。

iptables配置

CentOS7默认使用firewalld防火墙,需先关闭firewalld防火墙。

基本语法

iptables  [-t 规则表]  管理选项  [规则链]  [匹配条件]  [-j 处理动作]
​
iptables -t filter -A INPUT -s 192.168.0.1 -j DROP
iptablestablecommandchainparametertarget
-t filter
  • -A 

  • -I 

  • -F 

  • -P 

  • -D 

  • -R 

  • -L

  • -n 

  • -v 

  • --line-number 

  • -N 

  • -X 

  • -Z 

  • -S 

  • -E 

INPUT

FORWARD

OUTPUT

PREROUTING

POETROUTING

-p

-s

-d

-i

-o

--sport

--dport

-j ACCEPT

-j DROP

-j REJECT

-j LOG

管理选项部分

  • -A 向规则链中添加一条规则,末尾追加

  • -I 在规则链的指定位置插入一条规则,未指定序号默认作为第一条

  • -F 清除链中所有规则

  • -P 设置规则链的默认策略

  • -D 从规则链中删除一条规则

  • -R 替换规则链中的一条规则

  • -L 列出规则链中的所有规则

  • -n 所有字段以数字形式显示

  • -v 显示详细信息

  • --line-number 查看规则编号

  • -N 创建一个新的自定义规则链

  • -X 删除一个自定义规则链

  • -Z 清空规则链中所有规则的数据包和字节数统计

  • -S 看链的所有规则或者某个链的规则/某个具体规则后面跟编号

  • -E 重新命名规则链

#允许来自192.168.1.101的数据包进入INPUT链
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
​
#删除允许来自192.168.1.101的数据包进入INPUT链的规则
iptables -D INPUT -s 192.168.1.0/24 -j ACCEPT
​
#在INPUT链的第2条规则之前插入一条允许来自192.168.1.101的数据包进入的规则
iptables -I INPUT 2 -s 192.168.1.0/24 -j ACCEPT
​
#将INPUT链中的第2条规则替换为拒绝来自192.168.1.101的数据包的规则
iptables -R INPUT 2 -s 192.168.1.0/24 -j DROP
#列出INPUT链中的所有规则
iptables -L INPUT
​
#清空INPUT链中的所有规则
iptables -F INPUT
​
#清空INPUT链的数据包和字节数统计
iptables -Z INPUT
​
#将INPUT链的默认策略设置为DROP,即拒绝所有数据包
iptables -P INPUT DROP
​
#将FORWARD链重命名为NFORWARD
iptables -E FORWARD NFORWARD
#创建一个名为MYCHAIN的新规则链
iptables -N MYCHAIN
#删除名为MYCHAIN的自定义规则链
iptables -X MYCHAIN

匹配条件部分

  • -p 指定要匹配的 协议类型,例如TCP、UDP、ICMP等

  • -s 指定 源IP地址或地址范围

  • -d 指定 目标IP地址或地址范围

  • -i <网络接口> 指定 输入网络接口

  • -o<网络接口> 指定 输出网络接口

  • -m 指定 扩展模块,用于进一步定义匹配条件

  • --icmp-type 指定ICMP类型

  • --sport 指定源端口号或端口范围

  • -- dport 指定目标端口号或端口范围

iptables -I INPUT -p icmp -j DROP
iptables -A FORWARD ! -p icmp -j ACCEPT           //感叹号”!”表示取反

处理动作部分

  • DROP 直接 丢弃数据包,不给出任何回应信息

  • REJECT 拒绝数据包通过,会给数据发送端一个响应信息

  • ACCEPT 允许数据包通过(默认)

  • SNAT 修改数据包的源地址

  • DNAT 修改数据包的目的地址

  • LOG 在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则

  • MASQUERADE 伪装成一个非固定公网IP地址

查看规则

iptables -vnL #查看所有规则表的规则
​
-v 详细信息
-n 数字形式显示
-L 查看规则列表

img

iptable -vnL -t [规则表]  #查看规则表的规则链,默认filter表

img

扩展匹配条件(隐含扩展)

man iptables-extensions
查看扩展帮助

iptables 在使用-p选项指明了特定的协议时,无需再用-m选项指明扩展模块的扩展机制,不需要手动加载扩展模块

要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类型等条件。

端口匹配

--sport--dport 必须配合-p <协议类型>使用

--sport 源端口 
--dport 目的端口

#可以是个别端口、端口范围,只能用于匹配连续的端口,以源端口匹配为例:

格式含义
–sport 1000匹配源端口是1000的数据包
–sport 1000:3000匹配源端口是1000-3000的数据包
–sport 1000:匹配源端口是1000及以上的数据包
–sport :3000匹配源端口是3000及以下的数据包
[root@localhost ~]#iptables -A INPUT -p tcp  --sport 10000:30000 -j REJECT 
#10000到30000 全部被拒

TCP标志匹配

 TCP标记匹配: --tcp-flags TCP标记:SYN,RST,ACK,SYN
TCP标志功能
SYN(同步)用于建立连接。
ACK(确认)用于确认收到的数据。
FIN(结束)用于关闭连接。
RST(复位)用于重置连接。
URG(紧急)用于指示数据中有紧急数据部分。
PSH(推送)用于强制接收方立即处理数据。
#iptables允许通过来自ens33接口的,具有FIN、RST、ACK和SYN标志的TCP包
#丢弃SYN请求包,放行其他包
[root@localhost ~]#iptables -I INPUT -i ens33 -p tcp --tcp-flags FIN,RST,ACK SYN -j ACCEPT

ICMP类型匹配

代码含义
8“Echo- Request” 表示请求
0“Echo- Reply” 表示回复
3"Dest ination-Unreachable"表示目标不可达
[root@localhost ~]#iptables -A INPUT -p icmp --icmp-type 8 -j DROP         
#禁止其它主机ping本机
​
[root@localhost ~]#iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT 
#允许本机ping其它主机
​
[root@localhost ~]#iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT      
#当本机ping不通其它主机时提示目标不可达

显示扩展模块

显示扩展必须加 -m选项

multiport扩展 多端口

可用于匹配非连续的端口,以离散的方式匹配,最多支持15个端口。

iptables -A INPUT  -s 192.168.2.101 -p tcp -m multiport --dports 22,80,3306 -j REJECT 
#拒绝来自源IP地址为192.168.2.101的TCP流量,并且目标端口号为22、80和3306

iprange扩展 IP范围

iprange扩展功能模块用于在防火墙规则中匹配特定的IP地址范围。

基本格式
-m iprange --src-range IP范围
iptables -A INPUT  -m iprange --src-range 192.168.91.101-192.168.91.103 -j REJECT 
#拒绝来自源IP地址范围为192.168.91.101到192.168.91.103的所有流量,并且应用于INPUT链(也就是进入服务器的流量)
iptables -A FORWARD -p udp -m iprange --src-range 192.168.80.100-192.168.80.200 -j DROP
#禁止转发源地址位于192.168.80.100-192.168.80.200的udp数据包

mac扩展 MAC地址(一般不用)

mac模块用于匹配和处理MAC地址相关的防火墙规则,可以限制特定MAC地址的访问或过滤特定MAC地址的流量。(只有源MAC)

基本格式
-m mac --mac-source XX:XX:XX:XX:XX:XX  #根据源MAC地址匹配

string扩展 字符串

string模块用于在数据包的内容中搜索指定的字符串,并根据匹配结果执行相应的操作。

基本格式
-m string --string 字符串 --algo bm/kmp 
#bm kmp为字符串检测算法
iptables -A INPUT -p tcp --dport 80 -m string --string "example" --algo bm -j DROP
#对于目标端口为80的TCP流量,在数据包的内容中搜索字符串"example"
#如果匹配成功,则使用DROP动作丢弃该数据包

time模块

time模块用于根据时间条件匹配数据包,可以限制特定时间段内进出防火墙的数据包。

基本格式
-m time --匹配选项 匹配条件
匹配选项含义
- -timestart指定开始时间
- -timestop指定结束时间
- -datestart指定开始日期
- -datestop指定结束日期
- -daysMon-Fri
iptables -A INPUT -m time --timestart 08:00 --timestop 17:00 --datestart 2024-05-10 --datestop 2024-05-21 --days Mon-Fri -j ACCEPT
#在2024年5月10日至2024年5月21日期间的每个工作日的08:00至17:00之间,接受(ACCEPT)输入的数据
#如果不在指定的日期和时间范围内或不是工作日,则不匹配该规则

connlimit扩展 连接数量

connlimit扩展模块用于限制连接数量,根据活动连接数量的条件来控制数据包的流动。

基本格式
-m connlimit --connlimit-匹配选项 匹配条件
匹配选项功能
above n指定连接数量超过n个时触发匹配
upto n指定连接数量小于n个时触发匹配
equal n指定连接数量等于n个时触发匹配
mask指定连接数量的掩码来匹配连接数量
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 -j REJECT
#对于TCP协议、目标端口为80的数据包,如果活动连接的数量超过10个,则拒绝该连接
​
iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 5 --connlimit-mask 16 -j REJECT
#对于TCP协议、目标端口为22(SSH)的数据包
#如果同一子网的连接数量超过5个,拒绝连接

state 连接状态(重要)

基本格式--state state 连接状态
常见连接状态含义
NEW与任何连接无关的,还没开始连接
ESTABLISHED响应请求或者已建立连接的,连接态
RELATED与已有连接有相关性的(如FTP主被动模式的数据连接),衍生态,一般与ESTABLISHED 配合使用
INVALID不能被识别属于哪个连接或没有任何状态
UNTRACKED未进行追踪的连接,如:raw表中关闭追踪
iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT
#对于输入的数据包,如果连接状态是NEW(新建连接)或ESTABLISHED(已建立连接),允许该数据包通过

相关文章:

linux之防火墙工具

netfilter Linux防火墙是由Netfilter组件提供的&#xff0c;Netfilter工作在内核空间&#xff0c;集成在linux内核中。 Netfilter在内核中选取五个位置放了五个hook(勾子) function(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING)&#xff0c;而这五个hook function向用户…...

【Python】—— 高阶函数

目录 &#xff08;一&#xff09;体验高阶函数 &#xff08;二&#xff09;内置高阶函数 2.1 map(&#xff09; 2.2 reduce() 2.3 filter() Python中的高阶函数是指那些接受函数作为参数&#xff0c;或者返回函数作为结果的函数。这种特性让Python的函数编程能力非常强大&…...

逻辑分析仪 - 采样率/采样深度

采样深度&#xff08;Sampling Depth&#xff09; 采样深度指的是逻辑分析仪在一次捕获过程中可以记录的最大样本数量。简单来说&#xff0c;采样深度越大&#xff0c;逻辑分析仪可以记录的数据量就越多。这对于分析长时间的信号变化或复杂的信号序列非常重要。 采样率&#…...

【Maven打包将resources/lib/下的jar也打包进jar包中】

Maven打包将resources/lib/下的jar也打包进jar包中 &#xff01;&#xff01;&#xff01;少走弯路 第一步 resources/lib/下引入jar ftp4j-1.7.2.jar替换为自己jar包的名称 <dependency><groupId>it.sauronsoftware.ftp4j</groupId><artifactId>ft…...

基于Java的地震震中附近城市分析实战

目录 前言 一、空间数据说明 1、空间查询 二、Java后台开发 1、模型层设计与实现 2、控制层设计与实现 三、Leaflet地图开发 1、地震震中位置展示 2、附近城市展示 3、成果展示 总结 前言 随着全球气候变化和地壳活动的不断演变&#xff0c;地震作为一种自然灾害&…...

【C语言】指针(三)

目录 一、字符指针 1.1 ❥ 使用场景 1.2 ❥ 有关字符串笔试题 二、数组指针 2.1 ❥ 数组指针变量 2.2 ❥ 数组指针类型 2.3 ❥ 数组指针的初始化 三、数组指针的使用 3.1 ❥ 二维数组和数组名的理解 3.2 ❥ 二维数组传参 四、函数指针 4.1 ❥ 函数的地址 4.2 ❥ 函数…...

【Linux】从零开始认识进程间通信 —— 管道

送给大家一句话&#xff1a; 人要成长&#xff0c;必有原因&#xff0c;背后的努力与积累一定数倍于普通人。所以&#xff0c;关键还在于自己。 – 杨绛 从零开始认识进程间通信 1 为什么要进程间通信2 进程如何通信3 进程通信的常见方式4 管道4.1 什么是管道4.2 管道通信的系…...

Top3专业课150满分,怎么考的?

这个系列会邀请上岸学长学姐进行经验分享~ 今天经验分享的同学是小马哥上海交大819的全程班学员&#xff0c;专业课150分满分&#xff0c;这位同学也是819期末考试的第一名&#xff0c;非常厉害&#xff01;大家吸吸欧气&#xff01; 初试成绩单 前言 先介绍下自己&#xff0…...

Windows Presentation Foundation(WPF)要点总结

Windows Presentation Foundation&#xff08;WPF&#xff09;是微软推出的一种用于构建Windows桌面应用程序的框架。自从WPF在.NET Framework 3.0中引入以来&#xff0c;它以其强大的功能和灵活性&#xff0c;逐渐成为开发人员构建现代、富用户界面应用程序的首选。本文将概述…...

【研发日记】嵌入式处理器技能解锁(一)——多任务异步执行调度的三种方法

文章目录 前言 Timer中断调度 Event中断调度 StateFlow调度 分析和应用 总结 参考资料 前言 近期在一些嵌入式系统开发项目中&#xff0c;在使用嵌入式处理器时&#xff0c;遇到了挺多费时费力的事情。所以利用晚上和周末时间&#xff0c;在这些方面深入研究了一下&…...

揭秘Python的魔法:装饰器的超能力大揭秘 ‍♂️✨

文章目录 Python进阶之装饰器详解1. 引言装饰器的概念与意义装饰器在Python编程中的作用 2. 背景介绍2.1 函数作为对象2.2 高阶函数 3. 装饰器基础3.1 理解装饰器3.2 装饰器的工作原理 4. 带参数的装饰器4.1 为什么需要带参数4.2 实现带参数的装饰器使用函数包裹装饰器使用类实…...

怎么一键消除路人?教你三个消除方法

怎么一键消除路人&#xff1f;在数字时代&#xff0c;摄影已成为我们记录生活、表达情感的重要方式。然而&#xff0c;完美的照片背后往往隐藏着一些不那么完美的元素——比如那些不经意间闯入镜头的路人。他们或许只是匆匆过客&#xff0c;但却足以破坏你精心构图的美好瞬间。…...

Android Settings系统属性读写

Settings系统属性存储均为xml&#xff0c;分三种&#xff1a; 1.global&#xff1a;所有的偏好设置对系统的所有用户公开&#xff0c;第三方APP有读没有写的权限&#xff1b; 源码地址&#xff1a;frameworks/base/core/java/android/provider/Settings.java 对应xml路径&…...

2024年,企业的人才管理怎么做?这5点是关键!

当今时代&#xff0c;各行各业都面临着激烈的竞争。这些竞争归根结底都是人才的竞争。企业若想在竞争中掌握主动权&#xff0c;实现基业长青&#xff0c;就必须努力留住人才&#xff0c;并充分发挥他们的积极性、主动性和创造性。因此&#xff0c;做好人才管理是企业实现长期可…...

数据库DDL语句

数据库DDL语句&#xff1a; 查询所有数据库&#xff1a; show databases;查询当前数据库的名称 select database();创建数据库 create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则]注意&#xff1a;排序规则指定后&#xff0c;它会影响…...

《艺术大观》知网艺术刊:可加急, 出刊上网快

《艺术大观》 《艺术大观》征文通知 《艺术大观》期刊诚邀学者、艺术家和文化工作者积极投稿&#xff0c;共同探索艺术领域的前沿问题&#xff0c;促进学术交流和艺术创作的发展。我们欢迎各类艺术形式的研究与评论&#xff0c;包括但不限于绘画、雕塑、音乐、舞蹈、戏剧、电…...

如何在go语言中调用c语言代码

1.安装c语言编译器 要使用cgo&#xff0c;需要安装c语言编译器 gcc 2.检查CGO_ENABLED时候开启 使用以下命令查看&#xff1a; go env CGO_ENABLED 如果go env CGO_ENABLED被禁用(为0),需要将其设置为开启(为1) 3.编写c语言程序&#xff0c;并用go语言调用c语言程序 1&#xff…...

Monodle centerNet3D 瑞芯微RKNN、地平线Horizon芯片部署、TensorRT部署

一直想做一点3D目标检测&#xff0c;先来一篇单目3D目标检测Monodle&#xff08;基于centernet的&#xff09;&#xff0c;训练代码参考官方【代码】&#xff0c;这里只讲讲如何部署。 模型和完整仿真测试代码&#xff0c;放在github上参考链接【模型和完整代码】。 1 模型训练…...

Android Studio 使用MQTT协议开发应用时怎样关闭MQTT连接

Android Studio 使用MQTT协议开发应用时怎样关闭MQTT连接 Android Studio 使用MQTT协议开发应用时关闭MQTT连接 在使用mqtt开发的时候&#xff0c;有时候需要通过 返回 按钮关闭界面或者Activity时&#xff0c;关闭当前页面使用的mqtt连接&#xff0c;这里有两种方式彻底销毁…...

Sping源码(八)—registerBeanPostProcessors

序言 之前我们用大量的篇幅介绍过invokeBeanFactoryPostProcessors()方法的执行流程。 而invokeBeanFactoryPostProcessors的主要逻辑就是遍历执行实现了BeanDefinitionRegistryPostProcesso类(主要是针对BeanDefinition的操作)和BeanFactoryPostProcessor(主要针对BeanFacrot…...

分布式锁实战:Redisson vs. Redis 原生指令的性能对比

分布式锁实战&#xff1a;Redisson vs. Redis 原生指令的性能对比 引言 在DIY主题模板系统中&#xff0c;用户可自定义聊天室的背景、图标、动画等元素。当多个运营人员或用户同时修改同一模板时&#xff0c;若没有锁机制&#xff0c;可能出现“甲修改了背景色&#xff0c;乙…...

IDEA集成JRebel插件,实现实时热部署

系列文章目录 文章目录 系列文章目录一、JRebel是什么&#xff1f;1.1、对比传统开发流程1.2、JRebel特性以及优势 二、IDEA集成JRebel三、IDEA以JRebel运行报错处理四、IDEA以JRebel运行演示实时热部署 一、JRebel是什么&#xff1f; JRebel 是一款针对 Java 开发的热部署工具…...

Design Theory and Method of Complex Products: A Review

abstract 摘要 Design is a high-level and complex thinking activity of human beings, using existing knowledge and technology to solve problems and create new things. With the rise and development of intelligent manufacturing, design has increasingly reflec…...

FreeCAD:开源世界的三维建模利器

FreeCAD 开发模式 FreeCAD的开发采用多语言协作模式&#xff0c;其核心框架与高性能模块主要使用C构建&#xff0c;而用户界面与扩展功能则通过Python脚本实现灵活定制。具体来说&#xff1a; C核心层&#xff1a;作为基础架构&#xff0c;C负责实现与Open CASCADE Technology…...

bat批量去掉本文件夹中的文件扩展名

本文本夹内 批量去掉本文件夹中的文件扩展名 假如你有一些文件&#xff0c;你想去掉他们的扩展名 有没有方便的办法呢 今天我们就分享一种办法。 下面&#xff0c;就来看看吧。 首先我们新建一个记事本&#xff0c;把名字改为&#xff0c;批量去掉本文件夹中的文件扩展名.txt 然…...

springMVC-11 中文乱码处理

前言 本文介绍了springMVC中文乱码的解决方案&#xff0c;同时也贴出了本人遇到过的其他乱码情况&#xff0c;可以根据自身情况选择合适的解决方案。 其他-jdbc、前端、后端、jsp乱码的解决 Tomcat导致的乱码解决 自定义中文乱码过滤器 老方法&#xff0c;通过javaW…...

onSaveInstanceState() 和 ViewModel 在数据保存能力差异

一、设计目标差异 ​​维度​​onSaveInstanceState()ViewModel​​核心目的​​保存 ​​瞬态 UI 状态​​&#xff08;如用户输入、滚动位置&#xff09;&#xff0c;应对进程意外终止或配置变更。管理 ​​业务逻辑相关数据​​&#xff0c;在配置变更时保留数据&#xff0…...

Vue Fragment vs React Fragment

文章目录 前言&#x1f9e9; 一、概念对比&#xff1a;Vue Fragment vs React Fragment&#x1f4e6; 二、使用示例对比✅ Vue 3 中使用 Fragment✅ React 中使用 Fragment &#x1f50d; 三、差异解析1. **使用方式**2. **传递属性&#xff08;如 key&#xff09;**3. **插槽系…...

Rest-Assured API 测试:基于 Java 和 TestNG 的接口自动化测试

1. 右键点击项目的文件夹&#xff0c;选择 New > File。 2. 输入文件名&#xff0c;例如 notes.md&#xff0c;然后点击 OK。 3. 选择项目类型 在左侧的 Generators 部分&#xff0c;选择 Maven Archetype&#xff0c;这将为你生成一个基于 Maven 的项目。 4. 配置项目基…...

机器学习:集成学习概念和分类、随机森林、Adaboost、GBDT

本文目录&#xff1a; 一、集成学习概念**核心思想&#xff1a;** 二、集成学习分类&#xff08;一&#xff09;Bagging集成&#xff08;二&#xff09;Boosting集成&#xff08;三&#xff09;两种集成方法对比 三、随机森林&#xff08;一&#xff09;构造过程&#xff08;二…...