Linux防火墙(iptables)

news2024/11/25 18:36:21

一、linux的防火墙组成

linux的防火墙由netfilteriptables组成。用户空间的iptables制定防火墙规则内核空间的netfilter实现防火墙功能


netfilter(内核空间)位于Linux内核中的包过滤防火墙功能体系,称为Linux防火墙的“内核态”


iptables(用户空间)位于/sbin/iptables,是用来管理防火墙的命令的工具,为防火墙体系提供过滤规则/策略,决定如何过滤或处理到达防火墙主机的数据包,称为Linux防火墙的“用户态”


Linux系统的防火墙功能是由内核实现的,包过滤防火墙工作在TCP/IP的网络层。用户空间的iptables制定相应的规则策略控制内核空间的netfilter处理相应的数据访问控制。

二、iptables 概述


iptables是Linux斜体自带的防火墙工具,支持数据包过滤、数据包转发、地址转换、基于MAC地址的过滤、基于状态的过滤、包速率限制等安全功能。iptables可以用于构建Linux主机防火墙,也可以用于搭建网络防火墙。

三、iptables 结构


iptables的四表tables与五链chains

四表:filter、nat、mangle、raw

五链:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING。

表与链关系图

四、iptables 的四表五链功能

四表功能
filter:一般的过滤功能
nat:用于nat功能(端口映射,地址映射等)
mangle:用于对特定数据包的修改
raw:有先级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能。

表的处理优先级:raw>mangle>nat>filter。

当数据包抵达防火墙时,将依次应用raw、mangle、nat和filter表中对应链内的规则(如果有)如下图所示。 

五链功能
PREROUTING:数据包进入路由表之前
INPUT:通过路由表后目的地为本机
FORWARD:通过路由表后,目的地不为本机
OUTPUT:由本机产生,向外转发
POSTROUTIONG:发送到网卡接口之前。

 注:INPUT、OUTPUT链更多的应用在“主机防火墙”中,即主要针对服务器本机进出数据的安全控制;而FORWARD、PREROUTING、POSTROUTING链更多的应用在“网络防火墙中,特别是防火墙服务器作为网关使用时的情况。 ​​​​​​​ 

1、filter表和input链、forward链、output链关系
Filter表 和主机自身相关、负责防火墙(过滤本机流入、流出数据包)。 是iptables默认使用的表。这个表定具有三个链(chains):
INPUT:负责过滤所有目标地址是主机(防火墙)地址的数据包、通俗的讲、就是过滤进入主机的数据包。
FORWARD:负责转发流经主机但不进入本机的数据包、起转发作用、和NAT表关系很大、后面会详细介绍
OUTPUT:处理所有原地址是本机地址的数据包、通俗的讲就是处理从主机发出去的数据包。

2、nat表和output链、prerouting链、postrouting链关系
NAT表 是网络地址转换的意思。即负责来源与目的IP地址和port的转换、和主机本身无关。一般用于局域网多人共享上网或者内网IP映射外网IP及不同端口转换服务等功能。Nat表的功能很重要、这个表具有三个链(chains) :
OUTPUT:主机发出去的数据包有关、在数据包路由之前改变主机产生的数据包的目的地址等。
PREROUTING:在数据包刚到达防火墙时、进行路由判断之前执行的规则、改变包的目的地址(DNAT功能)、端口等(通俗比喻,就是收信时、根据规则重写收件人的地址、这看上去不地道啊)把公司IP映射到局域网的机器上、此链多用于把外部IP地址端口的服务、映射为内部IP地址及端口
POSTROUTING:在数据包离开防火墙时进行路由判断之后执行的规则、改变包的源地址(SNAT)、端口等(通俗比喻、就是寄信时写好发件人的地址、要让人家回信是能够有地址可回)刺链多用于局域网共享上网,把所有局域网的地址、转换为公网地址

3、mangle表和input链、forward链、output链、prerouting链、postrouting链的关系
Mangle 主要负责修改数据包中特殊的路由标记,如TTL、TOS、MARK等、这个表定义了5个链(chains)
INPUT:同filter表的INPUT
FORWARD:同filter表的FORWARD
OUTPUT:同fileter表的OUTPUT
PREROUTING:同nat表的PREROUTING
POSTOUTING:同nat表的POSTOUTING

4. Raw表和output链、prerouting链关系
RAW表只使用在PREROUTING链和OUTPUT链上、因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。一但用户使用了RAW表、在某个链上、RAW表处理完后、将跳过NAT表和
ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了。RAW表可以应用在那些不需要做nat的情况下,以提高性能。如大量访问的web服务器,可以让80端口不再让iptables做数据包的链接跟踪处理,以提高用户的访问速度。

五、iptables 的工作原理

匹配顺序

自上向下按顺序依次进行检查,找到相匹配的规则即停止 (LOG策略例外,表示记录相关日志)

若在该链内找不到相匹配的规则,则按该链的默认策略处理 (未修改的状况下,默认策略为允许)

六、iptables 处理动作


ACCEPT:允许数据包通过。
DROP:直接丢弃数据包,不给任何回应信息,这时候客户端会感觉自己的请求泥牛入海了,过了超时时间才会有反应。
REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息。
SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题。
MASQUERADE:是SNAT的一种特殊形式,适用于动态的、临时会变的ip上。
DNAT:目标地址转换。
REDIRECT:在本机做端口映射。
LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则,也就是说除了记录以外不对数据包做任何其他操作,仍然让下一条规则去匹配。


七、iptables 命令中常用的参数

-t 指定要操纵的表,如果不指定-t参数,默认就会自动匹配filter

-P 设置默认策略:iptables -P INPUT (DROP|ACCEPT)

-F 清空规则链,并不影响 -P 设置的默认规则,默认规则需要手动进行修改

-L 查看规则链

-A  在规则链的末尾加入新规则,该规则增加在原规则的后面,例如原来有3条规则使用-A选择就可以添加第4条规则;

-I num 向规则链中插入一条规则,如果没有指定此规则的顺序,默认是插入变成第一条规则;如果要添加为第3条规则,就在-I后面的规则链后面添加3这数字,例如在INPUT链中添加第3条规则:iptables -I INPUT 3 后面添加相应的参数

-D num 删除某一条规则

-R 替换规则链中的一条规则

-Z 清空规则链中的数据包计算器和字节计数器,它是计算同一数据包出现次数

-s 匹配来源地址IP/MASK,加叹号"!"表示除这个IP外。

-d 匹配目标地址

-i 网卡名称 匹配从这块网卡流入的数据

-o 网卡名称 匹配从这块网卡流出的数据

-p 匹配协议,如tcp,udp,icmp

--dport num 限制目标的端口号码,端口号码也可以是连续的,例如:2000:3000代表端口2000到3000

--sport num 限制来源的端口号码​​​​​​​,端口号码也可以是连续的,例如:2000:3000代表端口2000到3000

-X  删除用户自定义的链

-N  创建新的用户自定义规则链;

-n  地址和端口以数字的形式输出:

-v  显示规则链中更多的信息,比如网络接口等

-j  后面接操作策略,主要的策略有 接受(ACCEPT)、丢弃(DROP)、拒绝(REJECT)、日志记录(LOG)

-m 显式扩展

iptables命令选项输入顺序:
1、iptables  [A/I/D/R 规则链名] [-i/o 网络接口] [-p 协议名] [-s 源IP/源子网] [-d 目标IP/目标子网] [--sport 源端口] [--dport 目标端口] [-j 策略]。
2、上面的命令如果不指定[-i/o 网络接口]则对主机的所有接口生效,不指定[-s 源IP/源子网] [-d 目标IP/目标子网]则对代任何网络(0.0.0.0)生效。
3、使用[--sport 源端口] [--dport 目标端口]需要加上-p tcp或-p udp才会生效。

八、查看Linux防火墙的设置

root@debian:~# iptables -L -vn
Chain INPUT (policy ACCEPT 15 packets, 2135 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  439 45100 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:23

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 89 packets, 16596 bytes)
 pkts bytes target     prot opt in     out     source               destination         
root@debian:~#

上面的输出中每一个Chain就是一个链,上面有三个链INPUT,FORWARD,OUTPUT每个链括号中的policy就是默认的策略,每一个iptables 规则都伴随着一组记量器, 当封包符合 iptables 內的某一个规则时, 便会将包大小与数量累加到该规则所属的計量器。
下面的pkts、bytes、target、prot、opt、in、out、source、destination代表的分别是
pkts:  packets, 被本规则所匹配到的报文的个数;
bytes:  被本规则所匹配到的所有报文的大小之和,会执行单位换算;
target:代表进行的操作,ACCEPT是放行,DROP是丢弃,REJECT是拒绝
prot:代表使用的数据包协议,主要有tcp、udp、icmp三种数据包协议
opt:额外的选项说明
in: 数据包的流入接口
out: 数据包的流出接口
source:规则中针对那个来源IP进行限制
destination:规则中针对那个目的IP进行限制
 

九、iptables 常用实例

1、清除所有iptables规则

iptables -F
iptables -X
iptables -Z

2、自定义默认策略

iptables -P INPUT DROP

进入主机的数据包默认全部丢弃,需要放行的数据包通过策略再进行放行,这样主机比较安全

iptables -P OUTPUT ACCEPT

从主机出去的数据包默认当热要放行了,但是如果主机当作代理服务之类的要考虑是否所以数据包允许通过

iptables -P FORWARD DROP

禁止主机进行NAT,如果主机当作NAT要进行相应的策略配置


3、开放指定的端口,当默认INPUT链为DROP

iptables -A INPUT -p tcp --dport 22 -j ACCEPT   

允许ssh服务的22端口通过

iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

如果把OUTPUT默认规则设置成DROP的就要写上这一条

iptables -I INPUT  -p tcp --dport 22 -j ACCEPT  

插入第3条规则允许ssh服务的22端口通过

iptables -A INPUT -p tcp --dport 20 -j ACCEPT

允许FTP服务的20端口通过

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

允许FTP服务的21端口通过

iptables -A INPUT -j DROP

禁止其他未允许的规则访问

iptables -A FORWARD -j DROP

禁止其他未允许的规则访问

iptables -A OUTPUT -j ACCEPT

允许所有本机向外的访问

iptables -A INPUT -p tcp --sport 2222 -j ACCEPT

这个比较特殊,是允许访问的主机应用通过2222端口发起的就允许通过,一般INPUT配合--sport很少用,
主要是INPUT配合--dport使用,OUTPUT配合--sport使用。

4、开放指定IP或网段,当默认INPUT链为DROP

iptables -I INPUT -s 127.0.0.1  -j ACCEPT

允许本地回环接口(即运行本机访问本机)

iptables -I INPUT -s 192.168.2.100 -j ACCEPT

允许单个IP通过的命令

iptables -I INPUT -s 10.0.0.0/8 -j ACCEPT

允许整个网段即从10.0.0.1到10.255.255.254通过的命令

iptables -I INPUT -s 192.168.2.0/24 -j ACCEPT

允许整个网段即从192.168.2.1到192.168.2.254通过的命令

iptables -I OUTPUT -d 192.168.2.0/24 -j ACCEPT

如果把OUTPUT默认规则设置成DROP就要加上这一条才能允许整个网段通过

iptables -I INPUT -d 192.168.2.100 -j ACCEPT

如果被访问的服务器地址是192.168.2.100则这条命令会允许所有访问,一般INPUT 配合-d很少有,主要是INPUT配合-s使用,OUTPUT配合-d使用。

5、开放指定网络接口,当默认INPUT链为DROP,多用于有多个网卡的时候

iptables -A INPUT -i lo -j ACCEPT

允许本地回环接口(即运行本机访问本机),只是这个是通过接口来实现  

iptables -A OUTPUT -o lo -j ACCEPT

如果把OUTPUT默认规则设置成DROP的就要写上这一条

iptables -A INPUT -i enp0s3 -j ACCEPT

允许从网卡enp0s3口进入的数据包通过

iptables -A OUTPUT -o enp0s3 -j ACCEPT

允许从网卡enp0s3口出去的数据包通过

6、允许icmp包通过,也就是允许ping

iptables -A INPUT -p icmp -j ACCEPT  

(INPUT设置成DROP的话)

iptables -A OUTPUT -p icmp -j ACCEPT 

(OUTPUT设置成DROP的话)


7、允许从网卡enp0s3口进入的192.168.0.106地址的主机访问ssh

iptables -I INPUT -i enp0s3 -s 192.168.0.106 -p tcp --dport 22 -j ACCEPT

8、从规则链中删除一条规则

iptables -D INPUT -p tcp --dport 22 -j ACCEPT

删除ssh服务的22端口通过

iptables -D INPUT  n

按规则序号删除,n代表INPUT链中从上让下数的第n条规则,也可用到OUTPUT和FORWARD链中

9、阻止指定IP地址

iptables -A INPUT -s "1.0.98.1" -j DROP

丢弃来自1.0.98.1的包 

iptables -A INPUT -i eth0 -p tcp -s "1.0.98.1" -j DROP

阻止来自eth0网卡的tcp的包 

10、允许所有SSH的链接请求

iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

允许所有来自外部的SSH连接请求,即只允许进入eth0接口,并且目标端口为22的数据包 

iptables -t filter -A INPUT -j DROP —dport 90 

在filter表中的中插入拒绝由90端口的机器向本机发送tcp报文​​​​​​​​​​​​​​ 

11、删除规则

iptables -D INPUT -s "1.0.98.1" -j DROP
iptables -D INPUT -i eth0 -p tcp -s "1.0.98.1" -j DROP
iptables -D INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -D OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -t filter -D INPUT -j DROP —dport 90 

 删除上面的规则 

12、显式匹配

要求以"-m 扩展模块"的形式明确指出类型,包括多端口、MAC地址、IP范围、数据包状态等条件。

多端口匹配∶
-m multiport --sport 源端口列表
-m multiport --dport 目的端口列表

iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -i ACCEPT
iptables -A INPUT -p udp -m multiport --dport 53 -j ACCEPT

IP范围匹配∶ 
-m iprange --src-range IP范围

iptables -A FORWARD -p udp -m iprange --src-range 192.168.80.100-192.168.80.200 -j DROP

禁止转发源地址位于192.168.80.100-192.168.80.200的udp数据包

MAC地址匹配∶
-m mac --mac-source MAC地址

iptables -A FORWARD -m mac --mac -source xx:xx:xx:xx:xX:xx -j DROP

禁止来自某MAC 地址的数据包通过本机转发

状态匹配∶
-m state_–state 连接状态
常见的连接状态∶

NEW ∶与任何连接无关的,还没开始连接
ESTABLISHED ∶响应请求或者已建立连接的,连接态
RELATED ∶ 与已有连接有相关性的(如FTP 主被动模式的数据连接),衍生态,一般与ESTABLISHED 配合使用
INVALID ∶ 不能被识别属于哪个连接或没有任何状态

iptables -A FORWARD -m state --state NEW -p tcp !--syn -j DROP

禁止转发与正常 TCP 连接无关的非–syn 请求数据包(如伪造的网络攻击数据包)

iptables -I INPUT -p tcp -m multiport --dport 80, 22,21,20,53 -j ACCEPT
iptables -A INPUT -p udp -m multiport --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -m state --state ESTABLISHED, RELATED -j ACCEPT

13、端口转发(端口转发不修改IP地址)

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 18080 -j REDIRECT  --to-port 80

 14、目的地址转换(DNAT,修改IP地址)

 iptables -t nat -A PREROUTING -i eth0 -p tcp -d 10.1.201.2 --dport 18080 -j DNAT --to-destination 192.168.201.2:80

15、源目的地址转换(SNAT)

iptables -t nat -A POSTROUTING -s 192.168.201.2 -j SNAT --to-source 10.1.201.2

#网络地址伪装

iptables -t nat -A POSTROUTING -s 192.168.201.0/24 -j MASQUERADE 

十、iptables扩展模块state


当我们为了安全把防火墙的INPUT链的默认规则设置成DROP,这样任何数据包都不能进入我们的主机,这样就会有问题,当我们访问网页时会无法显示页面的,因为访问网页是双向的,你发出去的请求数据会返回相应的应答数据包,但是防火墙拒绝了任何数据包,所以网页无法显示。你可以开放相应的端口,但是这只是其中的一个应用,如果要访问的应用很多你就会疯掉,需要开发多少个端口,应用对应的端口又是什么,头都大了,怎么办呢?

可以用扩展模块state来实现,从字面上理解,state可以翻译为状态,但是我们可以用另外一个词来形容 <连接追踪>,那么连接的是什么,你可能下意识的想到tcp链接,对于state模块而言的连接并不能与tcp的连接等同,在TCP/IP协议中,UDP和ICMP是没有所谓的连接的,但是对于state模块来说,tcp、udp、icmp报文,都是有连接状态的,我们可以这样认为,对于state模块而言,
只要两台机器在你来我往的通信,就算建立起了连接,而数据包在这个所谓的链接中是什么状态呢

在state中封包的4种链接状态分别为:
NEW
ESTABLISHED
RELATED
INVALID

NEW:当你在使用UDP、TCP、ICMP等协议时,发出的第一个包的状态就是“NEW”

ESTABLISHED:我们可以把NEW状态包后面的包的状态理解为ESTABLISHED,表示连接以建立。如下图:

RELATED:这里我大致讲一下,当你执行Linux下执行traceroute(Windows下对应的命令为tracert)命令时,这个traceroute会发出一个封包,该封包的TTL(生存时间,Time To Live)位1,当这个包遇到路由器的时候它的TTL会减少1,这时TTL = 0,然后这个包会被丢弃,丢弃这个包的路由器会返回一个ICMP Type 11的封包给你,并告诉你那个发出的数据包已尽死。而这个ICMP Type 11的链接状态就是“RELATED”。

INVALID:状态为INVALID的包就是状态不明的包,也就是不属于前面3中状态的包,这类包一般会被视为恶意包而被丢弃。

通过下面的命令允许ESTABLISHED和RELATED状态的数据包通过:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

通过上面的命令就可以正常的访问浏览器了。

十一、iptables-save命令

 选项

-c:指定要保存的iptables表时,保存当权的数据包计算器和字节计数器的值。
-t:指定要保存的表的名称。

实例:保持当前主机iptables的规则到文件/etc/local/iptables/rules.v4.1.save(这个文件的路径和名字可以自定义)

iptables-save > /etc/local/iptables/rules.v4.1.save

十二、iptables-restore命令


iptables-restore命令用来还原iptables-save命令所备份的iptables配置。

选项

-c:指定在还原iptables表时候,还原当前的数据包计数器和字节计数器的值。
-t:指定要还原表的名称。

实例

iptables-restore   <  /etc/local/iptables/rules.v4.1.save

/etc/local/iptables/rules.v4.1.save是iptables-save命令所备份的文件。
 

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

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

相关文章

Vulnhub:Kira: CTF靶机

kali&#xff1a;192.168.111.111 靶机&#xff1a;192.168.111.238 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.238访问80端口 点击upload发现是个上传点 点击language发现存在文件包含 上传php图片马再利用文件包含反弹shell http://1…

CIO40: 数字化落地最佳实践(16000字)

1-数字化规划 第一步&#xff1a;数字化规划。CIO要根据企业的发展现况及未来战略方向、根据企业董事长的布局和理念、根据企业各业务板块领导人的格局和理念&#xff0c;做出一份董事长和领导层高度认同的数字化规划&#xff0c;而且需要用PPT进行完整和专业的表达出来&#x…

基于SpringBoot的在线教育平台系统

基于SpringBootVue的线教育平台系统&#xff0c;前后端分离 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色&#xff1a;管理员、学生、老师 …

When后接什么动词?

1、when doing用法 When从句的主语和主句的主语是同一个或同一些人时&#xff0c;从句的谓语动词为be动词doing形式&#xff0c;可以把从句的主语和be动词省略&#xff0c;即用when doing sth是指当做……事情时&#xff0c; 如&#xff1a; when doing the work,we should b…

(以太网交换机)BCM53575B0KFSBG、BCM56870A0KFSBG、BCM56760B0KFSBG采用BGA封装的集成电路

一、BCM53575B0KFSBG 1G/2.5G/10G/25G TSN 连接交换机 应用 中小企业 2.5G/10G 交换机 使用时间敏感网络&#xff08;TSN&#xff09;的工业以太网/汽车应用 联网 (TSN) 的工业以太网/汽车应用 用于基站、闪存阵列、专业级音频/视频和机箱背板的嵌入式连接交换机 &#xff08;…

自然语言处理NLP:一文了解NLP自然语言处理技术,NLP在生活中的应用,图导加深了解,NLP语料库,NLP开源工具

目录 1.自然语言处理NLP 1.1 NLP中英对照&#xff08;双份&#xff09; 1.2 相关文章 2.NLP语料库 2.1 NLP语料库列举 2.2 相关文章 3.NLP开源工具 3.1 NLP开源工具列举 3.2 相关文章 4.自然语言文本分类模型代码 5.图导NLP 6. NLP在生活中的应用 1.自然语言处理NLP …

Kafka中Consumer源码解读

Consumer源码解读 本课程的核心技术点如下&#xff1a; 1、consumer初始化 2、如何选举Consumer Leader 3、Consumer Leader是如何制定分区方案 4、Consumer如何拉取数据 5、Consumer的自动偏移量提交 Consumer初始化 从KafkaConsumer的构造方法出发&#xff0c;我们跟踪到…

ubuntu22.04 设置网卡开机自启

配置文件路径 在Ubuntu中&#xff0c;网络配置文件通常位于/etc/netplan/目录下&#xff0c;其文件名以.yaml为后缀。Netplan是Ubuntu 17.10及更高版本中默认的网络配置工具&#xff0c;用于配置网络接口、IP地址、网关、DNS服务器等。 我们可以看到配置文件为 01-network-ma…

【K210+ESP8266图传上位机开发】TCP server + JPEG图像解析上位机开发

本文章主要记录基于 【K210-ESP8266】 图传和显示的过程&#xff0c;上位机开发过程&#xff0c;系统架构和下位机开发请参考文章&#xff1a; 【K210-ESP8266】开发板上传图像数据到服务器并实时显示 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是喜欢记录零碎知…

easyrecovery 2023最新数据恢复软件免费下载激活教程

对于每天电脑不离身&#xff0c;键盘不离手的法律人来说&#xff0c;最惨痛的事故莫过于“没保存”了&#xff0c;意外断电、系统崩溃、介质故障、计算机病毒、文件误删除、系统升级、文件同步更新、程序运行意外中止、人为故意删改等各种原因都可能导致我们的文件数据损坏和丢…

eNSP-抓包实验

拓扑结构图&#xff1a; 实验需求&#xff1a; 1. 按照图中的设备名称&#xff0c;配置各设备名称 2. 按照图中的IP地址规划&#xff0c;配置IP地址 3. 使用Wireshark工具进行抓ping包&#xff0c;并分析报文 4. 理解TCP三次握手的建立机制 实验步骤&#xff1a; 1、配置P…

synchronized,volatile关键字

目录 一&#xff0c;synchronized的特性 1.1 互斥性 1.2 可重入性 二&#xff0c; 死锁 2.1 死锁产生的原因 三&#xff0c;volatile 关键字 3.1 能保证内存可见性 一&#xff0c;synchronized的特性 1.1 互斥性 当两个线程对同一个对象加锁时&#xff0c;后加锁的线程…

Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试

Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试 django运行时报错 报错原因 django运行时的端口被其他服务占用了&#xff0c;此时需要关闭占用端口的服务, django的默认端口为8000 解决办法1 netstat -ano | findstr 8000 // cmd操作获取占用…

天翼云HBlock:盘活存储资源,释放数据价值

马克安德森曾言&#xff1a;“软件正在吞噬世界。” 回顾数据存储过去二十年发展&#xff0c;硬件的更新迭代固然重要&#xff0c;但软件的价值亦不可低估。从2013年软件定义存储首次入围Gartner技术成熟度曲线&#xff0c;再到在虚拟化和云计算环境中大显身手&#xff0c;软件…

运维Shell脚本小试牛刀(八): case模式忽略命令行参数大小写演示

运维Shell脚本小试牛刀(一) 运维Shell脚本小试牛刀(二) 运维Shell脚本小试牛刀(三)::$(cd $(dirname $0)&#xff1b; pwd)命令详解 运维Shell脚本小试牛刀(四): 多层嵌套if...elif...elif....else fi_蜗牛杨哥的博客-CSDN博客 Cenos7安装小火车程序动画 运维Shell脚本小试…

SpringCloud-GetWay 路由网关

接上文 SpringCloud-Hystrix 服务降级与熔断 微服务也是如此&#xff0c;不是所有微服务需要直接暴露给外部调用&#xff0c;就需要使用路由机制&#xff0c;添加一层防护&#xff0c;让所有的请求全部通过路由来转发到各个微服务&#xff0c;并转发给多个相同微服务实例&#…

Linux编辑器 VI VIM

vim 命令模式 插入模式 ex模式 \ 命令模式 /查找关键字后&#xff0c;按n键在找到的结果之前来换的切换、 EX模式

响应式布局(3种) + flex计算

响应式布局 1.媒体查询2.使用百分比、rem、vw、vh等相对单位来设置元素的宽度、高度、字体大小等1.rem与em2.vw、vh、vmax、vmin 3.Flexboxflexbox计算题 响应式布局是指同一个页面在不同屏幕尺寸下有不同的布局。 1.媒体查询 媒体查询是最基础的实现响应式的方式 使用media关键…

再见 MySQL 5.7 !

点击下方名片&#xff0c;设为星标&#xff01; 回复“1024”获取2TB学习资源&#xff01; 对从事互联网 IT 技术岗位的来说&#xff0c;数据库也是我们日常必备的技能之一&#xff0c;而 MySQL 数据库更是常见、常用的数据库之一。 根据 DB-Engines 的数据显示&#xff0c;MyS…

Matlab之DICOM(数字图像和通信医学)格式图像数据读取函数dicomread

一、DICOM是什么&#xff1f; DICOM是数字图像和通信医学格式的图像数据&#xff0c;在MATLAB中&#xff0c;可以使用dicomread函数读取DICOM格式的图像数据。 二、dicomread函数 使用方法如下&#xff1a; imageData dicomread(filename);其中&#xff0c;filename表示DI…