麒麟操作系统服务架构保姆级教程(十四)iptables防火墙四表五链和防火墙应用案例

news2025/7/17 12:30:02

  如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情

        防火墙在运维工作中有着不可或缺的重要性。首先,它是保障网络安全的关键防线,通过设置访问控制规则,可精准过滤非法网络流量,有效阻挡外部黑客攻击、恶意扫描以及病毒入侵等,让运维人员无需时刻忧心外部威胁对业务造成破坏,确保网络及系统稳定运行。其次,在合规管理方面能发挥重要作用,依据各行业的网络安全相关要求,协助运维人员制定相应访问策略,使网络配置符合法规政策,避免因不合规而面临处罚,助力企业顺利通过安全审计。再者,能帮助实现网络分区管理,划分出不同安全区域,便于对企业内部不同部门、业务模块进行精细化的网络访问控制,防止内部风险扩散,优化整体运维架构。最后,当网络出现异常时,防火墙记录的详细日志可提供关键线索,方便运维人员快速定位故障源头,高效解决问题,恢复业务正常运转,所以我们今天介绍一下iptables~~~~

目录

一、防火墙介绍

二、IPtables四表五链

1、四表

2、五链

三、iptables命令

四、iptables防火墙案例

案例1、禁止访问10.0.0.61的22端口

案例2:删除规则

案例3: 限制来源IP地址

案例4:限制网段

案例5:限制80端口

案例6:限制10.0.0.7不能访问61的80端口

案例7:对源IP进行取反

案例8:修改默认的规则

案例9:多端口配置

案例10:禁ping

案例11:iptables的保持与恢复

案例12: 使用IPtables实现共享上网

服务端设置:

客户端设置:

案例13.IP地址映射

💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!

👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!

🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对Linux感兴趣的朋友,让我们一起进步,共同提升!

一、防火墙介绍

Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包进行过滤和限制,属于典型的包过滤防火墙。它基于内核编码实现,具有非常稳定的性能和高效率,也因此得到了广泛的应用。防火墙是一种位于内部网络与外部网络之间的网络安全系统,旨在保护内部网络免受未经授权的访问以及潜在的网络威胁,以下是关于防火墙的介绍:
​
### 基本功能
1. 访问控制:依据预设的规则,对进出网络的流量进行筛选,决定哪些数据包可以通过,哪些需要被拦截。例如,只允许特定 IP 地址段的设备访问内部某服务器的特定端口,而拒绝其他来源的访问请求,以此严格把控网络访问权限。
2.防止非法入侵:能够识别并阻止外部网络中的恶意攻击行为,像常见的黑客扫描、端口入侵尝试等。通过检测异常的网络连接模式、可疑的数据包特征等,将潜在的入侵行为阻挡在网络外部,保障内部网络环境的安全稳定。
3.网络隔离:可以把不同安全级别的网络区域分隔开来,比如将企业内部的办公区网络、研发区网络、服务器区网络等根据各自的安全需求进行划分,限制不同区域间的非必要网络通信,防止安全风险在内部网络间扩散。
​
### 主要类型
1. 包过滤防火墙:工作在网络层,基于数据包的源 IP 地址、目的 IP 地址、端口号、协议类型等信息进行过滤。它会检查每个经过的数据包,对照预先配置好的规则表来决定是放行还是丢弃该数据包,iptables 就是典型的基于这种机制的工具,这种防火墙处理速度相对较快,但对应用层的内容理解有限。
2. 状态检测防火墙:不仅会检查数据包的基本信息,还会跟踪网络连接的状态。比如对于一个已经建立的 TCP 连接,后续属于该连接的数据包会依据其状态被快速放行,它能更智能地识别正常的网络通信流程以及异常的连接尝试,相比单纯的包过滤防火墙安全性更高,应用场景也更为广泛。
3. 应用层防火墙:也被称作代理防火墙,运行在应用层,能够深入理解应用层协议的内容。例如,对于 HTTP 请求,它可以检查请求的具体内容、URL 等是否符合安全规定,对外隐藏内部网络的真实情况,用户的网络请求先经过它进行代理转发,起到了很好的安全防护和隐私保护作用,但由于要解析应用层内容,其处理性能往往相对较低。
​
### 部署位置与应用场景
1. 边界部署:常被部署在企业网络、园区网络等与外部互联网的连接处,作为第一道防线,阻挡来自外部网络的各种安全威胁,保护内部众多的网络资源,如服务器、办公终端等。
2. 内部网络隔离:在大型网络内部,不同部门、不同安全等级区域之间也会部署防火墙,实现内部网络的安全分区管理,避免内部的误操作、恶意行为等对关键区域造成影响,像防止普通办公区的网络问题波及到存放核心数据的服务器区。
​
### 发展趋势
1. 智能化:随着人工智能和机器学习技术的发展,防火墙能够通过分析大量的网络流量数据,自动学习和识别新出现的网络威胁模式,不断优化自身的防护规则,提升应对未知威胁的能力。
2. 云化:在云计算环境蓬勃发展的当下,云防火墙应运而生,它可以更好地适配云环境下的动态网络架构、多租户等特点,为云资源的安全防护提供有力保障,方便企业在云端进行灵活的网络安全配置。
总之,防火墙在保障网络安全方面起着至关重要的作用,是构建安全网络环境不可或缺的一环。
​
以下是一些市面上常见的防火墙产品
### 硬件防火墙产品
1、华为 USG6000E 系列:性能稳定可靠,具备强大的安全防护能力,可有效抵御多种网络攻击。例如 USG6306 支持 4GE+2Combo 固定接口,IPSec 吞吐量性能良好,适用于中小企业等网络环境。
2、深信服 AF 系列:如 AF-1000-FH1300B,功能丰富,界面友好,提供应用层防护、入侵检测、防病毒等多种安全功能,适用于不同规模的企业网络。
3、锐捷网络 RG-WALL 1600 系列:以 RG-WALL 1600-S3200 为例,支持多种 VPN 类型和加密算法,具备状态检测包过滤、应用层检测等功能,可有效提升网络安全性和数据传输效率。
4、H3C SecPath F1000 系列:像 F1000-AK1150 支持多种 VPN 协议和 SOP 虚拟防火墙技术,能防御多种网络攻击,可优化网络应用,保障网络流畅性和安全性。
5、天融信 NGFW4000-UF:在稳定性、性能和合规性方面表现突出,主要服务于政府、金融、电信等对网络安全要求较高的行业,能提供全面的网络安全防护。
​
### 软件防火墙产品
1、ZoneAlarm Pro:可以防止特洛伊木马程序等恶意软件的入侵,用户可方便地设置哪些软件可以访问网络,基本版免费,适合个人用户和小型企业。
2、Outpost Firewall Pro:功能强大,包括广告和图片过滤、内容过滤、DNS 缓存等功能,不需复杂配置即可使用,且是市场上第一个支持插件的防火墙,可扩展性强。
3、Norton Personal Firewall:由 Norton 公司出品,能提供完整的网络安全防护,防止重要资料被窃,可过滤网站,阻隔 Java applets、ActiveX 控制等网络入侵方式。
4、McAfee Personal Firewall Plus:可以在电脑与互联网之间建立屏障,防止潜在的黑客探测及攻击,让防毒工作更完备,还能提供有关可疑网络流量的详细资讯。
5、Sygate Personal Firewall Pro:简单易用,适合网络中的单机用户防止入侵者非法进入系统,可从系统内部进行保护,提供安全访问和访问监视功能,检测到入侵能立即发出警报。
​
### 云防火墙产品
1、深信服云防火墙:能够与深信服的其他云安全产品进行深度融合,提供一站式的云安全解决方案,支持多租户管理,可根据不同租户的需求定制安全策略。
2、天融信云防火墙:在云环境下具备强大的安全防护能力,可提供网络访问控制、入侵检测、漏洞扫描等多种安全服务,保障云资源的安全。
3、飞塔云防火墙:具有创新性、智能性和灵活性,能适应云环境的动态变化,可实现自动化的安全策略部署和管理,为云应用提供安全保障。
4、山石网科云防火墙:基于其高性能、高可靠的技术优势,为云平台提供全面的安全防护,支持对云平台中的虚拟机、容器等资源进行细粒度的访问控制。
5、阿里云防火墙和阿里云盾web防火墙:阿里云防火墙,云原生的云上边界网络安全防护产品,可提供统一的互联网边界、NAT 边界、VPC 边界、主机边界流量管控与安全防护。阿里云盾web防火墙主要为网站提供安全保护的云服务,主要针对 Web 应用层面的安全防护。
​
​
###iptables防火墙
今天给大家介绍一下iptables防火墙,iptables 是 Linux 操作系统中一个功能强大且应用广泛的防火墙工具,主要用于对进出系统的网络数据包进行管控,依据设定的规则来决定是允许数据包通过、拒绝数据包,还是对数据包进行地址转换、修改等操作,以此构建起系统的网络安全防护机制以及实现特定的网络功能配置,contOS6以前的linux系统默认使用的iptables防火墙,contOS7及以后版本,默认使用firewalld防火墙;麒麟操作系统同时内置了iptables防火墙和 firewalld防火墙同时使用,之前咱们搭建LNMP架构时因为这个被坑过,只关闭了一个导致80端口无法访问。

二、IPtables四表五链

1、四表

表名称功能内核模块
filter表负责过滤功能,防火墙iptables filter
nat表(Network,Adffress,Translation)用于网络地址转换(IP,端口)iptables net
mangle表拆解报文,做出修改,封装报文iptables mangle
raw表关闭nat表上启用的连接追踪机制,确定是否对该数据包进行状态跟踪iptable raw

2、五链

名称功能
PREROUTING数据包进入路由之前
INPUT目的地址为本机
OUTPUT原地址为本机,向外发送
FORWARD实现转发
POSTROUTING发送到网卡之前

三、iptables命令

查看默认防火墙规则:
[root@m01 ~]#iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
​
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
​
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 
清空默认的规则
[root@m01 ~]#iptables -F
[root@m01 ~]#iptables -Z
[root@m01 ~]#iptables -X
[root@m01 ~]#iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
​
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
​
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   

四、iptables防火墙案例

案例1、禁止访问10.0.0.61的22端口
[root@m01 ~]#iptables -I INPUT -p tcp --dport 22 -j DROP
[root@m01 ~]#
Connection closed.
案例2:删除规则
[root@m01 ~]# iptables -I INPUT -s 10.0.0.1 -j ACCEPT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  10.0.0.1             0.0.0.0/0           
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
​
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
​
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 
删除规则的方法
1,序号删除
查看编号信息
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  10.0.0.1             0.0.0.0/0           
2    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
删除INPUT链的第二条规则
[root@m01 ~]#iptables -D INPUT 2
[root@m01 ~]#iptables -nL --line
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  10.0.0.1             0.0.0.0/0 
2,将I或者A替换成D(禁止61的22端口已经删了,只能删放通的)
[root@m01 ~]#iptables -D INPUT -s 10.0.0.1 -j ACCEPT
[root@m01 ~]#iptables -nL --line
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
案例3: 限制来源IP地址
[root@m01 ~]#iptables -I INPUT -s 172.16.1.7 -j DROP 
[root@m01 ~]#(限制172.16.1.7IP)
[root@web01 ~]#ssh 172.16.1.61(IP远程连接61不通)
^C
此时10.0.0.7可以连通
案例4:限制网段
[root@m01 ~]#iptables -I INPUT -s 172.16.1.7/24 -j DROP (限制整个网段,0708都不通了)
[root@m01 ~]#
[root@web01 ~]#ssh 172.16.1.61
​
[root@web02 ~]#ssh 172.16.1.61
​
此时,10.0.0.0段可以通(因为禁的不是这个网段)
案例5:限制80端口
[root@m01 ~]#iptables -I INPUT -p tcp --dport 80 -j DROP
[root@web01 ~]#ping 10.0.0.61:80
ping: 10.0.0.61:80: Name or service not known
案例6:限制10.0.0.7不能访问61的80端口
[root@m01 ~]#iptables -I INPUT -s 10.0.0.7 -p tcp --dport 80 -j DROP
案例7:对源IP进行取反
除了10.0.0.1之前所有的IP地址都不能访问我的服务器(慎重使用)
[root@m01 ~]#iptables -I INPUT ! -s 10.0.0.1 -j DROP
 
此时172.16.1.0/段可以访问,
案例8:修改默认的规则
1.配置先允许自己可以访问61
[root@m01 ~]#iptables -I INPUT  -s 10.0.0.1 -j ACCEPT
2.修改默认规则为DROP
[root@m01 ~]#iptables -P INPUT DROP
[root@m01 ~]#
[root@m01 ~]#iptables -nL
 Chain INPUT (policy DROP)
 target     prot opt source               destination         
ACCEPT     all  --  10.0.0.1             0.0.0.0/0 
[root@web01 ~]#ssh 10.0.0.61 (10.0.0.7无法远程连接61了)
案例9:多端口配置
允许80和443端口
[root@m01 ~]#iptables -I INPUT  -p tcp -m multiport --dport 80,443  -j ACCEPT
,前后代表两个
:前后待代表从前面的到后面的端口全部允许
案例10:禁ping
禁ping 禁tracert
[root@web01 ~]#ping 10.0.0.61  (禁用之前,可以拼通)
PING 10.0.0.61 (10.0.0.61) 56(84) bytes of data.
64 bytes from 10.0.0.61: icmp_seq=1 ttl=64 time=0.534 ms
64 bytes from 10.0.0.61: icmp_seq=2 ttl=64 time=0.983 ms
[root@m01 ~]#iptables -I INPUT  -p icmp --icmp-type 8  -j DROP
[root@web01 ~]#ping 10.0.0.61(禁用之后,ping不通了)
PING 10.0.0.61 (10.0.0.61) 56(84) bytes of data.
​
通过linux操作系统内核参数配置禁ping
设置为1为禁ping
设置为0开启ping
[root@m01 ~]#echo  1  >/proc/sys/net/ipv4/icmp_echo_ignore_all
[root@m01 ~]#cat /proc/sys/net/ipv4/icmp_echo_ignore_all
1
[root@m01 ~]#echo  0  >/proc/sys/net/ipv4/icmp_echo_ignore_all
[root@m01 ~]#cat /proc/sys/net/ipv4/icmp_echo_ignore_all
0
案例11:iptables的保持与恢复
iptables-save将当前的配置保持到/etc/sysconfig/iptables
[root@m01 ~]#iptables-save 
恢复iptabales
1.重启读取/etc/sysconfig/iptables 配置文件中的策略
systemctl restart iptables
2.使用命令恢复
iptables-restore  </etc/sysconfig/iptables 
案例12: 使用IPtables实现共享上网

服务端设置:
1.iptables设置SNAT
将来源IP是172.16.1.0网段的流量,全都转换成10.0.0.61去访问外网
[root@m01 ~]#iptables -t nat -A POSTROUTING  -s 172.16.1.0/24   -j SNAT  --to-source 10.0.0.61
2.配置内核转发(拥有路由器功能)
[root@m01 ~]#echo 'net.ipv4.ip_forward = 1'  >> /etc/sysctl.conf
3.刷新配置
[root@m01 ~]#sysctl -p
net.ipv4.ip_forward = 1
 
使用ADSL拨号的网络: 注意事项: 公网ip不固定: iptables -t nat -A POSTROUTING  -s 172.16.1.0/24 -j  MASQUERADE
客户端设置:
配置网关: 172.16.1.61 保证重启resolv.conf里DNS
[root@web01 ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=172.16.1.7
PREFIX=24
GATEWAY=172.16.1.61
DNS1=223.5.5.5
重启生效:
[root@web01 ~]#systemctl restart network
案例13.IP地址映射
DNAT目标地址转换

配置IP地址端口映射:
[root@m01 ~]#iptables -t nat -A PREROUTING    -d 10.0.0.61 -p tcp --dport 9000  -j DNAT --to-destination 172.16.1.7:22

在我们的日常运维工作中防火墙的作用还是很大的,所以最少要掌握一种防火墙的使用方法,今天的iptables防火墙分享就到这里了,改天小屁整理一篇firewalld防火墙的使用教程~~~~


想成为大佬,就要从小白开始,从0开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2281344.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【AI编辑器】字节跳动推出AI IDE——Trae,专为中文开发者深度定制

目录 一、背景 二、核心特性 2.1 AI驱动的代码自动生成 2.2 智能问答与代码补全 2.3 多语言支持 2.4 插件与扩展 三、架构 四、下载使用 4.1 下载与安装 4.2 界面与配置 五、应用实践 5.1 快速生成代码 5.2 智能问答与调试 5.3 团队协作与代码审查 六、与Cursor…

机器学习2 (笔记)(朴素贝叶斯,集成学习,KNN和matlab运用)

朴素贝叶斯模型 贝叶斯定理&#xff1a; 常见类型 算法流程 优缺点 集成学习算法 基本原理 常见方法 KNN&#xff08;聚类模型&#xff09; 算法性质&#xff1a; 核心原理&#xff1a; 算法流程 优缺点 matlab中的运用 朴素贝叶斯模型 朴素贝叶斯模型是基于贝叶斯…

【赵渝强老师】K8s中Pod探针的HTTPGetAction

在K8s集群中&#xff0c;当Pod处于运行状态时&#xff0c;kubelet通过使用探针&#xff08;Probe&#xff09;对容器的健康状态执行检查和诊断。K8s支持三种不同类型的探针&#xff0c;分别是&#xff1a;livenessProbe&#xff08;存活探针&#xff09;、readinessProbe&#…

每日十题八股-2025年1月23日

1.快排为什么时间复杂度最差是O&#xff08;n^2&#xff09; 2.快排这么强&#xff0c;那冒泡排序还有必要吗&#xff1f; 3.如果要对一个很大的数据集&#xff0c;进行排序&#xff0c;而没办法一次性在内存排序&#xff0c;这时候怎么办&#xff1f; 4.面试官&#xff1a;你的…

bat批处理删除此电脑左侧及另存为下文档视屏等多余项

发现的一个解决强迫症人士痛点的小方法&#xff0c;自整理为一键批处理&#xff0c;需者自取 他可以一键去掉电脑左侧及另存为下文档视屏等多余项&#xff0c;还界面一个清爽整洁 干干净净&#xff0c;舒服 分享的是bat文件&#xff0c;可以右键编辑查看源代码&#xff0c;绝…

计算机毕业设计hadoop+spark+hive图书推荐系统 豆瓣图书数据分析可视化大屏 豆瓣图书爬虫 知识图谱 图书大数据 大数据毕业设计 机器学习

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

ThinkPhp伪静态设置后,访问静态资源也提示找不到Controller

ThinkPhp没有配置伪静态时&#xff0c;除了默认的IndexController能访问&#xff0c;其他路由Controller都访问不到&#xff0c;提示404错误。配置了伪静态后就解决了这个问题。 但是当我的ThinkPhp后台项目中有静态资源放在public目录&#xff08;或子目录&#xff09;中需要…

HarmonyOS:通过(SQLite)关系型数据库实现数据持久化

一、场景介绍 关系型数据库基于SQLite组件&#xff0c;适用于存储包含复杂关系数据的场景&#xff0c;比如一个班级的学生信息&#xff0c;需要包括姓名、学号、各科成绩等&#xff0c;又或者公司的雇员信息&#xff0c;需要包括姓名、工号、职位等&#xff0c;由于数据之间有较…

豆包MarsCode 蛇年编程大作战 | 高效开发“蛇年运势预测系统”

&#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 豆包MarsCode 蛇年编程大作战 | &#x1f40d; 蛇年运势预测 在线体验地址&#xff1a;蛇年…

JAVA-快速排序

一、快速排序基本思想 快速排序是 Hoare 于 1962 年提出的一种二叉树结构的交换排序方法&#xff0c;其基本思想为&#xff1a; 任取待排序元素序列中的某元 素作为基准值&#xff0c;按照该排序码将待排序集合分割成两子序列&#xff0c;左子序列中所有元素均小于基准值&#…

acm培训 part 1(题解)

第一部分的培训为语法糖&#xff0c;stl容器以及复杂度。 题目分析 1.1 Long Loong AtCoder - abc336_a ​​ 这道题的重点在于多个o的输出。在保证前面‘L’ 的输出和后面‘ng’的输出下&#xff0c;输入需要输出的o的数字&#xff0c;来实现需要输出的效果。 代码如下 …

vulfocus/fastjson-cnvd_2017_02833复现

漏洞概述 Fastjson 是阿里巴巴开发的一个高性能的 Java 库&#xff0c;用于将 Java 对象转换成 JSON 格式&#xff08;序列化&#xff09;&#xff0c;以及将 JSON 字符串转换回 Java 对象&#xff08;反序列化&#xff09;。 fastjson在解析json的过程中,支持使用type字段来指…

Ceisum无人机巡检直播视频投射

接上次的视频投影&#xff0c;Leader告诉我这个视频投影要用在两个地方&#xff0c;一个是我原先写的轨迹回放那里&#xff0c;另一个在无人机起飞后的地图回显&#xff0c;要实时播放无人机拍摄的视频&#xff0c;还要能转镜头&#xff0c;让我把这个也接一下。 我的天&#x…

一句话,我让 AI 帮我做了个 P 图网站!

每到过节&#xff0c;不少小伙伴都会给自己的头像 P 个图&#xff0c;加点儿装饰。 比如圣诞节给自己头上 P 个圣诞帽&#xff0c;国庆节 P 个小红旗等等。这是一类比较简单、需求量却很大的 P 图场景&#xff0c;也有很多现成的网站和小程序&#xff0c;能帮你快速完成这件事…

【深度学习】 自动微分

自动微分 正如上节所说&#xff0c;求导是几乎所有深度学习优化算法的关键步骤。 虽然求导的计算很简单&#xff0c;只需要一些基本的微积分。 但对于复杂的模型&#xff0c;手工进行更新是一件很痛苦的事情&#xff08;而且经常容易出错&#xff09;。 深度学习框架通过自动…

Go语言中的值类型和引用类型特点

一、值类型 值类型的数据直接包含值&#xff0c;当它们被赋值给一个新的变量或者作为参数传递给函数时&#xff0c;实际上是创建了原值的一个副本。这意味着对新变量的修改不会影响原始变量的值。 Go中的值类型包括&#xff1a; 基础类型&#xff1a;int&#xff0c;float64…

Vue2 项目二次封装Axios

引言 在现代前端开发中&#xff0c;HTTP请求管理是构建健壮应用的核心能力之一。Axios作为目前最流行的HTTP客户端库&#xff0c;其灵活性和可扩展性为开发者提供了强大的基础能力。 1. 为什么要二次封装Axios&#xff1f; 1.1 统一项目管理需求 API路径标准化&#xff1a;…

使用Layout三行布局(SemiDesign)

tips&#xff1a;Semi Design网址 &#xff1a;Semi Design 1、安装Semi # 使用 npm npm i douyinfe/semi-ui# 使用 yarn yarn add douyinfe/semi-ui# 使用 pnpm pnpm add douyinfe/semi-ui 2、引入Layout布局 import { Layout } from douyinfe/semi-ui;3、开始实现三行布局…

css命名规范——BEM

目录 引言 BEM是什么? 块Block 元素Element 修饰语Modifier BEM解决了哪些问题? 在流行框架的组件中使用 BEM 格式 实战 认识设计图 如何使用当前的css规范正确命名? 引言 css样式类命名难、太难了,难于上青天,这个和js变量命名还不一样。看看项目中五花八门的样…

mysql 学习2 MYSQL数据模型,mysql内部可以创建多个数据库,一个数据库中有多个表;表是真正放数据的地方,关系型数据库 。

在第一章中安装 &#xff0c;启动mysql80 服务后&#xff0c;连接上了mysql&#xff0c;那么就要 使用 SQL语句来 操作mysql数据库了。那么在学习 SQL语言操作 mysql 数据库 之前&#xff0c;要对于 mysql数据模型有一个了解。 MYSQL数据模型 在下图中 客户端 将 SQL语言&…