运维iptables与firewalld详解
iptables与firewalld
一、iptables
1.1 iptables简介
iptables 是一个在 Linux 系统上用来配置 IPv4 数据包过滤规则的工具。它允许系统管理员控制数据包的流向,实现网络安全、网络地址转换(NAT)和端口转发等功能。
具体来说,iptables 可以用来定义规则集(ruleset),这些规则决定了哪些数据包可以通过系统,哪些需要被丢弃或者拒绝。这些规则基于数据包的源地址、目标地址、源端口、目标端口以及数据包的协议等信息来进行匹配和处理。
iptables 的工作原理是在 Linux 内核中使用 Netfilter 框架来实现数据包过滤和处理。它通过修改 Netfilter 的规则表来控制数据包的流向和处理方式。iptables 提供了丰富的命令和选项,使得管理员可以灵活地配置和管理防火墙规则,从而保护主机和网络的安全。
iptables 是 Linux 系统中强大而灵活的防火墙工具,被广泛用于网络安全配置和管理中。
1.2 iptables关键概念
iptables 中涉及到一些关键概念,理解这些概念对于正确配置和管理防火墙规则非常重要。以下是几个关键概念及其示例说明:
-
链(Chain):
- 说明: 链是规则集合,用于指定数据包如何处理。iptables 包括预定义的标准链(如 INPUT、OUTPUT、FORWARD)和可以自定义的用户链。
- 示例:
- INPUT 链:控制进入本地系统的数据包。
- OUTPUT 链:控制从本地系统发出的数据包。
- FORWARD 链:控制经过系统的转发数据包。
-
规则(Rule):
- 说明: 规则是定义在链中的指令,用于匹配数据包并决定如何处理它们(接受、拒绝、转发等)。
- 示例:
- 允许从特定 IP 地址发出的数据包:
iptables -A OUTPUT -s 192.168.1.100 -j ACCEPT
- 拒绝特定端口的入站连接:
iptables -A INPUT -p tcp --dport 22 -j DROP
- 允许从特定 IP 地址发出的数据包:
-
目标(Target):
- 说明: 目标指定当规则匹配时应该采取的动作,可以是 ACCEPT(接受数据包)、DROP(丢弃数据包)、REJECT(拒绝数据包并发送拒绝消息)、LOG(记录数据包信息)等。
- 示例:
- 接受指定来源的数据包:
-j ACCEPT
- 丢弃特定端口的数据包:
-j DROP
- 拒绝并发送 ICMP 错误消息:
-j REJECT
- 接受指定来源的数据包:
-
匹配条件(Match Conditions):
- 说明: 匹配条件用于过滤数据包的特定属性,例如源 IP 地址、目标端口、协议类型等。
- 示例:
- 匹配特定协议类型:
-p tcp
或-p udp
- 指定源 IP 地址:
-s 192.168.1.0/24
- 指定目标端口:
--dport 80
- 匹配特定协议类型:
-
表(Table):
- 说明: 表是规则集的逻辑分类,iptables 中主要有 filter、nat、mangle 和 raw 四种表,每种表用于不同的数据包处理目的。
- 示例:
- filter 表:用于控制数据包流向(如 INPUT、OUTPUT、FORWARD)。
- nat 表:用于网络地址转换(NAT)。
- mangle 表:用于修改数据包头部。
- raw 表:用于配置特定的连接跟踪规则。
这些关键概念帮助管理员理解和构建复杂的 iptables 防火墙规则,以实现网络安全策略和功能需求。通过合理使用这些概念,可以有效地管理和保护 Linux 主机和网络环境。
1.3 iptables常用操作
iptables 在实际使用中有一些常见的操作和命令,主要包括以下几类:
-
添加规则(Rule):
iptables -A chain rule_specification
: 将一条规则追加到指定的链(chain)中。iptables -I chain [rulenum] rule_specification
: 在指定链中插入一条规则。iptables -R chain rulenum rule_specification
: 替换指定链中的某条规则。
-
删除规则:
iptables -D chain rule_specification
: 从指定链中删除符合规则的某条规则。iptables -F [chain]
: 清空指定链中的所有规则。iptables -X [chain]
: 删除自定义的链(如果没有规则引用该链)。
-
管理链(Chain):
iptables -N chain
: 创建一个新的自定义链。iptables -E old_chain new_chain
: 对现有链进行重命名。iptables -P chain target
: 设置指定链的默认策略(如 ACCEPT、DROP 等)。
-
显示规则和状态:
iptables -L [chain]
: 列出指定链的所有规则。iptables -S
: 显示完整的防火墙规则集。iptables -nvL
: 显示详细信息,包括数据包和字节计数。iptables -Z [chain]
: 清空指定链的数据包和字节计数。
-
保存和恢复规则:
iptables-save
: 将当前防火墙规则保存到文件或输出到标准输出。iptables-restore
: 从文件或标准输入中恢复防火墙规则。
-
其他常用操作:
iptables -A INPUT -p tcp --dport port_number -j ACCEPT
: 允许特定端口的 TCP 数据包进入系统。iptables -A OUTPUT -p udp --sport port_number -j DROP
: 阻止特定端口的 UDP 数据包从系统发出。
这些命令和操作允许管理员灵活地配置和管理 iptables 防火墙规则,以保护系统和网络安全。具体的使用需根据具体的网络环境和安全需求进行调整和配置。
二、firewalld
2.1 firewalld简介
Firewalld 是一个动态的防火墙管理器,最初由 Fedora 发布,现在已经在许多基于 Linux 的发行版中广泛使用。它的设计目的是简化管理和配置防火墙规则,使管理员可以动态地调整和更新防火墙设置,而无需重新加载整个防火墙规则集。
主要特点和功能:
-
动态更新和管理: Firewalld 允许管理员在运行时添加、删除或修改防火墙规则,这些更改会立即生效,无需重启防火墙服务或系统。
-
基于区域的配置: Firewalld 使用“区域”来管理不同网络环境的安全设置。每个区域定义了一组预定义的规则,例如公共网络、家庭网络、内部网络等,管理员可以根据需求将接口分配给相应的区域。
-
服务和端口管理: Firewalld 支持管理服务和端口,管理员可以轻松地启用或禁用特定服务(如 SSH、HTTP、FTP 等)和端口。
-
应用程序级别的防火墙支持: Firewalld 可以识别和管理特定应用程序的网络连接,允许管理员定义基于应用程序的规则。
-
IPv4 和 IPv6 支持: Firewalld 能够管理 IPv4 和 IPv6 的防火墙规则,支持双栈环境。
-
集成的命令行工具和图形界面: Firewalld 提供了命令行工具(firewall-cmd)和图形用户界面(firewall-config),使管理员可以根据自己的偏好选择合适的管理方式。
-
活动和永久配置: Firewalld 区分活动配置和永久配置,活动配置在运行时生效,而永久配置则会在系统重启后自动应用,这样可以确保安全设置的持久性。
使用场景:
- 服务器安全管理: 管理员可以通过 Firewalld 控制服务器上不同服务和端口的访问权限,保护服务器免受未经授权的访问。
- 桌面系统安全: 在桌面系统上,可以利用 Firewalld 确保公共网络连接时的安全性,限制来自外部网络的访问。
- 网络环境配置: Firewalld 的区域概念使得在多网络接口和复杂网络拓扑中管理防火墙规则变得更加直观和可控。
总体而言,Firewalld 提供了一个灵活、易于管理的防火墙解决方案,适用于各种规模和复杂度的 Linux 系统和网络环境。
2.2 firewalld关键概念
Firewalld 的核心概念包括以下几个关键要素,理解这些要素有助于有效地配置和管理防火墙规则:
-
区域(Zone):
- 说明: 区域定义了不同网络环境的安全级别和规则集合。每个接口可以分配给特定的区域,以便根据网络环境应用适当的防火墙规则。
- 示例:
public
:公共区域,最严格的安全设置,适用于连接到不受信任网络的接口。home
:家庭网络区域,允许对某些服务和端口的有限访问。internal
:内部网络区域,允许较宽松的访问,适用于受信任的内部网络。
-
服务(Service):
- 说明: 服务定义了特定应用程序或服务使用的端口和协议组合。Firewalld 提供了一组预定义的服务,允许管理员方便地管理服务的访问。
- 示例:
ssh
:用于 SSH 连接的服务,通常使用 TCP 端口 22。http
:用于 HTTP 服务的服务,通常使用 TCP 端口 80。ftp
:用于 FTP 服务的服务,通常使用 TCP 端口 21。
-
源(Source):
- 说明: 源地址或源地址范围是指定特定来源网络或主机的 IP 地址范围。可以用来限制访问特定服务或端口的源 IP 地址。
- 示例:
192.168.1.0/24
:表示整个 192.168.1.0/24 子网。10.0.0.5
:表示单个 IP 地址 10.0.0.5。
-
端口(Port):
- 说明: 端口规则用于允许或阻止特定端口上的流量。可以指定 TCP 或 UDP 协议,以及具体的端口号。
- 示例:
- 允许 TCP 端口 443:
firewall-cmd --zone=public --add-port=443/tcp --permanent
- 阻止 UDP 端口 53:
firewall-cmd --zone=public --add-port=53/udp --permanent
- 允许 TCP 端口 443:
-
目标(Target):
- 说明: 目标指定当规则匹配时应该采取的动作,可以是 ACCEPT(接受数据包)、DROP(丢弃数据包)、REJECT(拒绝数据包并发送拒绝消息)等。
- 示例:
- 接受特定服务的流量:
-j ACCEPT
- 拒绝来自特定源地址的流量:
-j DROP
- 接受特定服务的流量:
-
永久配置和运行时配置:
- 说明: Firewalld 区分永久配置和运行时配置。永久配置保存在文件中,系统重启后仍然有效,而运行时配置在系统重启后将被丢弃。
- 示例:
--permanent
:用于将规则永久保存到配置文件中。--runtime-to-permanent
:将当前运行时配置复制到永久配置。
这些关键概念使得管理员可以在不同的网络环境中配置灵活且精确的防火墙策略,以保护系统和网络免受未经授权的访问和攻击。通过合理利用这些概念,可以确保系统安全性和网络可用性的平衡。
2.3 firewalld常见操作
Firewalld 提供了一系列常见的操作命令,管理员可以使用这些命令来配置、管理和监视防火墙规则。以下是一些常见的 firewalld 操作:
-
查看当前防火墙状态和规则:
firewall-cmd --state
: 查看 firewalld 的当前状态,例如是否运行。firewall-cmd --list-all
: 显示所有区域的详细信息,包括已经配置的规则。
-
管理区域(Zone):
firewall-cmd --get-active-zones
: 显示当前活动的区域。firewall-cmd --get-default-zone
: 显示默认的区域。firewall-cmd --set-default-zone=zone_name
: 设置默认的区域。firewall-cmd --list-all-zones
: 列出所有可用的区域及其配置。
-
管理服务:
firewall-cmd --get-services
: 显示所有可用的预定义服务。firewall-cmd --add-service=service_name [--zone=zone_name]
: 启用特定的服务。firewall-cmd --remove-service=service_name [--zone=zone_name]
: 禁用特定的服务。
-
管理端口:
firewall-cmd --get-ports
: 显示所有已配置的端口。firewall-cmd --add-port=port/protocol [--zone=zone_name]
: 开放特定的端口。firewall-cmd --remove-port=port/protocol [--zone=zone_name]
: 移除特定的端口。
-
管理源(Source):
firewall-cmd --add-source=source [--zone=zone_name]
: 允许特定的源访问。firewall-cmd --remove-source=source [--zone=zone_name]
: 移除特定的源访问权限。
-
实时配置和永久配置:
firewall-cmd --runtime-to-permanent
: 将当前运行时配置保存为永久配置。firewall-cmd --reload
: 重新加载防火墙规则,立即应用最新的配置。
-
其他操作:
firewall-cmd --panic-on
: 激活防火墙的紧急模式,拒绝所有流量。firewall-cmd --panic-off
: 关闭防火墙的紧急模式,恢复正常流量。firewall-cmd --query-service=service_name
: 检查特定服务是否在防火墙规则中启用。
-
日志和监视:
firewall-cmd --get-log-denied
: 获取拒绝日志的设置。firewall-cmd --set-log-denied=all
: 打开所有拒绝日志记录。
这些命令提供了灵活的管理和配置选项,使管理员能够根据具体需求定制和调整防火墙规则,保障系统和网络的安全性。使用时需要注意权限和规则的生效顺序,确保所配置的防火墙策略能够有效地保护系统。
三、iptables与firewalld
3.1 相同点
iptables 和 firewalld 在网络安全管理中有一些共同点,尽管它们是不同的工具,但它们之间存在一些功能和特性上的相似之处:
-
功能目标:
- 防火墙管理: iptables 和 firewalld 都用于配置和管理 Linux 系统上的防火墙规则,以控制网络流量的进出。
-
基本概念:
- 规则管理: 两者都通过规则来控制数据包的处理方式,例如允许、拒绝或转发。
- 链的概念: iptables 中的链(chain)类似于 firewalld 中的区域(zone),都用于组织和应用规则集合。
-
支持的协议和端口:
- 协议支持: iptables 和 firewalld 都支持 TCP、UDP、ICMP 等主流的网络协议。
- 端口管理: 两者都支持管理和控制特定端口的访问权限。
-
IPv4 和 IPv6 支持:
- 双栈支持: iptables 和 firewalld 都能够处理 IPv4 和 IPv6 数据包,支持双栈环境的配置。
-
灵活性:
- 动态性: firewalld 在设计上更加动态,允许在运行时添加、删除和修改规则,而 iptables 则需要重新加载规则集才能生效。
尽管有这些相似之处,iptables 和 firewalld 在实现和使用上有显著的区别,例如iptables是直接操作内核规则,更为底层和灵活,而firewalld提供了更高级别的抽象和管理接口,更易于使用和配置。
3.2 iptables与firewalld各自优势及特点
iptables 和 firewalld 在设计理念和功能实现上有很多不同点,它们各自具有不同的优势和适用场景:
iptables 的特点和优势:
-
底层控制:
- iptables 直接操作 Linux 内核中的 Netfilter 框架,提供了非常底层的网络数据包处理能力,能够实现高度定制化的防火墙规则。
-
灵活性和精确控制:
- iptables 允许管理员直接定义和控制数据包的过滤、转发和修改行为,可以基于非常具体的条件进行匹配和操作。
-
成熟和广泛支持:
- iptables 是 Linux 平台上长期使用的经典防火墙工具,有着丰富的社区支持和文档资源,广泛应用于各种复杂的网络环境中。
iptables 的劣势:
-
配置复杂:
- iptables 配置和管理较为复杂,需要深入理解网络协议和内核机制,对初学者来说学习曲线较陡。
-
不支持动态调整:
- iptables 规则一旦设置,通常需要重新加载整个规则集才能生效,不支持动态添加、删除和修改规则。
firewalld 的特点和优势:
-
动态管理和易用性:
- firewalld 设计为动态管理防火墙规则,支持在运行时动态添加、删除和修改规则,使得配置更加灵活和简便。
-
区域和服务抽象:
- firewalld 引入了区域(zone)和服务(service)的概念,管理员可以根据不同的网络环境和服务类型轻松管理和应用防火墙策略。
-
网络管理集成:
- firewalld 与 NetworkManager 紧密集成,能够与网络接口的状态和连接状态动态调整防火墙规则,适用于移动设备和动态网络环境。
-
更高级的抽象和管理接口:
- firewalld 提供了命令行工具和图形界面,使得非专业用户也能够轻松理解和配置防火墙规则,降低了使用门槛。
firewalld 的劣势:
-
性能问题:
- 相对于 iptables 的直接操作,firewalld 由于抽象层和动态管理的特性,可能在性能上略有损失,尤其是在高负载环境中。
-
适应复杂网络需求的能力有限:
- 尽管 firewalld 提供了高级的管理抽象,但在某些特定和复杂的网络环境下,可能需要更多的细粒度控制和定制化规则,这时 iptables 可能更为适合。
综述
iptables 和 firewalld 在功能设计和适用场景上有显著的差异。iptables 更适合对网络深度理解和精确控制要求高的场景,而 firewalld 则更适合需要动态管理和易用性的环境,尤其是桌面系统或者需要频繁变更防火墙规则的服务器环境。选择使用哪个工具应根据具体的需求、管理复杂度和个人经验来进行权衡和选择。
希望对您有用!关注锅总,可及时获得更多花里胡哨的运维实用操作!
相关文章:

运维iptables与firewalld详解
iptables与firewalld 一、iptables 1.1 iptables简介 iptables 是一个在 Linux 系统上用来配置 IPv4 数据包过滤规则的工具。它允许系统管理员控制数据包的流向,实现网络安全、网络地址转换(NAT)和端口转发等功能。 具体来说,…...

适用于 Android 的 几种短信恢复应用程序
Android 设备上的短信丢失可能由于多种原因而丢失,例如意外删除、恢复出厂设置、系统崩溃或病毒攻击。是否有应用程序可以恢复 Android 上已删除的短信?幸运的是,有几款短信恢复应用程序可以扫描您的 Android 手机并从内存或 SIM 卡中检索已删…...
Lodash-js工具库
1. Lodash 简介 Lodash 是一个现代 实用工具库,提供了许多有用的函数,帮助开发者处理常见的编程任务,如数组操作、对象处理、字符串处理等。Lodash 使得代码更简洁、更高效,极大地提高了开发效率。Lodash 的设计灵感来自于 Under…...
Makefile实战论(一)
为什么写这个呢,其实我有系统学过Makefile和CMake。但是因为用的不是很多或者说没有深入的使用场景,导致我不是很熟练,或者说没法优雅地使用。刚好最近对Linux的嵌入式编程比较感兴趣,借着demo来分析一下资深工程师写的Makefile&a…...

Hi3861 OpenHarmony嵌入式应用入门--PWM 三色灯
这篇文章是讲解的pwm控制三色灯的部分,这部分也是后续全彩智能灯的基础。 硬件原理如下 IO管脚定义在hi-12f_v1.1.2-规格书-20211202.pdf文档中 GPIO API API名称 说明 unsigned int IoTGpioInit(unsigned int id); GPIO模块初始化 hi_u32 hi_io_set_func(hi_i…...

CH5xx USB下载工具
文章目录 CH5xx USB下载工具1.前言2.介绍3. USB下载4. 串口免按键下载4.SWD下载 CH5xx USB下载工具 1.前言 CH5xx USB下载工具是一款专为沁恒 CH5xx系列 BLE SOC设计的程序的下载工具。这款工具与串口下载相比较,不仅提供了稳定的数据传输能力,而且提高…...
问题1.用PGP解密出keybox.xml,过程中报“Can‘t check signature: No public key”如图,这个正常吗?如何解决?
问题1.我要写Google attenstation key到设备。就需要keybox.xml生成keybox.kdb文件。而测试机构给我们的是加密的文件,需要用PGP解密出keybox.xml,过程中报“Can’t check signature: No public key”如图,这个正常吗?如何解决&am…...

网络物理隔离后 可以用保密U盘进行数据安全交换吗?
企业用的保密U盘通常被设计用于存储和传输敏感信息,以确保数据的安全和保密性。 在网络之间实现了物理隔离后,使用保密U盘进行数据安全交换是一种常见的做法。物理隔离确保了两个网络之间的完全分离,因此使用保密U盘可以作为一种安全的手段来…...
机械臂 CoppeliaSim Simulink联合仿真
实现机械臂在CoppeliaSim(以前称为V-REP)和Simulink上的联合仿真涉及多个步骤,包括环境设置、模型导入、通信配置、控制算法设计和测试调试。 前期准备 安装软件配置工作环境创建和配置CoppeliaSim场景 导入机械臂模型配置机械臂参数在Simuli…...

MySQL数据库(一):数据库介绍与安装
在嵌入式开发中,数据库的重要性体现在高效的数据存储和管理、数据持久化、复杂查询和处理、数据同步和共享、安全性和可扩展性。常见嵌入式数据库包括SQLite、MySQL、LevelDB等,应用于智能家居、工业控制、车载系统和物联网设备,提升了系统功…...

天津媒体邀约,及媒体名单?
传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体宣传加速季,100万补贴享不停,一手媒体资源,全国100城线下落地执行。详情请联系胡老师。 天津作为中国北方的重要城市,拥有丰富的媒体资…...

Java | Leetcode Java题解之第168题Excel表列名称
题目: 题解: class Solution {public String convertToTitle(int columnNumber) {StringBuffer sb new StringBuffer();while (columnNumber ! 0) {columnNumber--;sb.append((char)(columnNumber % 26 A));columnNumber / 26;}return sb.reverse().t…...
代码随想录算法训练营刷题复习10:二叉树、二叉搜索树复习2
二叉树、二叉搜索树 力扣题复习 110. 平衡二叉树257. 二叉树的所有路径404. 左叶子之和513. 找树左下角的值112.路径之和113.路经总和ii450. 删除二叉搜索树中的节点701. 二叉搜索树中的插入操作 110. 平衡二叉树 左右子树高度差要小于1 ->递归调用(need新的函…...

预测准确率达95.7%,ChatMOF利用LLM预测和生成金属有机框架,包含人工智能词汇表(AI glossary)
预测准确率达95.7%,ChatMOF利用LLM预测和生成金属有机框架,包含人工智能词汇表(AI glossary)。 金属有机框架(MOF)因其孔隙率大、表面积大和出色的可调性而用于许多化学应用。然而,在利用 AI 深入探索 MOF 设计与性能优化的研究征途中,科学家们正面临着前所未有的挑战。…...

【Linux】环境基础开发工具使用(yum、vim、gcc/g++、gdb、make/Makefile)
文章目录 Linux 软件包管理器 yumLinux开发工具Linux编辑器-vim使用vim的基本概念vim下各模式的切换vim命令模式各命令汇总vim底行模式各命令汇总批量化注释和批量化去注释vim简单的配置解决一个小问题 Linux编译器-gcc/g作用gcc/g 语法预处理编译汇编链接什么是函数库 Linux调…...

Linux基础二
目录 一,tail查看文件尾部指令 二,date显示日期指令 三,cal查看日历指令 四,find搜索指令 五,grep 查找指令 六,> 和>> 重定向输出指令 七, | 管道指令 八,&&逻辑控…...
Linux运维面试--yum安装和编译安装区别
风吹哪页读哪页,花开何时看何时。 目录 # 1.安装方式差异 ## 1.1 yum安装 ## 1.2 源码编译安装 # 2.优缺点分析 ## 2.1 yum安装优缺点 ### 2.1.1 yum安装优点 ### 2.1.2 yum安装缺点 ## 2.2 源码安装优缺点 ### 2.2.1 源码安装优点 ### 2.2.2 源码安装缺点…...
redis 的内存尽量不要超过 10g,超过 10g 可能会有问题
在使用Redis时,内存大小的限制通常取决于多种因素,包括但不限于: 1. **物理内存**:服务器的总内存大小限制了Redis可以使用的最大内存。 2. **操作系统限制**:操作系统可能对单个进程可以使用的内存有限制。 3. **Red…...
力扣(2024.06.23)
1. 62——不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径&a…...

OpenCV颜色检测
OpenCV颜色检测 前言策略分析根据颜色检测目标对象相关链接 前言 绿幕技术是一种经典的视频编辑技术,可以用于将人物置于不同的背景中。例如在电影制作中,技术的关键在于演员不能身着特定颜色的衣服(比如绿色),站在只有绿色的背景前。然后&a…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...