Overview

时间线

IPTables用法

iptables 是一个用于配置 Linux 内核中的网络地址转换 (NAT) 和数据包过滤规则的工具。它通常用于设置防火墙规则,以控制进出网络的数据流。下面是对 iptables 的详细介绍: 基本概念 表 (Table): iptables 使用不同的表来处理不同类型的网络操作。常用的表包括: filter: 默认表,主要用于数据包过滤。 nat: 用于网络地址转换 (NAT)。 mangle: 用于修改数据包。 raw: 用于处理数据包绕过连接跟踪。 链 (Chain): 每个表包含多个链,定义数据包的处理顺序。常见的链有: INPUT: 处理所有进入本地系统的数据包。 OUTPUT: 处理所有从本地系统发送出去的数据包。 FORWARD: 处理转发的数据包。 PREROUTING: 在数据包路由前处理数据包。 POSTROUTING: 在数据包路由后处理数据包。 规则 (Rule): 链中包含的具体规则,定义了匹配条件和相应的动作。每条规则由匹配条件和动作组成。 基本用法 查看规则 iptables -L # 查看当前的过滤表规则 iptables -t nat -L # 查看 NAT 表规则 添加规则 # 允许来自特定 IP 地址的数据包进入 iptables -A INPUT -s 192.168.1.1 -j ACCEPT # 拒绝特定端口的数据包 iptables -A INPUT -p tcp --dport 22 -j REJECT 删除规则 iptables -D INPUT -s 192.

AVIF

AVIF图片格式详解 近年来,随着互联网的发展和图像需求的不断增长,新的图像格式层出不穷。AVIF(AV1 Image File Format)便是其中一种备受关注的图像格式。AVIF不仅在压缩效率上有显著提升,还在图像质量、支持的功能等方面有着诸多优点。本文将详细介绍AVIF格式的技术细节、优势及应用场景。 什么是AVIF? AVIF是基于AV1视频编码格式的图像文件格式,由开放媒体联盟(Alliance for Open Media, AOMedia)开发。它利用AV1编码技术来实现高效的图像压缩和优质的图像显示。AVIF文件通常以 .avif为扩展名。 技术细节 编码技术 :AVIF使用AV1视频编解码器,这是一种先进的压缩算法,专为互联网视频和图像传输设计。相比于传统的JPEG和PNG格式,AV1在压缩效率和图像质量方面有着显著的提升。 色彩表现 :AVIF支持广色域和高动态范围(HDR),能够展示更丰富的色彩和更高的对比度。它支持10位和12位色深,而传统的JPEG仅支持8位色深。 透明度 :与PNG一样,AVIF支持透明度(alpha通道),这对于需要透明背景的图像非常重要。 动画支持 :AVIF支持多帧图像,类似于GIF和APNG,因此可以用于高效的动画图像展示。 AVIF的优势 高效压缩 :AVIF相比于JPEG和PNG具有更高的压缩效率。根据测试,AVIF在同等图像质量下可以比JPEG减少约50%的文件大小。这意味着在网页加载和存储空间上,AVIF可以节省大量资源。 优质图像 :得益于AV1的先进压缩技术,AVIF在高压缩率下仍能保持优质的图像质量,减少压缩伪影和噪点。 现代功能支持 :AVIF支持高动态范围(HDR)、广色域、透明度和动画,这些功能使其在现代图像应用中具有广泛的适用性。 AVIF的应用场景 网页加速 :由于其高效的压缩性能,AVIF非常适用于网页图像的加载,能够显著减少图像加载时间,提升用户体验。 移动设备 :在移动设备上,存储空间和带宽都是宝贵资源。使用AVIF格式可以减少图像文件大小,节省存储空间和数据流量。 高品质图像展示 :需要高品质图像展示的场景,如摄影作品展示、电商产品图片等,AVIF能提供优质的图像表现和色彩还原。 动画图像 :对于需要动画效果的图像,AVIF提供了高效的动画支持,成为GIF和APNG的替代方案。 未来发展 尽管AVIF已经展示了其强大的优势,但其推广仍然面临一些挑战。目前,主流浏览器如Chrome、Firefox和Edge已经开始支持AVIF,但在一些老旧设备和浏览器上,AVIF的支持仍需完善。随着技术的不断进步和推广,AVIF有望成为下一代主流图像格式。 结语 AVIF作为一种新兴的图像格式,凭借其高效的压缩技术、优质的图像表现和广泛的功能支持,展现了广阔的应用前景。在未来,随着更多设备和平台的支持,AVIF有望在各类图像应用中大放异彩。对于开发者和设计师而言,了解并开始使用AVIF,将为图像处理和展示带来全新的体验和可能性。

NFTables

什么是 nftables? nftables 是由 Netfilter 项目开发的新一代 Linux 防火墙框架,用于替代 iptables、ip6tables、arptables 和 ebtables。它提供了一个统一的、简化的接口来定义、管理和查询防火墙规则,旨在提高性能和灵活性。 nftables 的特点 统一的命令行工具: nftables 提供了一个名为 nft 的命令行工具,统一管理 IPv4、IPv6、防火墙、NAT 和桥接过滤。 改进的规则表达能力: 使用类 C 的表达式语法,可以更灵活地定义复杂规则。 高效的规则集管理: 支持批量添加和删除规则,减少了处理大量规则时的性能开销。 内核空间和用户空间的分离: nftables 将规则集的评估逻辑移到了内核空间,从而提高了效率。 基本概念 表(table): 用于组织规则集,类似于数据库中的表。每个表可以包含多个链和规则。 链(chain): 表中的逻辑结构,包含一组按顺序执行的规则。链可以是内置的(如 input、output 和 forward)或用户自定义的。 规则(rule): 定义具体的过滤条件和动作(如接受、拒绝、日志记录等)。 集合(set)和映射(map): 集合用于存储多个匹配项(如 IP 地址列表),映射用于将一个值映射到另一个值(如端口重定向)。 基本用法示例 创建表: nft add table ip filter 添加链: nft add chain ip filter input { type filter hook input priority 0 \; } 添加规则: nft add rule ip filter input ip saddr 192.