iptables详解
华子目录
- 什么是`防火墙`
- 分类
- `netfilter`(`数据包过滤`)
- 定义
- `netfilter`分析内容
- 防火墙无法完成的任务
- `netfilter`策略管理工具
- `netfilter`的`5类hook函数`
- 防火墙规则
- 策略匹配原则
- `iptables`
- `iptables`流量`处理动作`
- `iptables表`
- `5种规则表`
- `安装iptables`
- `iptables策略文件`
- `iptables命令`的`语法格式`以及`常用参数`
- 格式
- 参数
- 示例
- 查看策略`iptables -nL --line`
- 清空规则
- 修改策略
- 修改默认策略
- 添加链
- 修改链名
- 删除链
- 部署`nginx`,拒绝访问`80端口`
- 拒绝`来源`为`172.25.254.100`访问`80端口`
- 只能让`来源`为`172.25.254.100`访问`80端口`
- `iptables`的`状态跟踪`(只能访问`22`和`80`端口)
- 利用`iptables`搭建`Linux路由器`
什么是防火墙
防火墙时位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进出

火墙是系统内核上的一个模块netfilter(数据包过滤机制)- 通过
netfilter来管理kernel space(内核空间)的策略
- 没有
火墙时,流量直接访问内核管理的服务- 有
火墙时,会在内核上开一个内核空间(记录了什么流量可以通过,什么流量不可以通过)。负责往内核空间里面写东西的是netfilter- 一个
linux内核上有2个网卡,只有开启内核路由转发功能,2个网卡才能通信
#临时开启内核路由转发
[root@server1 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
分类
硬件防火墙:由厂商设计好的主机硬件,其操作系统主要以提供数据包数据的过滤机制为主,并去掉不必要的功能软件防火墙:保护系统网络安全的一套软件
netfilter(数据包过滤)
定义
netfilter是一个工作在Linux内核的网络数据包处理框架,用于分析进入主机的网络数据包- 将
数据包的头部数据(硬件地址,软件地址,TCP,UDP,ICMP等)提取出来进行分析,来决定该连接为放行还是抵挡 netfilter分析OSI七层协议的2,3,4层
netfilter分析内容
拒绝让Internet的数据包进入主机的某些端口拒绝某些来源IP的数据包进入拒绝让带有某些特殊标志(flag)的数据包进入,如:带有SYN的主动连接标志- 分析
硬件地址(MAC地址)决定是否连接 - 可以做
nat地址转换
防火墙无法完成的任务
防火墙并不能杀毒或清除木马程序(假设主机开放了www服务,那么防火墙的设置一定是要将www服务的port开放给client端。假设www服务器有漏洞,或者请求www服务的数据包本身就是病毒的一部分时,防火墙时阻止不了的)防火墙无法阻止来自内部的攻击(防火墙对于内部的规则设置通常比较少,所以就很容易造成内部员工对于网络滥用的情况)
netfilter策略管理工具
netfilter这个内核网络栈过滤框架的使用需要通过iptables或nftables来进行
与netfilter进行交互工具常用种类
iptables服务使用iptables交互,rhel6之前系统默认使用此服务,管理手段丰富,配置比较复杂firewalld服务使用nftables交互,rhel6之后的版本默认使用此服务,配置类似windows火墙,功能模块度高,使用简单

iptables与firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的管理工具,即只是一种服务,而真正使用规则干活的是内核的netfilter
netfilter的5类hook函数
hook函数也叫规则链

电脑是客户端
input链:位于流量经过路由之后,并且目的ip是本机ipoutput链:由本机发出的流量,并且在路由之前forward链:位于在流量路由之后,目的ip不是本机ipprerouting链:位于路由之前,流量一致性检查之后postrouting链:所有即将离开本机的流量



防火墙规则
通(放行)堵(阻止,拒绝)拒绝:返回信息后拒绝阻止:直接丢包
策略匹配原则
防火墙会从上至下的顺序来读取配置的策略- 在
找到匹配项后就立即结束配置工作并去执行匹配项中定义的行为(即放行或阻止) - 如果在
读取完所有的策略后没有匹配项,就去执行默认的策略
iptables
iptables会从上至下的顺序来读取配置的策略- 在
找到匹配项后就立即结束配置工作并去执行匹配项中定义的行为(即放行或阻止) - 如果在
读取完所有的策略后没有匹配项,就去执行默认的策略 iptables的规则默认保存在内存中,如果需要永久保存需要把策略保存到/etc/sysconfig/iptables中
#永久保存
[root@server1 ~]# service iptables save
iptables流量处理动作
当规则链匹配后应采用以下几种动作来处理匹配的流量
accept:允许流量通过reject:拒绝流量通过,拒绝后回复拒绝信息log:记录日志信息drop:拒绝流量通过,流量丢弃不回复
iptables表
表中可以有多种hook函数,每个规则链中里可以有多个策略
5种规则表
raw表:第一优先级的表,不会对数据包进行跟踪和nat转换,使用output,prerouting,对应的动作为notrackmangle表:第二优先级的表,主要用于修改数据包的TOS(Type Of Service,服务类型)、TTL(Time To Live,生存周期)值以及为数据包设置Mark标记,以实现Qos以及策略路由等- 由于需要
相应的路由设备支持,因此应用并不广泛,包含全部5个规则链
- 由于需要
nat表:第三优先级的表,网络地址转换表,用于修改源和目的地址,分snat(源地址转换)和dnat(目的地址转换)。包含三个规则链:output,prerouting,postrouting(和内核无关的数据包,主要做地址转换)filter表:第四优先级的表,用于对数据包过滤(外网进入内网时),根据具体的规则决定是否放行该数据包(如drop,accept,reject),包含三个规则链:input,forward,forward(经过内核处理过的所有网络包:input,output,forward)- 所谓的
防火墙其实基本上是指这张表上的过滤规则,常用
- 所谓的
security表:最不常用的表- 通常我们说的
iptables只有4张表,security表是新加入的特性,用于在数据包上应用selinux
- 通常我们说的
安装iptables
RHEL9,Centos7中默认使用的是firewalld,且与iptables之间有冲突,如果需要使用iptables需要先停止firewalld再进行安装
[root@server1 ~]# systemctl stop firewalld[root@server1 ~]# systemctl disable firewalld#锁服务,解锁服务使用unmask
[root@server1 ~]# systemctl mask firewalld.service
[root@server1 ~]# yum install iptables-services -y
[root@server1 ~]# systemctl enable --now iptables[root@server1 ~]# systemctl is-active iptables
active
iptables策略文件
规则链存储文件在/etc/sysconfig/iptables
前三行为注释- 显示的是
filter表的规则链
[root@server1 ~]# cat /etc/sysconfig/iptables
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
iptables命令的语法格式以及常用参数
永久保存策略
[root@server1 ~]# service iptables save #保存设置的规则
# 注意:保存设置的规则,否则重启后会恢复默认设置
格式
[root@server1 ~]# iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 控制动作#-A添加策略
#-I在指定位置添加策略
#-D删除策略
#-R修改策略
#-j控制动作
参数
| 参数 | 作用 |
|---|---|
-t | 对指定的表进行操作,表必须是raw,nat,filter,mangle,security中的一个,默认是filter |
-p | 指定要匹配的数据包协议类型 |
-s | 匹配源地址ip/mask,当后面没有mask,源ip是一个地址(比如192.168.1.1);当有mask时,表示一个网段(比如192.168.1.0/24) |
-d | 匹配目的地址ip/mask |
-i 网卡名 | 匹配从这块网卡流入的数据,只对input,forward,prerouting链起作用。如果没有指定此选项,则表示可以流入任何一个网卡 |
-o 网卡名 | 匹配从这块网卡流出的数据,只对nat表中的链起作用。如果没有指定此选项,则表示可以从任何一个网卡流出 |
-L | 列出规则链(chain)上的所有规则,如果没有指定链,列出表上所有链的所有规则 |
-A | 在指定规则链的末尾加入新策略 |
-I num | 在指定规则链的指定位置插入策略,如果num为1,表示在头部插入,num为2,表示在第二条策略位置处插入 |
-D num | 删除指定位置的策略 |
-R num | 替换/修改第几条策略 |
-P | 设置指定链的默认策略,只有内置的链才可以设置,用户自定义的链不允许设置 |
-F | 清空所有策略 |
-N | 创建新链 |
-X | 删除指定的链,这个链必须没有被其它任何策略引用,而且这条链上必须没有任何策略。如果没有指定链名,则会删除该表中所有非内置的链 |
-E | 修改链名 |
-Z | 把指定链,或者表中的所有链上的所有计数器清零 |
-j | 满足某条件时该执行什么样的动作 |
-h | 显示帮助信息 |
示例
查看策略iptables -nL --line
[root@server1 ~]# iptables -t filter -nL --line# -n:显示源# -L:写在最后,列出所有规则# --line:增加行号

[root@server ~]# iptables -nvxL --line
# 参数释义# -n:显示源# -v:详细信息# -x:单位自动转换为KB\MB# -L:写在最后,列出所有规则# --line:增加行号
[root@server ~]# iptables -nvxL --line
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source
destination
1 159 24271 ACCEPT 0 -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 0 0 ACCEPT 1 -- * * 0.0.0.0/0 0.0.0.0/0
3 0 0 ACCEPT 0 -- lo * 0.0.0.0/0 0.0.0.0/0
4 0 0 ACCEPT 6 -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 19 1843 REJECT 0 -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source
destination
1 0 0 REJECT 0 -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain OUTPUT (policy ACCEPT 143 packets, 12422 bytes)
num pkts bytes target prot opt in out source
destination# 显示释义# num:规则的行号# pkts:数据包数量# bytes:数据包字节数# target:动作(放行、拒绝)# port:端口# in:入站网卡# out:出站网卡
清空规则
# 清空内存中的规则(清空所有表的所有链)
[root@server ~]# iptables -F
修改策略
-R修改策略
[root@server1 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
REJECT tcp -- !172.25.254.100 0.0.0.0/0 tcp dpt:80 reject-with icmp-port-unreachable
[root@server1 ~]# iptables -R INPUT 1 -p tcp -s 172.25.254.100 --dport 80 -j REJECT[root@server1 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
REJECT tcp -- 172.25.254.100 0.0.0.0/0 tcp dpt:80 reject-with icmp-port-unreachable
修改默认策略
-P修改默认策略
[root@server1 ~]# iptables -nL

[root@server1 ~]# iptables -P FORWARD DROP[root@server1 ~]# iptables -nL

添加链
-N添加链
[root@server1 ~]# iptables -N huazi[root@server1 ~]# iptables -nL

修改链名
-E修改链名
[root@server1 ~]# iptables -E huazi HUAZI[root@server1 ~]# iptables -nL

删除链
-X删除链
[root@server1 ~]# iptables -X HUAZI[root@server1 ~]# iptables -nL

部署nginx,拒绝访问80端口
[root@server1 ~]# yum install nginx -y#先清空策略
[root@server1 ~]# iptables -F#添加策略
[root@server1 ~]# iptables -A INPUT -p tcp --dport 80 -j REJECT[root@server1 ~]# iptables -nL

[root@server1 ~]# echo hello world > /usr/share/nginx/html/index.html[root@server1 ~]# systemctl enable --now nginx
[root@server1 ~]# curl 172.25.254.100
curl: (7) Failed to connect to 172.25.254.100 port 80: 拒绝连接
#删除策略后
[root@server1 ~]# iptables -D INPUT 1[root@server1 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destinationChain FORWARD (policy ACCEPT)
target prot opt source destinationChain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@server1 ~]# curl 172.25.254.100
hello world
拒绝来源为172.25.254.100访问80端口
#先清空
[root@server1 ~]# iptables -F[root@server1 ~]# iptables -A INPUT -p tcp -s 172.25.254.100 --dport 80 -j REJECT[root@server1 ~]# iptables -nL

[root@server1 ~]# curl 172.25.254.100
curl: (7) Failed to connect to 172.25.254.100 port 80: 拒绝连接

#删除策略
[root@server1 ~]# iptables -D INPUT 1
[root@server1 ~]# curl 172.25.254.100
hello world
只能让来源为172.25.254.100访问80端口
!取反
[root@server1 ~]# iptables -F[root@server1 ~]# iptables -A INPUT -p tcp ! -s 172.25.254.100 --dport 80 -j REJECT[root@server1 ~]# iptables -nL

[root@server1 ~]# curl 172.25.254.100
hello world

#删除
[root@server1 ~]# iptables -D INPUT 1
[root@server1 ~]# curl 172.25.254.100
hello world

iptables的状态跟踪(只能访问22和80端口)
- 在
没有状态跟踪之前
[root@server1 ~]# iptables -F
[root@server1 ~]# iptables -A INPUT -i lo -j ACCEPT
[root@server1 ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@server1 ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
[root@server1 ~]# iptables -A INPUT -j REJECT
[root@server1 ~]# iptables -F

- 但是
这样写会消耗大量的cpu等资源,我们应该对流量进行状态跟踪,只对第一次访问的流量做检测
[root@server1 ~]# iptables -F
[root@server1 ~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@server1 ~]# iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
[root@server1 ~]# iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
[root@server1 ~]# iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
[root@server1 ~]# iptables -A INPUT -j REJECT
[root@server1 ~]# iptables -nL

利用iptables搭建Linux路由器
准备2台主机
- 一台
server1,一个nat网卡,一个仅主机网卡 - 一台
server2,一个仅主机网卡
server1充当server2的路由器
server1ip配置

[root@server1 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
uuid=3fe4f788-e5f3-4046-8a3e-6cdfb8098aab
type=ethernet
interface-name=eth0[ethernet][ipv4]
address=172.25.254.100/24,172.25.254.2
dns=114.114.114.114;
method=manual[ipv6]
addr-gen-mode=default
method=auto[proxy][root@server1 ~]# cat /etc/NetworkManager/system-connections/eth1.nmconnection
[connection]
id=eth1
type=ethernet
interface-name=eth1[ethernet][ipv4]
address=192.168.0.100/24
method=manual[ipv6]
addr-gen-mode=default
method=auto[proxy]
[root@server1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.254.2 0.0.0.0 UG 100 0 0 eth0
172.25.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1
server2ip配置
[root@server2 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
uuid=3fe4f788-e5f3-4046-8a3e-6cdfb8098aab
type=ethernet
interface-name=eth0[ethernet][ipv4]
address=192.168.0.200/24,192.168.0.100
dns=114.114.114.114;
method=manual[ipv6]
addr-gen-mode=default
method=auto[proxy]

[root@server2 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.100 0.0.0.0 UG 100 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
server1开启内核路由功能
#临时开启
[root@server1 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
内网访问外网
[root@server1 ~]# iptables -F
[root@server1 ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.100
[root@server1 ~]# iptables -t nat -nL

#这时server2就可以上网了
[root@server2 ~]# ping www.baidu.com
PING www.a.shifen.com (110.242.68.4) 56(84) 比特的数据。
64 比特,来自 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=127 时间=106 毫秒
64 比特,来自 110.242.68.4 (110.242.68.4): icmp_seq=2 ttl=127 时间=35.3 毫秒
64 比特,来自 110.242.68.4 (110.242.68.4): icmp_seq=3 ttl=127 时间=70.6 毫秒
外网访问内网
[root@server1 ~]# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 192.168.0.200
[root@server1 ~]# iptables -t nat -nL


相关文章:
iptables详解
华子目录 什么是防火墙分类netfilter(数据包过滤)定义netfilter分析内容 防火墙无法完成的任务netfilter策略管理工具netfilter的5类hook函数防火墙规则策略匹配原则iptablesiptables流量处理动作iptables表5种规则表 安装iptablesiptables策略文件 ipta…...
Edge SCDN深度解析,边缘安全加速的创新实践
边缘安全加速(Edge Secure Content Delivery Network,SCDN)是酷盾安全推出的边缘集分布式 DDoS 防护、CC 防护、WAF 防护、BOT 行为分析为一体的安全加速解决方案。通过边缘缓存技术,智能调度使用户就近获取所需内容,为…...
solidworks常见问题已解决
solidworks常见问题已解决 问题1:step总是提示默认模板无效。问题2:异型孔向导”时出现了“找不到标准数据库。问题3:找不到CalloutForm.txt文件,标注将由几何体定义。问题5:工程图显示文件损坏不能保存。问题6&#x…...
vCenter开启HA报错
昨天给客户开启vCenter开启HA功能报错,报错的内容比较多 博通官方给出解决办法 https://knowledge.broadcom.com/external/article/318929/error-vsphere-ha-agent-cannot-be-correct.html 常规的解决办法 1.关闭集群HA,再次开启HA 2.主机进入维护模式,再次加入…...
在 Ubuntu 中 make 是否是系统自带的?怎么样查看Linux系统中是否有make?
make 命令 并不是所有 Ubuntu 系统都默认安装的,但它通常是开发工具链的一部分,许多开发者会在安装系统后配置它。make 是一个非常重要的构建工具,用于自动化编译和构建过程,特别是在编译软件或内核时。 make 的来源 make 是一个…...
js:我要在template中v-for循环遍历这个centrerTopdata,我希望自循环前面三个就可以了怎么写
问: 我按在要在template中v-for循环遍历这个centrerTopdata,我希望自循环前面三个就可以了怎么写? 回答: 问: <div v-for"(item, index) in centrerTopdata.slice(0, 3)" :key"index"> d…...
前端使用 Cursor 的最佳助手 - PromptCoder
前端使用 Cursor 的最佳助手 - PromptCoder 你是否正在使用 Cursor 进行前端开发,却苦于繁琐的代码生成和原型图的还原?你是否渴望一个更高效、更智能的工具来提升你的开发效率?那么,你一定不能错过 PromptCoder! Pr…...
深入了解 Spring IOC,AOP 两大核心思想
文章目录 一、Spring 基础 - 控制反转(IOC)1.1. 引入1.2. 如何理解 IOCSpring Bean 是什么?IoC 是什么?IoC 能做什么?IoC 和 DI 是什么关系? 1.3. IoC 配置的三种方式xml 配置Java 配置注解配置 1.4. 依赖注…...
QT从入门到精通——Qlabel介绍与使用
1. QT介绍——代码测试 Qt 是一个跨平台的应用程序开发框架,广泛用于开发图形用户界面(GUI)应用程序,也支持非图形应用程序的开发。Qt 提供了一套工具和库,使得开发者能够高效地构建高性能、可移植的应用程序。以下是…...
华为HarmonyOS NEXT 原生应用开发:鸿蒙中组件的组件状态管理、组件通信 组件状态管理小案例(好友录)!
文章目录 组件状态管理一、State装饰器1. State装饰器的特点2. State装饰器的使用 二、Prop装饰器(父子单向通信)1. Prop装饰器的特点2. Prop装饰器的使用示例 三、Link装饰器(父子双向通信)1. Link装饰器的特点3. Link使用示例 四…...
node.js 环境配置
node_global下创建node_modules 系统变量 新建NODE_Path -> node_modules的路径 用户变量 编辑Path 编辑…\npm为 node_modules的路径 系统变量 Path 新建 %NODE_PATH% CMD测试 npm install express -g 报错 npm error code ETIMEDOUT源的连接超时,没用了要换源 …...
高并发数据采集场景下Nginx代理Netty服务的优化配置
高并发数据采集场景下,要优化Nginx反向代理来支持多个Netty数采服务并保证稳定的性能,可以从以下几个方面对Nginx进行优化配置。 直连模式(直接通过 Nginx 处理与后端 Netty 服务的连接,而不作为反向代理),…...
【C++算法】40.模拟_N 字形变换
文章目录 题目链接:题目描述:解法C 算法代码: 题目链接: 6. N 字形变换 题目描述: 解法 解法一:模拟 a,b,c,d,e,f,g...... n4 弄个矩阵放进去,最后从左往右读取。 解法二:模拟优化-…...
【云计算】虚拟化技术
目录 1. 虚拟化技术在云计算中的那些地方发挥了关键作用? 2. 比较VMare,Xen等虚拟化产品的关键技术,以及对云计算技术提供的支持? 3. 服务器虚拟化,存储虚拟化和网络虚拟化都有哪些实现方式? 4. 讨论桌面…...
手机租赁系统开发指南一站式服务流程解析
内容概要 手机租赁系统的开发是一个复杂但有趣的过程,像搭建乐高一样,只要找到合适的模块,就能打造出一个宾至如归的租赁平台。在这部分,我们将对开发流程的整体结构进行简要概述,并指出每个环节的重要性。 首先&…...
【机器学习】—时序数据分析:机器学习与深度学习在预测、金融、气象等领域的应用
云边有个稻草人-CSDN博客 目录 引言 1. 时序数据分析基础 1.1 时序数据的特点 1.2 时序数据分析的常见方法 2. 深度学习与时序数据分析 2.1 深度学习在时序数据分析中的应用 2.1.1 LSTM(长短期记忆网络) 2.2 深度学习在金融市场预测中的应用 2…...
OBS + SRS:打造专业级直播环境的入门指南
OBS SRS:打造专业级直播环境的入门指南 1. OBS简介2. OBS核心功能详解2.1 场景(Scenes)管理2.2 源(Sources)控制2.3 混音器功能2.4 滤镜与特效2.5 直播控制面板 3. OBS推流到SRS服务器配置指南3.1 环境准备3.2 OBS推流…...
收银系统源码-会员管理
会员制早已成为门店经营首选的营销工具,尤其是针对连锁多门店会员管理尤为重要。 必然要求门店的收银系统需要支持会员管理,能提供多种会员权益; 1.会员类型 收银系统支持常规会员、plus付费会员、可绑定实体卡; plus会员&…...
MongoDB深化与微软的合作,新增人工智能和数据分析集成和微软 Azure Arc支持
日前,在微软Ignite技术大会上,MongoDB公司宣布面向MongoDB与微软共同客户推出三项新功能,双方协作更进一步。首先,需要构建由检索增强生成 (RAG) 技术驱动的应用程序的客户,现在可以选择MongoDB Atlas作为微软Azure AI…...
对流层路径延迟对SAR方位压缩的影响(CSDN_20240301)
目录 仿真参数 方位向脉冲压缩与高阶多普勒参数的关系 仿真结果 2m分辨率 1m分辨率 0.5m分辨率 0.3m分辨率 0.2m分辨率 0.1m分辨率 0.05m分辨率 小结 对流层路径延迟对方位脉冲压缩的影响 仿真参数 地球参数 赤道半径(m) 6378140 极半径&a…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
全面解析数据库:从基础概念到前沿应用
在数字化时代,数据已成为企业和社会发展的核心资产,而数据库作为存储、管理和处理数据的关键工具,在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理,到社交网络的用户数据存储,再到金融行业的交易记录处理&a…...
React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
React 实战项目:微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇!在前 29 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...
当下AI智能硬件方案浅谈
背景: 现在大模型出来以后,打破了常规的机械式的对话,人机对话变得更聪明一点。 对话用到的技术主要是实时音视频,简称为RTC。下游硬件厂商一般都不会去自己开发音视频技术,开发自己的大模型。商用方案多见为字节、百…...
