Linux中的Iptables介绍
文章目录
- iptables
- 1. 概述
- 2. **工作原理**
- 3. 数据包处理流程与规则匹配顺序
- 4. 常用的匹配条件
- 5. 动作类型
- 6. 基本命令
- 7. 高级功能
iptables
1. 概述
Iptables 是一个用于配置 Linux 内核防火墙的用户空间工具。它能够对进出服务器的网络数据包进行过滤、修改和转发等操作,是构建安全的 Linux 网络环境的关键组件。它通过一系列规则来决定如何处理数据包,这些规则可以基于源 IP 地址、目标 IP 地址、端口号、协议类型等多种条件。
2. 工作原理
-
表(Tables)
- Iptables 包含了 4 个主要的表,分别是
filter
,nat
,mangle
和raw
。- filter 表:这是最常用的表,主要用于过滤数据包,决定是否允许数据包通过(
ACCEPT
)、丢弃数据包(DROP
)或者拒绝数据包(REJECT
)。例如,你可以设置规则允许来自特定 IP 地址范围的 HTTP 流量(端口 80)通过,而丢弃其他未知来源的 HTTP 流量。 - nat 表:主要用于网络地址转换(NAT)操作。例如,在一个使用私有 IP 地址的局域网中,通过
nat
表可以将内部私有 IP 地址转换为外部公共 IP 地址,使得内部网络中的主机能够访问互联网。它包括源 NAT(SNAT
)和目的 NAT(DNAT
)。SNAT
用于修改数据包的源 IP 地址,通常在共享上网场景中使用;DNAT
用于修改数据包的目的 IP 地址,比如将外部访问服务器的某个公共 IP 地址的流量转发到内部不同服务器的私有 IP 地址上。 - mangle 表:这个表可以对数据包进行修改,如修改数据包的 TTL(生存时间)值、改变数据包的服务类型(TOS)等。例如,在一些对网络质量有特殊要求的环境中,可以通过
mangle
表调整数据包的优先级。 - raw 表:用于配置一些在连接跟踪之前的规则。它可以用于处理一些特殊的数据包,避免它们被连接跟踪机制处理,提高性能或者满足特殊的安全需求。
- filter 表:这是最常用的表,主要用于过滤数据包,决定是否允许数据包通过(
- Iptables 包含了 4 个主要的表,分别是
-
链(Chains)
-
每个表都包含了若干个链,链是规则的集合。主要的链有
INPUT
,OUTPUT
,FORWARD
等。
- INPUT 链:用于处理进入本机的数据包。例如,当外部主机尝试访问本地服务器上的服务(如 SSH 服务)时,数据包会经过
INPUT
链,在这里可以设置规则决定是否允许该访问。 - OUTPUT 链:处理从本机发出的数据包。比如,当本地服务器向外部发送一个 HTTP 请求时,数据包会经过
OUTPUT
链,在这里可以限制服务器主动发起的连接类型等。 - FORWARD 链:用于处理经过本机但目的不是本机的数据包,通常在路由器或者网关设备上使用。例如,在一个充当路由器的 Linux 服务器上,内部网络主机发往外部网络的数据包会经过
FORWARD
链,在这里可以进行转发规则的设置。
- INPUT 链:用于处理进入本机的数据包。例如,当外部主机尝试访问本地服务器上的服务(如 SSH 服务)时,数据包会经过
-
-
规则(Rules)
- 规则定义了如何处理数据包。一条规则通常包含匹配条件和动作。匹配条件可以是源 IP 地址、目标 IP 地址、端口号、协议类型等诸多因素。动作则是对匹配的数据包采取的操作,如
ACCEPT
(接受)、DROP
(丢弃)、REJECT
(拒绝并返回错误信息)、SNAT
(源地址转换)、DNAT
(目的地址转换)等。例如,下面是一条简单的规则:iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT
,这条规则的意思是在INPUT
链中添加(-A
)一条规则,匹配源 IP 地址来自192.168.1.0/24
网段、协议为 TCP(-p tcp
)并且目标端口为 80(--dport 80
)的数据包,然后采取的动作(-j
)是接受(ACCEPT
)这些数据包。
- 规则定义了如何处理数据包。一条规则通常包含匹配条件和动作。匹配条件可以是源 IP 地址、目标 IP 地址、端口号、协议类型等诸多因素。动作则是对匹配的数据包采取的操作,如
3. 数据包处理流程与规则匹配顺序
- 当一个数据包进入 Linux 系统时,它会按照特定的顺序经过 Iptables 的规则链进行处理。首先,数据包会经过
raw
表,这里的规则主要用于决定是否对数据包进行连接跟踪。然后,根据数据包的流向,它会进入mangle
表,在这里可以对数据包进行标记、修改 TTL 等操作。接着是nat
表,用于进行网络地址转换。最后是filter
表,决定数据包是被接受还是被丢弃 - 规则的匹配是按照在链中的顺序进行的。一旦找到匹配的规则,就会执行相应的动作,并且不再继续匹配该链中的后续规则。例如,在
INPUT
链中,如果第一条规则就匹配并接受了一个数据包,那么就不会再检查INPUT
链中的其他规则来处理这个数据包。
4. 常用的匹配条件
- 基于 IP 地址的匹配
- 可以使用
-s
(源 IP 地址)和-d
(目标 IP 地址)选项来指定 IP 地址范围。例如,iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT
会接受来自192.168.0.0 - 192.168.255.255
这个网段的数据包。还可以使用具体的 IP 地址,如iptables -A INPUT -s 10.0.0.1 -j DROP
会丢弃来自10.0.0.1
这个 IP 地址的数据包。
- 可以使用
- 基于端口的匹配
- 对于 TCP 和 UDP 协议,可以使用
--dport
(目标端口)和--sport
(源端口)选项。例如,iptables -A INPUT -p tcp --dport 22 -j ACCEPT
会接受目标端口为 22(SSH 服务)的 TCP 数据包。同时,也可以指定端口范围,如iptables -A INPUT -p udp --dport 1024:65535 -j ACCEPT
会接受目标端口在1024 - 65535
之间的 UDP 数据包。
- 对于 TCP 和 UDP 协议,可以使用
- 基于协议的匹配
- 使用
-p
选项来指定协议,如 TCP、UDP、ICMP 等。例如,iptables -A INPUT -p icmp -j ACCEPT
会接受所有 ICMP 协议的数据包,这通常用于允许网络中的主机响应 ping 请求。
- 使用
5. 动作类型
- ACCEPT
- 这个动作表示允许数据包通过,让数据包继续在网络中传输。例如,当你想要允许本地服务器的 Web 服务(端口 80)接收外部访问时,就可以设置规则使用
ACCEPT
动作来允许 TCP 协议、目标端口为 80 的数据包进入。
- 这个动作表示允许数据包通过,让数据包继续在网络中传输。例如,当你想要允许本地服务器的 Web 服务(端口 80)接收外部访问时,就可以设置规则使用
- DROP
DROP
动作会直接丢弃数据包,并且不会向发送方返回任何信息。这在安全性方面比较有用,例如,当你检测到某个恶意 IP 地址频繁尝试访问服务器时,可以使用DROP
动作来阻止其数据包进入,这样恶意攻击者就无法得知其访问被拒绝是因为防火墙的原因。
- REJECT
- 与
DROP
不同,REJECT
动作会丢弃数据包并且向发送方返回一个错误信息,告知发送方连接被拒绝。例如,在某些需要友好地拒绝外部访问的情况下,可以使用REJECT
。
- 与
- LOG
LOG
动作主要用于记录数据包的信息。当数据包匹配到带有LOG
动作的规则时,Iptables 会将数据包的相关信息(如源 IP 地址、目标 IP 地址、协议等)记录到系统日志(通常是/var/log/messages
或者/var/log/kern.log
)中。这有助于管理员分析网络流量和检测潜在的安全问题。例如,iptables -A INPUT -p tcp --dport 80 -j LOG
会记录所有访问本地 Web 服务端口的 TCP 数据包的信息。
6. 基本命令
# 查看规则
iptables -L -v -n -t <table>
# 说明
# -L:列出规则。
# -v:详细输出。
# -n:数字形式显示地址和端口。
# -t <table>:指定表,默认为 filter。# 添加规则
iptables -A <chain> -p <protocol> --dport <port> -j <action>
# 说明
# -A <chain>:追加规则到指定链。
# -p <protocol>:指定协议(如 tcp, udp)。
# --dport <port>:指定目的端口。
# -j <action>:指定动作(如 ACCEPT, DROP, REJECT)。# 删除规则
iptables -D <chain> <rule-number>
# 说明
# <rule-number>:规则编号,从 1 开始。# 删除所有规则
iptables -F -t <table>
7. 高级功能
- 连接跟踪(conntrack)模块
- Iptables 通过连接跟踪模块来跟踪网络连接的状态。这使得它能够根据连接的不同阶段(如 NEW、ESTABLISHED、RELATED)来制定规则。例如,在处理 TCP 连接时,对于一个新建立的连接(NEW),可以设置比较严格的规则进行检查;而对于已经建立的连接(ESTABLISHED),则可以相对宽松地允许数据包通过。一个典型的规则是允许已经建立的 TCP 连接的数据包通过,如
iptables -A INPUT -m conntrack -p tcp --ctstate ESTABLISHED -j ACCEPT
。这个规则使用了-m conntrack
来调用连接跟踪模块,--ctstate ESTABLISHED
指定只接受状态为已建立连接的 TCP 数据包。
- Iptables 通过连接跟踪模块来跟踪网络连接的状态。这使得它能够根据连接的不同阶段(如 NEW、ESTABLISHED、RELATED)来制定规则。例如,在处理 TCP 连接时,对于一个新建立的连接(NEW),可以设置比较严格的规则进行检查;而对于已经建立的连接(ESTABLISHED),则可以相对宽松地允许数据包通过。一个典型的规则是允许已经建立的 TCP 连接的数据包通过,如
- IPsets 模块
- IPsets 是 Iptables 的一个强大的扩展,它允许管理员将多个 IP 地址或端口等对象组合成一个集合,然后在 Iptables 规则中使用这个集合。例如,你可以创建一个包含多个恶意 IP 地址的 IPset 集合,然后在 Iptables 规则中使用这个集合来一次性丢弃来自这些恶意 IP 地址的数据包。创建一个 IPset 可以使用
ipset
命令,如ipset create blacklist hash:ip
用于创建一个名为blacklist
的 IPset,类型为hash:ip
(用于存储 IP 地址)。然后可以将 IP 地址添加到这个集合中,如ipset add blacklist 192.168.1.100
。在 Iptables 规则中可以这样使用:iptables -A INPUT -m set -j DROP --match - set blacklist src
,这条规则会丢弃来自blacklist
集合中 IP 地址的数据包。
- IPsets 是 Iptables 的一个强大的扩展,它允许管理员将多个 IP 地址或端口等对象组合成一个集合,然后在 Iptables 规则中使用这个集合。例如,你可以创建一个包含多个恶意 IP 地址的 IPset 集合,然后在 Iptables 规则中使用这个集合来一次性丢弃来自这些恶意 IP 地址的数据包。创建一个 IPset 可以使用
相关文章:
Linux中的Iptables介绍
文章目录 iptables1. 概述2. **工作原理**3. 数据包处理流程与规则匹配顺序4. 常用的匹配条件5. 动作类型6. 基本命令7. 高级功能 iptables 1. 概述 Iptables 是一个用于配置 Linux 内核防火墙的用户空间工具。它能够对进出服务器的网络数据包进行过滤、修改和转发等操作&…...
14天学习微服务-->第2天:Spring Cloud深入与实践
第2天:Spring Cloud深入与实践 一、Spring Cloud核心组件深入 在微服务架构中,Spring Cloud 提供了一系列核心组件来支持服务的注册与发现、配置管理、负载均衡等功能。今天我们将深入学习其中的三个关键组件:Eureka/Nacos(服务…...
使用 Box2D 库开发愤怒的小鸟游戏
使用 Box2D 库开发愤怒的小鸟游戏 Box2D 是一个开源的 2D 物理引擎,广泛应用于游戏开发中,特别是在模拟物体的运动、碰撞、重力等方面。在本文中,我们将利用 Box2D 库开发一个简化版的 愤怒的小鸟 游戏。我们将一步步展示如何实现物理引擎的…...
C# ComboBox 控件属性
ComboBox 的基本属性 在C#中,ComboBox控件具有多种属性,这些属性可以帮助开发者更好地控制和管理控件的各个方面。以下是一些基本的ComboBox属性及其功能: 公共属性 AccessibilityObject:获取分配给该控件的AccessibleObject。 Ac…...
《keras 3 内卷神经网络》
keras 3 内卷神经网络 作者:Aritra Roy Gosthipaty 创建日期:2021/07/25 最后修改时间:2021/07/25 描述:深入研究特定于位置和通道无关的“内卷”内核。 (i) 此示例使用 Keras 3 在 Colab 中查看 GitHub …...
Linux:文件描述符fd、系统调用open
目录 一、文件基础认识 二、C语言操作文件的接口 1.> 和 >> 2.理解“当前路径” 三、相关系统调用 1.open 2.文件描述符 3.一切皆文件 4.再次理解重定向 一、文件基础认识 文件 内容 属性。换句话说,如果在电脑上新建了一个空白文档࿰…...
ToDesk设置临时密码和安全密码都可以当做连接密码使用
ToDesk 在各领域办公都已经是非常常见了 为了安全 ToDesk 设置了连接密码,想连接 需要输入远程码和连接密码 我们刚打开 系统默认给我们用的是临时密码,安全性确实很强 和定时Tokey一样,固定时间切换。 但是 如果我们要经常连接这个电脑&a…...
C#防止重复提交
C#防止重复提交 文章目录 C#防止重复提交前言防止重复提交的思路Web API 防止重复提交代码实现代码讲解使用方法 MVC防止重复提交总结 前言 当用户在前端进行提交数据时,如果网络出现卡顿和前端没有给出响应的话顾客通常都会狂点提交按钮,这样就很容易导…...
递归算法学习v2.2
46. 全排列 class Solution {List<List<Integer>> ret;List<Integer> path;boolean[] check;public List<List<Integer>> permute(int[] nums) {ret new ArrayList<>();path new ArrayList<>();check new boolean[nums.length…...
unity插件Excel转换Proto插件-ExcelToProtobufferTool
unity插件Excel转换Proto插件-ExcelToProtobufferTool **ExcelToProtobufTool 插件文档****1. 插件概述****2. 默认配置类:DefaultIProtoPathConfig****属性说明** **3. 自定义配置类****定义规则****示例代码** **4. 使用方式****4.1 默认路径****4.2 自定义路径**…...
manim(manimgl)安装教学-win11(2024-08)
manim 目前的两种版本:★★ 稍微捋一捋【项目中的 readme.md 十分重要】 manimgl 是 Grant Sanderson(YouTube频道 3Blue1Brown的作者)等人开发。 现在为 manimgl,在维护中。 manimCE 是2020年后的 manim 分支 manim community e…...
【语言处理和机器学习】概述篇(基础小白入门篇)
前言 自学笔记,分享给语言学/语言教育学方向的,但对语言数据处理感兴趣但是尚未入门,却需要在论文中用到的小伙伴,欢迎大佬们补充或绕道。ps:本文不涉及公式讲解(文科生小白友好体质)ÿ…...
脚本工具:PYTHON
Python 是一种高级编程语言,以其简洁清晰的语法和强大的功能被广泛应用于各种领域,包括自动化脚本编写、数据分析、机器学习、Web开发等。以下是一些关于使用 Python 编写脚本工具的基本介绍、常用库以及一些实用技巧总结。 这里写目录标题 基础知识安装…...
一文讲解Redis常见使用方式
1. 单机模式部署 适用场景: • 开发和测试环境,或者对高可用性要求不高的小型项目。 部署步骤: 1. 拉取 Redis 镜像: docker pull redis:latest 2. 运行 Redis 容器: docker run -d --name redis-single -p 637…...
Gin 源码概览 - 路由
本文基于gin 1.1 源码解读 https://github.com/gin-gonic/gin/archive/refs/tags/v1.1.zip 1. 注册路由 我们先来看一段gin代码,来看看最终得到的一颗路由树长啥样 func TestGinDocExp(t *testing.T) {engine : gin.Default()engine.GET("/api/user", f…...
【计算机网络】传输层协议TCP与UDP
传输层 传输层位于OSI七层网络模型的第四层,主要负责端到端通信,可靠性保障(TCP),流量控制(TCP),拥塞控制(TCP),数据分段与分组,多路复用与解复用等,通过TCP与UDP协议实现…...
iOS UIScrollView的一个特性
1如果UIScrollView 的contentSize.height > scrollView.bounds.size.height - scrollView.contentInset.top - scrollView.contentInset.bottom , 则scrollView就可以滚动,否则无法滚动 并且最大的滚动范围就是 contentSize.height - ( s…...
Docker 实现MySQL 主从复制
一、拉取镜像 docker pull mysql:5.7相关命令: 查看镜像:docker images 二、启动镜像 启动mysql01、02容器: docker run -d -p 3310:3306 -v /root/mysql/node-1/config:/etc/mysql/ -v /root/mysql/node-1/data:/var/lib/mysql -e MYS…...
python爬虫入门(实践)
python爬虫入门(实践) 一、对目标网站进行分析 二、博客爬取 获取博客所有h2标题的路由 确定目标,查看源码 代码实现 """ 获取博客所有h2标题的路由 """url "http://www.crazyant.net"import re…...
通过Ukey或者OTP动态口令实现windows安全登录
通过 安当SLA(System Login Agent)实现Windows安全登录认证,是一种基于双因素认证(2FA)的解决方案,旨在提升 Windows 系统的登录安全性。以下是详细的实现方法和步骤: 1. 安当SLA的核心功能 安…...
C 语言雏启:擘画代码乾坤,谛观编程奥宇之初瞰
大家好啊,我是小象٩(๑ω๑)۶ 我的博客:Xiao Xiangζั͡ޓއއ 很高兴见到大家,希望能够和大家一起交流学习,共同进步。* 这一课主要是让大家初步了解C语言,了解我们的开发环境,main函数,库…...
【Linux系统编程】—— 进程替换及其在操作系统中的应用与实现
文章目录 什么是进程替换?进程替换当中的接口单进程替换多进程的替换详解exec接口execlexeclpexecv 前言: 本篇博客将深入探讨进程替换的概念及其在操作系统中的作用。我们将介绍进程替换的基本原理,探讨操作系统如何通过进程的切换来实现任务…...
“裸奔”时代下该如何保护网络隐私
网络隐私的保护之道 引言 在这个信息爆炸的时代,网络已经深入到我们生活的每一个角落。你是否曾想过,在享受这些便利时,你的个人隐私正面临着严峻的挑战?网络隐私的现状警示着我们,信息泄露的事件屡见不鲜࿰…...
分类问题(二元,多元逻辑回归,费歇尔判别分析)spss实操
分类模型: 二分类和多分类: 对于二分类模型 ,我们将介绍逻辑回归和Fisher线性判别分析两种分类算法; 对于多分类模型,我们将简单介绍Spss中的多分类线性判别分析和多分类逻辑回归的操作步骤 二分类: 基于广义线性模型&#x…...
推荐一个开源的轻量级任务调度器!TaskScheduler!
大家好,我是麦鸽。 这次推荐一款轻量级的嵌入式任务调度器,目前已经有1.4K的star,这个项目比较轻量化,只有5个源文件,可以作为学习的一个开源项目。 核心文件 项目概述: 这是一个轻量级的协作式多任务处理&…...
Spring 核心技术解析【纯干货版】- IV:Spring 切面编程模块 Spring-Aop 模块精讲
随着软件开发技术的不断进步,面向切面编程(AOP)作为一种重要的编程思想,已经在现代开发中占据了重要地位。它通过将横切逻辑从业务逻辑中分离出来,使得代码更加清晰、易于维护。Spring AOP 作为 Spring 框架的核心模块…...
STM32之FreeRTOS开发介绍(十九)
STM32F407 系列文章 - freertos(十九) 目录 前言 一、简述 二、开源网址 三、原理及功能特性 1.原理简介 2.功能介绍 1.任务调度 2.任务管理 3.中断管理 4.消息队列 3.特点说明 4.优缺点 四、参考书籍 五、实现方式 总结 前言 FreeRTOS是…...
2024年美赛C题评委文章及O奖论文解读 | AI工具如何影响数学建模?从评委和O奖论文出发-O奖论文做对了什么?
模型假设仅仅是简单陈述吗?允许AI的使用是否降低了比赛难度?还在依赖机器学习的模型吗?处理题目的方法有哪些?O奖论文的优点在哪里? 本文调研了当年赛题的评委文章和O奖论文,这些问题都会在文章中一一解答…...
第14篇:从入门到精通:掌握python上下文管理器
第14篇:上下文管理器 内容简介 本篇文章将深入探讨Python中的上下文管理器(Context Manager)。您将了解上下文管理器的概念与用途,学习如何实现自定义的上下文管理器,以及如何使用contextlib模块来简化上下文管理器的…...
cuda从零开始手搓PB神经网络
cuda实现PB神经网络 基于上一篇的矩阵点乘,实现了矩阵的加减乘除、函数调用等。并且复用之前元编程里面写的梯度下降、Adam、NAdam优化方法。实现PB神经网络如下: #ifndef __BP_NETWORK_HPP__ #define __BP_NETWORK_HPP__ #include "matrix.hpp&quo…...
Java 大视界 -- Java 大数据物联网应用:数据处理与设备管理(八)
💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...
大模型之三十三- 开源Melo 语音合成
大模型之三十三- 开源Melo 语音合成 文本到语音(TTS)系统从基于基础音素的模型演变成复杂的端到端神经方法,这种方法可以直接将文本转换为语音。这一变革得益于深度学习的进步和计算能力的提升,已经在语音的自然度、韵律控制和跨语言能力方面取得了重大进展 。现代TTS系统…...
全同态加密理论、生态现状与未来展望(上)
《全同态加密理论、生态现状与未来展望》系列由lynndell2010gmail.com和mutourend2010gmail.com整理原创发布,分为上中下三个系列: 全同态加密理论、生态现状与未来展望(上):专注于介绍全同态加密理论知识。全同态加密…...
cursor重构谷粒商城02——30分钟构建图书管理系统【cursor使用教程番外篇】
前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。 本项目将基于谷粒商城…...
提升大语言模型的三大策略
1.概述 随着大语言模型(LLMs)在技术和应用上的不断发展,它们已经深刻地改变了我们与计算机的互动方式。从文本生成到语言理解,LLMs的应用几乎涵盖了各个行业。然而,尽管这些模型已展现出令人印象深刻的能力,…...
Ubuntu 24.04 LTS 安装 Docker Desktop
Docker 简介 Docker 简介和安装Ubuntu上学习使用Docker的详细入门教程Docker 快速入门Ubuntu版(1h速通) Docker 安装 参考 How to Install Docker on Ubuntu 24.04: Step-by-Step Guide。 更新系统和安装依赖 在终端中运行以下命令以确保系统更新并…...
mysql查看binlog日志
mysql 配置、查看binlog日志: 示例为MySQL8.0 1、 检查binlog开启状态 SHOW VARIABLES LIKE ‘log_bin’; 如果未开启,修改配置my.ini 开启日志 安装目录配置my.ini(mysql8在data目录) log-binmysql-bin(开启日志并指定日志前缀ÿ…...
2. Flink分区策略
一. Flink分区策略概述 Flink任务在执行过程中,一个流(stream)包含一个或多个分区(Stream partition),TaskManager中的一个slot的SubTask就是一个stream partition(流分区)。 Flink分区之间进行数据传递模式有两种。 1. one-to-one模式 数据不需要重新…...
Qt 5.14.2 学习记录 —— 십칠 窗口和菜单
文章目录 1、Qt窗口2、菜单栏设置快捷键添加子菜单添加分割线和菜单图标 3、工具栏 QToolBar4、状态栏 QStatusBar5、浮动窗口 QDockWidget 1、Qt窗口 QWidget,即控件,是窗口的一部分。在界面中创建控件组成界面时,Qt自动生成了窗口…...
微信小程序中实现背景图片完全覆盖显示,可以通过设置CSS样式来实现
wxml页面代码 <view class"beijing"></view>wxss样式代码 /* pages/beiJing/beiJing.wxss */ .beijing {background-image: url("https://www.qipa250.com/qipa.jpg");/* 定位:绝对定位 */position: absolute;/* 上下左右都定位到…...
亲测有效!如何快速实现 PostgreSQL 数据迁移到 时序数据库TDengine
小T导读:本篇文章是“2024,我想和 TDengine 谈谈”征文活动的优秀投稿之一,作者从数据库运维的角度出发,分享了利用 TDengine Cloud 提供的迁移工具,从 PostgreSQL 数据库到 TDengine 进行数据迁移的完整实践过程。文章…...
中国综合算力指数(2024年)报告汇总PDF洞察(附原数据表)
原文链接: https://tecdat.cn/?p39061 在全球算力因数字化技术发展而竞争加剧,我国积极推进算力发展并将综合算力作为数字经济核心驱动力的背景下,该报告对我国综合算力进行研究。 中国算力大会发布的《中国综合算力指数(2024年…...
51c~ONNX~合集1
我自己的原文哦~ https://blog.51cto.com/whaosoft/11608027 一、使用Pytorch进行简单的自定义图像分类 ~ONNX 推理 图像分类是计算机视觉中的一项基本任务,涉及训练模型将图像分类为预定义类别。本文中,我们将探讨如何使用 PyTorch 构建一个简单的自定…...
线下陪玩系统架构与功能分析
2015工作至今,10年资深全栈工程师,CTO,擅长带团队、攻克各种技术难题、研发各类软件产品,我的代码态度:代码虐我千百遍,我待代码如初恋,我的工作态度:极致,责任ÿ…...
海康工业相机的应用部署不是简简单单!?
作者:SkyXZ CSDN:SkyXZ~-CSDN博客 博客园:SkyXZ - 博客园 笔者使用的设备及环境:WSL2-Ubuntu22.04MV-CS016-10UC 不会吧?不会吧?不会还有人拿到海康工业相机还是一脸懵叭?不会还有人…...
SAP POC 项目完工进度 - 收入确认方式【工程制造行业】【新准则下工程项目收入确认】
1. SAP POC收入确认基础概念 1.1 定义与原则 SAP POC(Percentage of Completion)收入确认方式是一种基于项目完工进度来确认收入的方法。其核心原则是根据项目实际完成的工作量或成本投入占预计总工作量或总成本的比例,来确定当期应确认的收…...
【Elasticsearch 】 聚合分析:聚合概述
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
【算法】二分
二分 1.二分查找1.在排序数组中查找元素的第一个和最后一个位置2.牛可乐和魔法封印3.A-B 数对4.烦恼的高考志愿 2.二分答案1.木材加工2.砍树3.跳石头 1.二分查找 当我们的解具有二段性(根据最终答案所在的位置判断是否具有二段性)时,就可以使…...
如何将自己本地项目开源到github上?
环境: LLMB项目 问题描述: 如何将自己本地项目开源到github上? 解决方案: 步骤 1: 准备本地项目 确保项目整洁 确认所有的文件都在合适的位置,并且项目的 README.md 文件已经完善。检查是否有敏感信息࿰…...
编辑器Vim基本模式和指令 --【Linux基础开发工具】
文章目录 一、编辑器Vim 键盘布局二、Linux编辑器-vim使用三、vim的基本概念正常/普通/命令模式(Normal mode)插入模式(Insert mode)末行模式(last line mode) 四、vim的基本操作五、vim正常模式命令集插入模式从插入模式切换为命令模式移动光标删除文字复制替换撤销上一次操作…...