当前位置: 首页 > news >正文

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

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

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

相关文章:

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

如果你想拥有你从未拥有过的东西&#xff0c;那么你必须去做你从未做过的事情 防火墙在运维工作中有着不可或缺的重要性。首先&#xff0c;它是保障网络安全的关键防线&#xff0c;通过设置访问控制规则&#xff0c;可精准过滤非法网络流量&#xff0c;有效阻挡外部黑客攻击、恶…...

Linux之详谈——权限管理

目录 小 峰 编 程 ​编辑 一、权限概述 1、什么是权限 2、为什么要设置权限 3、Linux中的权限类别- 4、Linux中文件所有者 1&#xff09;所有者分类&#xff08;谁&#xff09; 2&#xff09;所有者的表示方法 ① u(the user who owns it)&#xff08;属主权限&…...

第05章 13 椭球体张量可视化应用一则-神经束追踪

在神经束追踪&#xff08;Tractography&#xff09;中&#xff0c;椭球体张量&#xff08;Ellipsoid Tensor&#xff09;通常用于描述神经纤维的方向和扩散特性。这种技术广泛应用于磁共振成像&#xff08;MRI&#xff09;的扩散张量成像&#xff08;DTI&#xff09;数据中。VT…...

Celery

https://www.bilibili.com/video/BV1RGDEY5ERB 架构 简单任务 执行 包结构 本示例&#xff1a; app 添加任务 获取结果 配置延时任务 任务配置 beat 提交定时任务...

JavaScript系列(48)-- 3D渲染引擎实现详解

JavaScript 3D渲染引擎实现详解 &#x1f3ae; 今天&#xff0c;让我们深入探讨JavaScript的3D渲染引擎实现。通过WebGL和现代JavaScript技术&#xff0c;我们可以构建一个功能完整的3D渲染系统。 3D渲染基础概念 &#x1f31f; &#x1f4a1; 小知识&#xff1a;3D渲染引擎的…...

Golang并发机制及CSP并发模型

Golang 并发机制及 CSP 并发模型 Golang 是一门为并发而生的语言&#xff0c;其并发机制基于 CSP&#xff08;Communicating Sequential Processes&#xff0c;通信顺序过程&#xff09; 模型。CSP 是一种描述并发系统中交互模式的正式语言&#xff0c;强调通过通信来共享内存…...

使用 Docker + Nginx + Certbot 实现自动化管理 SSL 证书

使用 Docker Nginx Certbot 实现自动化管理 SSL 证书 在互联网安全环境日益重要的今天&#xff0c;为站点或应用部署 HTTPS 已经成为一种常态。然而&#xff0c;手动申请并续期证书既繁琐又容易出错。本文将以 Nginx Certbot 为示例&#xff0c;基于 Docker 容器来搭建一个…...

游戏策划的分类

P3游戏策划分类 1.程序2.美术3.策划 程序&#xff1a;一般分为客户端程序和服务器程序 客户端程序一般负责游戏的前端画面表现 服务器程序负责游戏的后端运算 美术&#xff1a;角色原画&#xff0c;角色模型动作&#xff0c;场景原画&#xff0c;场景模型&#xff0c;UI设计&a…...

Edge-TTS在广电系统中的语音合成技术的创新应用

Edge-TTS在广电系统中的语音合成技术的创新应用 作者&#xff1a;本人是一名县级融媒体中心的工程师&#xff0c;多年来一直坚持学习、提升自己。喜欢Python编程、人工智能、网络安全等多领域的技术。 摘要 随着人工智能技术的快速发展&#xff0c;文字转语音&#xff08;Te…...

python学opencv|读取图像(四十七)使用cv2.bitwise_not()函数实现图像按位取反运算

【0】基础定义 按位与运算&#xff1a;两个等长度二进制数上下对齐&#xff0c;全1取1&#xff0c;其余取0。按位或运算&#xff1a;两个等长度二进制数上下对齐&#xff0c;有1取1&#xff0c;其余取0。 按位取反运算&#xff1a;一个二进制数&#xff0c;0变1,1变0。 【1】…...

一文讲解Java中Object类常用的方法

在Java中&#xff0c;经常提到一个词“万物皆对象”&#xff0c;其中的“万物”指的是Java中的所有类&#xff0c;而这些类都是Object类的子类&#xff1b; Object主要提供了11个方法&#xff0c;大致可以分为六类&#xff1a; 对象比较&#xff1a; public native int has…...

【算法篇·更新中】C++秒入门(附练习用题目)

一.二分 1.二分查找 我们来看这样一道题&#xff1a; 有一个保证有序的数组a&#xff0c;它的长度为n。现在我们需要知道这个序列是否含有x。 数据范围&#xff1a;保证n<1e9 我们看到这道题之后&#xff0c;第一时间想到的就是暴力枚举了&#xff0c;可是我们发现直接枚举…...

面向对象编程 vs 面向过程编程

面向对象编程 vs 面向过程编程&#xff1a;深入解析这两种编程范式的区别 在当今软件开发领域&#xff0c;编程范式的选择对于项目的可维护性和可扩展性至关重要。面向对象编程&#xff08;OOP&#xff09;和面向过程编程&#xff08;POP&#xff09;是两种根本的编程思想。本…...

【Rust自学】16.2. 使用消息传递来跨线程传递数据

喜欢的话别忘了点赞、收藏加关注哦&#xff08;加关注即可阅读全文&#xff09;&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 16.2.1. 消息传递 有一种很流行而且能保证安全并发的技术&#xff08;或者叫机制&#xff…...

【四川乡镇界面】图层shp格式arcgis数据乡镇名称和编码2020年wgs84无偏移内容测评

本文将详细解析标题和描述中提到的IT知识点&#xff0c;主要涉及GIS&#xff08;Geographic Information System&#xff0c;地理信息系统&#xff09;技术&#xff0c;以及与之相关的文件格式和坐标系统。 我们要了解的是"shp"格式&#xff0c;这是一种广泛用于存储…...

人物传记之新月篇

相关故事链接&#xff08;及时更新&#xff09;&#xff1a;Python的那些事第四篇&#xff1a;编程中的智慧之光控制结构-CSDN博客 Python的那些事第五篇&#xff1a;数据结构的艺术与应用-CSDN博客 目录 1. C语言程序&#xff1a;增强版加密与解密工具 2. Python程序&#x…...

TypeScript中的函数:类型安全与高级特性

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

DDD 和 TDD

领域驱动设计&#xff08;DDD&#xff09; DDD 是一种软件开发方法&#xff0c;强调通过与领域专家的密切合作来构建一个反映业务逻辑的模型。其核心思想是将业务逻辑和技术实现紧密结合&#xff0c;以便更好地解决复杂的业务问题。 DDD 的关键概念&#xff1a; 1. 领域模型 …...

【C语言分支与循环结构详解】

目录 ---------------------------------------begin--------------------------------------- 一、分支结构 1. if语句 2. switch语句 二、循环结构 1. for循环 2. while循环 3. do-while循环 三、嵌套结构 结语 -----------------------------------------end----…...

FaceFusion

文章目录 一、关于 FaceFusion预览 二、安装三、用法 一、关于 FaceFusion FaceFusion 是行业领先的人脸操作平台 github : https://github.com/facefusion/facefusion官方文档&#xff1a;https://docs.facefusion.io/Discord : https://discord.com/invite/facefusion-1141…...

图论——单源最短路的扩展应用

acwing1137.选择最佳路线 本题有两个解决思路 1.建立虚拟源点&#xff0c;连接虚拟源点和 w w w个可作为起点的点&#xff0c;边权为0&#xff0c;这样只需要从虚拟源点开始做一遍最短路算法便可。 2.反向建边&#xff0c;把所有的add(a,b,c)变成add(b,a,c)&#xff0c;这样只…...

Linux shell脚本笔记-One

前言 本文主要汇总有关shell脚本常用的知识点&#xff0c;有时候使用忘记某些用法指令&#xff0c;特此汇总方便后续查阅。 一.shell脚本编写的头部定义: 定义的shell脚本头部有多种写法&#xff0c;具体根基实际系统结构处理&#xff0c;如下: #!/bin/sh &#xff…...

【C语言----函数详解】

目录 ----------------------------------------begin-------------------------------------- 引言 一、函数是什么 二、函数的定义和声明 1. 函数的定义 2. 函数的声明 三、函数的调用 四、函数参数传递 五、函数的返回值 六、递归函数 七、函数指针 八、总结 ---…...

QT交叉编译环境搭建(Cmake和qmake)

介绍一共有两种方法&#xff08;基于qmake和cmake&#xff09;&#xff1a; 1.直接调用虚拟机中的交叉编译工具编译 2.在QT中新建编译套件kits camke和qmake的区别&#xff1a;CMake 和 qmake 都是自动化构建工具&#xff0c;用于简化构建过程&#xff0c;管理编译设置&…...

Zemax 中的屋脊棱镜建模

光学棱镜是一种透明的光学元件&#xff0c;其表面平坦且抛光&#xff0c;可以折射光线。最常见的棱镜类型是三棱镜&#xff0c;它有两个三角形底座和三个矩形或略呈梯形的表面。棱镜通常由玻璃或丙烯酸等材料制成。当光线以一定角度进入棱镜时&#xff0c;它会在穿过棱镜时发生…...

CUDA学习-内存访问

一 访存合并 1.1 说明 本部分内容主要参考: 搞懂 CUDA Shared Memory 上的 bank conflicts 和向量化指令(LDS.128 / float4)的访存特点 - 知乎 1.2 share memory结构 图1.1 share memory结构 放在 shared memory 中的数据是以 4 bytes(即 32 bits)作为 1 个 word,依…...

Nginx 开发总结

文章目录 1. Nginx 基础概念1-1、什么是 Nginx1-2、Nginx 的工作原理1-3、Nginx 的核心特点1-4、Nginx 的常见应用场景1-5、Nginx 与 Apache 的区别1-6、 Nginx 配置的基本结构1-7、Nginx 常见指令 2. Nginx 配置基础2-1、Nginx 配置文件结构2-2、全局配置 (Global Block)2-3、…...

目标跟踪之sort算法(3)

这里写目录标题 1 流程1 预处理2 跟踪 2 代码 参考&#xff1a;sort代码 https://github.com/abewley/sort 1 流程 1 预处理 1.1 获取离线检测数据。1.2 实例化跟踪器。2 跟踪 2.1 轨迹处理。根据上一帧的轨迹预测当前帧的轨迹&#xff0c;剔除到当前轨迹中为空的轨迹得到当前…...

C++/stack_queue

目录 1.stack 1.1stack的介绍 1.2stack的使用 练习题&#xff1a; 1.3stack的模拟实现 2.queue的介绍和使用 2.1queue的介绍 2.2queue的使用 2.3queue的模拟实现 3.priority_queue的介绍和使用 3.1priority_queue的介绍 3.2priority_queue的使用 欢迎 1.stack 1.1stack…...

小程序电商运营内容真实性增强策略及开源链动2+1模式AI智能名片S2B2C商城系统源码的应用探索

摘要&#xff1a;随着互联网技术的不断发展&#xff0c;小程序电商已成为现代商业的重要组成部分。然而&#xff0c;如何在竞争激烈的市场中增强小程序内容的真实性&#xff0c;提高用户信任度&#xff0c;成为电商运营者面临的一大挑战。本文首先探讨了通过图片、视频等方式增…...

「Unity3D」在Unity中使用C#控制显示Android的状态栏

Unity打包的Android默认都是全屏&#xff0c;如果想要在真机上显示状态栏&#xff0c;就需要额外设置&#xff0c;有两种方式&#xff1a; 第一种&#xff0c;使用Android的Java代码去控制&#xff0c;然后以插件的方式放到Unity中&#xff0c;被C#调用。第二种&#xff0c;使…...

基于51单片机和ESP8266(01S)、LCD1602、DS1302、独立按键的WiFi时钟

目录 系列文章目录前言一、效果展示二、原理分析三、各模块代码1、延时2、定时器03、串口通信4、DS13025、LCD16026、独立按键 四、主函数总结 系列文章目录 前言 之前做了一个WiFi定时器时钟&#xff0c;用八位数码管进行显示&#xff0c;但是定时器时钟的精度较低&#xff0…...

AI 浪潮席卷中国年,开启科技新春新纪元

在这博主提前祝大家蛇年快乐呀&#xff01;&#xff01;&#xff01; 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;其影响力已经渗透到社会生活的方方面面。在中国传统节日 —— 春节期间&#xff0c;AI 技术也展现出了巨大的潜力&#xff0c;为中国年带…...

STM32 LED呼吸灯

接线图&#xff1a; 这里将正极接到PA0引脚上&#xff0c;负极接到GND&#xff0c;这样就高电平点亮LED&#xff0c;低电平熄灭。 占空比越大&#xff0c;LED越亮&#xff0c;占空比越小&#xff0c;LED越暗 PWM初始化配置 输出比较函数介绍&#xff1a; 用这四个函数配置输…...

机器学习day4

自定义数据集 使用pytorch框架实现逻辑回归并保存模型&#xff0c;然后保存模型后再加载模型进行预测 import numpy as np import torch import torch.nn as nn import torch.optim as optimizer import matplotlib.pyplot as pltclass1_points np.array([[2.1, 1.8],[1.9, 2…...

《哈佛家训》

《哈佛家训》是一本以教育为主题的书籍&#xff0c;旨在通过一系列富有哲理的故事和案例&#xff0c;传递积极的人生观、价值观和教育理念。虽然它并非直接由哈佛大学官方出版&#xff0c;但其内容深受读者喜爱&#xff0c;尤其是在家庭教育和个人成长领域。 以下是《哈佛家训…...

为什么redis会开小差?Redis 频繁异常的深度剖析与解决方案

文章目录 导读为什么redis会开小差&#xff1f;1.连接数过多2.bigkey3.慢命令操作4.内存策略不合理5.外部数据双写一致性6.保护机制未开启7. 数据集中过期8. CPU饱和9. 持久化阻塞10. 网络问题结论 导读 提起分布式缓存&#xff0c;想必大多数同学脑海中都会浮出redis这个名字…...

window中80端口被占用问题

1&#xff0c;查看报错信息 可以看到在启动项目的时候&#xff0c;8081端口被占用了&#xff0c;导致项目无法启动。 2&#xff0c;查看被占用端口的pid #语法 netstat -aon|findstr :被占用端口#示例 netstat -aon|findstr :8080 3&#xff0c;杀死进程 #语法 taikkill /pid…...

< OS 有关 > 阿里云:轻量应用服务器 的使用 :轻量化 阿里云 vpm 主机

原因&#xff1a; &#xff1c; OS 有关 &#xff1e; 阿里云&#xff1a;轻量应用服务器 的使用 &#xff1a;从新开始 配置 SSH 主机名 DNS Tailscale 更新OS安装包 最主要是 清除阿里云客户端这个性能杀手-CSDN博客 防止 I/O 祸害系统 操作&#xff1a; 查看进程&#x…...

解决报错“The layer xxx has never been called and thus has no defined input shape”

解决报错“The layer xxx has never been called and thus has no defined input shape”(这里写自定义目录标题) 报错显示 最近在跑yolo的代码时遇到这样一个错误&#xff0c;显示“the layer {self.name} has never been called”.这个程序闲置了很久&#xff0c;每次一遇到…...

Microsoft Visual Studio 2022 主题修改(补充)

Microsoft Visual Studio 2022 透明背景修改这方面已经有很多佬介绍过了&#xff0c;今天闲来无事就补充几点细节。 具体的修改可以参考&#xff1a;Microsoft Visual Studio 2022 透明背景修改&#xff08;快捷方法&#xff09;_material studio怎么把背景弄成透明-CSDN博客文…...

PyCharm接入DeepSeek实现AI编程

目录 效果演示 创建API key 在PyCharm中下载CodeGPT插件 配置Continue DeepSeek 是一家专注于人工智能技术研发的公司&#xff0c;致力于开发高性能、低成本的 AI 模型。DeepSeek-V3 是 DeepSeek 公司推出的最新一代 AI 模型。其前身是 DeepSeek-V2.5&#xff0c;经过持续的…...

C++ 包装器与绑定器的应用之回调函数的实现

回调函数的实现 在消息队列和网络库的框架中&#xff0c;当接收到消息&#xff08;报文&#xff09;时&#xff0c;回调用户自定义的函数对象&#xff0c;把消息&#xff08;报文&#xff09;参数传给它&#xff0c;由它决定如何处理。 queue参考文章:C queue(STL queue&…...

一文读懂DeepSeek-R1论文

目录 论文总结 摘要 1. 引言 1.1. 贡献 1.2. 评估结果总结 2. 方法 2.1. 概述 2.2. DeepSeek-R1-Zero&#xff1a;在基础模型上进行强化学习 2.2.1. 强化学习算法 2.2.2. 奖励建模 2.2.3. 训练模板 2.2.4. DeepSeek-R1-Zero 的性能、自我进化过程和顿悟时刻 2.3. …...

文献阅读 250128-Tropical forests are approaching critical temperature thresholds

Tropical forests are approaching critical temperature thresholds 来自 <Tropical forests are approaching critical temperature thresholds | Nature> 热带森林正在接近临界温度阈值 ## Abstract: The critical temperature beyond which photosynthetic machinery…...

【python】python基于机器学习与数据分析的二手手机特性关联与分类预测(源码+数据集)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、测试技术。 python基于机器学习与数据分析的二手手机特性关联与…...

构建可靠的时间序列预测模型:数据泄露检测、前瞻性偏差消除与因果关系验证

在时间序列分析领域中&#xff0c;存在多种可能影响分析结果有效性的技术挑战。其中&#xff0c;数据泄露、前瞻性偏差和因果关系违反是最为常见且具有显著影响的问题。 数据泄露&#xff1a;隐蔽的系统性错误 数据泄露是指在预测时理论上无法获取的信息&#xff0c;通过某种…...

Spring Boot - 数据库集成05 - 集成MongoDB

Spring Boot集成MongoDB 文章目录 Spring Boot集成MongoDB一&#xff1a;使用前的准备1&#xff1a;依赖导入 & 配置2&#xff1a;实体类创建 二&#xff1a;核心 - MongoRepository三&#xff1a;核心 - MongoTemplate1&#xff1a;集合操作2&#xff1a;文档操作(重点)3&…...

计算机网络之运输层

本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》 04 传输层 在网上看到其他人做了相关笔记&#xff0c;就不再多余写了&#xff0c;直接参考着学习吧。 王道考研 计算机网络笔记 第五章&#xff1a;传输层_王道计算机网络传输层_Baret-H的博客-CSDN博…...

DeepSeekMoE:迈向混合专家语言模型的终极专业化

一、结论写在前面 论文提出了MoE语言模型的DeepSeekMoE架构&#xff0c;目的是实现终极的专家专业化(expert specialization)。通过细粒度的专家分割和共享专家隔离&#xff0c;DeepSeekMoE相比主流的MoE架构实现了显著更高的专家专业化和性能。从较小的2B参数规模开始&#x…...