零基礎快速了解掌握Linux防火墻-Iptables

一、 Iptables概述

Iptables 是一個用戶空間程序,可以用于設置和管理 Linux 操作系統的內核級防火墻。它通過表、鏈和 規則組成,可以靈活地根據不同的需求進行配置。

iptables 具有以下特點:

  • Iptables 作為內核級別的防火墻,具有高效、穩定、安全等優點。

  • Iptables 的表、鏈、規則結構非常靈活,可適應各種不同的網絡環境和應用場景。

  • Iptables 相對于其他防火墻工具而言比較容易學習和掌握,并且拓展性非常強。

二、 Iptables 組成

Iptables 的核心是由表(table)、鏈(chain)和規則(rule)三部分組成的。

表(Table)

在 iptables 中,表是一個規則的集合,每個表都包含若干個鏈和一些相關的規則。常用的五種 table 如 下:

  • raw表:確定是否對該數據包進行狀態跟蹤。包含兩個規則鏈,OUTPUT、PREROUTING。
  • mangle表:修改數據包內容,用來做流量整形的,給數據包設置標記。包含五個規則鏈,INPUT、 OUTPUT、FORWARD、PREROUTING、POSTROUTING。
  • nat表:負責網絡地址轉換,用來修改數據包中的源、目標IP地址或端口。包含三個規則鏈, OUTPUT、PREROUTING、POSTROUTING。
  • filter表:負責過濾數據包,確定是否放行該數據包(過濾)。包含三個規則鏈,INPUT、 FORWARD、OUTPUT。

表之間的優先級

數據包到達防火墻時,規則表之間的優先順序 raw > mangle > nat > filter

鏈(Chain)

在 iptables 中,鏈是一個規則的集合,每個鏈都包含一些相關聯的規則。

  • INPUT鏈: 當接收到防火墻本機地址的數據包(入站)時,應用此鏈中的規則。
  • OUTPUT鏈: 當防火墻本機向外發送數據包(出站)時,應用此鏈中的規則。
  • FORWARD鏈: 當接收到需要通過防火墻發送給其他地址的數據包(轉發)時,應用此鏈中的規 則。
  • PREROUTING鏈: 在對數據包作路由選擇之前,應用此鏈中的規則,用來修改目的地址,如 DNAT。
  • POSTROUTING鏈: 在對數據包作路由選擇之后,應用此鏈中的規則,用來修改源地址,如 SNAT。

鏈表對應關系

數據包過濾的匹配流程

  • 入站

入站數據包從A網絡發到B網絡,首先發到防火墻,先后順序經過有PREROUTING鏈的三個表(raw、 mangle、nat),如果都是放通狀態的會經過路由選擇,然后根據目的地址一層一層往上送,經過有 INPUT的兩個表(mangle、filter),一直送到應用程序。

  • 轉發

目的地不是本機,數據包先從A網絡過濾,經過PREROUTING鏈,看是否是自己的目的地址,如果是外網 到內網需要用nat轉換成內網IP,找到內網用戶,經過FORWARD鏈進行過濾,允許放通的到達 POSTROUING鏈,再把內網地址轉換成公網,這樣數據包才能回去;如果是內網往外網發順序就是反過 來。

  • 出站

從本機的應用程序發出來, 經過路由選擇,讓路由知道從哪里發,先后順序經過有OUTPUT鏈的四個表 (raw、mangle、nat、filter),都放通后到達POSTROUING鏈的兩個表(mangle、nat),如果沒有 什么轉換地址,就出站。

  • 總結

當一個數據包進入網卡時,數據包首先進入PREROUTING鏈,內核根據數據包目的IP判斷是否需要轉送 出去。

如果數據包是進入本機的,數據包就會沿著圖向上移動,到達INPUT鏈。數據包到達INPUT鏈后, 任何 進程都會收到它。本機上運行的程序可以發送數據包,這些數據包經過OUTPUT鏈,然后發送出去。

如果數據包是要轉發出去的,且內核允許轉發,數據包就會向右移動,經過FORWARD鏈,然后到達 POSTROUTING鏈輸出。

規則匹配策略

自上而下進行順序匹配,匹配到即停止,不會再去查看下面的規則,然后根據允許或者丟棄或者拒絕等 規則進行數據包的處理!!!

三、 Iptables防火墻配置

  • iptables命令

語法 iptables [-t 表名] 管理選項 [鏈名] [匹配條件] [-j 控制類型]

注意:鏈名必須大寫;控制類型必須大寫

選項作用
-t指定表名(raw、mangle、nat、filter)
-j指定控制類型

常用管理選項

常用控制類型

匹配條件

命令操作

添加新的規則

##-A 在filter表的INPUT鏈末行添加拒絕icmp的規則
[root@localhost ~]# iptables -t filter -A INPUT -p icmp -j REJECT
##-I 不指定行,是在指定鏈首行插入規則(允許tcp 22端口)
[root@localhost ~]# iptables -t filter -I INPUT -p tcp --dport 22 -j ACCEPT
##-I 指定行,是在指定鏈的指定行上插入規則
[root@localhost ~]# iptables -t filter -I INPUT 2 -p tcp --dport 22 -j ACCEPT

查看規則

##查看指定表的規則(不加鏈名顯示所有鏈的所有規則)
[root@localhost ~]# iptables -t filter -L
##-nL 以數字形式顯示
[root@localhost ~]# iptables -t filter -nL
##-nvL 以數字形式顯示,并顯示詳細信息
[root@localhost ~]# iptables -t filter -nvL##--line-numbers 顯示規則序號(指定鏈名,就顯示指定鏈的規則)
[root@localhost ~]# iptables -t filter -nvL INPUT --line-numbers
編號 包數量 大小 規則 協議 選項 入站網卡 出站網卡 源地址 目的地址 
條件
num ? pkts bytes target ? ? prot opt in ? ? out ? ? source ? ? ? ? ? ? ? 
destination ? 1 ? ? ? ?2 ? 168 ACCEPT ? ? icmp -- * ? ? * ? ? ? 192.168.1.250 ? ? ? 0.0.0.0/0 ? ? ? ? ? 
2 ? ? ? ?9 ? 844 REJECT ? ? icmp -- * ? ? * ? ? ? 0.0.0.0/0 ? ? ? ? ? 0.0.0.0/0 ? ? ? ? ? reject-with icmp-port-unreachable
3 ? ? ? ?9 ?2041 ACCEPT ? ? tcp ?-- * ? ? * ? ? ? 192.168.1.250 ? ? ? 0.0.0.0/0 ? ? ? ? ? tcp dpt:22
4 ? ? ?346 24461 ACCEPT ? ? tcp ?-- * ? ? * ? ? ? 192.168.1.252 ? ? ? 0.0.0.0/0 ? ? ? ? ? tcp dpt:22
5 ? ? ? 31 ?2548 REJECT ? ? tcp ?-- * ? ? * ? ? ? 0.0.0.0/0 ? ? ? ? ? 0.0.0.0/0 ? ? ? ? ? tcp dpt:22 reject-with icmp-port-unreachable

刪除規則

注意

若規則列表中期多條相同的規則時,按內容匹配只刪除的序號最小的一條

按號碼匹配刪除時,確保規則號碼小于等于已有規則數,否則報錯 按內容匹配刪數時,確保規則存在, 否則報錯

##根據規則序號刪
[root@localhost ~]# iptables -D INPUT 3
##根據規則內容刪(相當于操作一遍創建指定規則的步驟加上-D選項刪除)
[root@localhost ~]#iptables -D INPUT -p icmp -j REJECT
##有相同的規則會刪除第一個
[root@localhost ~]#iptables -nL
[root@localhost ~]#iptables -D INPUT -p tcp --dport 22 -j ACCEPT

清空規則

注意?
-F僅僅是清空鏈中的規則,并不影響-Р設置的默認規則,默認規則需要手動進行修改?

-P設置了默認規則為DROP后,使用-F一定要小心,因為iptables的修改是立刻生效的! 防止把允許遠程連
接的相關規則清除后導致無法遠程連接主機,此情況如果沒有保存規則可重啟主機解決


如果不寫表名和鏈名,默認清空filter表中所有鏈里的所有規則

##清空指定鏈中所有規則
[root@localhost ~]# iptables -F OUTPUT
##不指定鏈名默認清空所有規則
[root@localhost ~]# iptables -F

修改規則

##-R 修改已有的規則
[root@localhost ~]# iptables -t filter -R INPUT 1 -p icmp -j ACCEPT
##-P 修改默認策略(修改為丟棄轉發數據包)
[root@localhost ~]# iptables -P FORWARD DROP

四、 規則的匹配

1、通用匹配

可直接使用,不依賴其他條件或擴展包括網絡協議、IP地址、網絡接口等條件。

##(使用!取反)不是icmp協議的其他數據包全部接受
##雖然不是icmp包都接受,但是沒有指定icmp包的規則,所以icmp包默認還是接受的
[root@localhost ~]# iptables -A INPUT ! -p icmp -j ACCEPT
##將指定主機192.168.116.20的數據包丟棄
[root@localhost ~]# iptables -A INPUT -s 192.168.116.20 -j DROP
##拒絕指定網段的數據包從ens33網卡進入
[root@localhost ~]# iptables -I INPUT -i ens33 -s 192.168.110.0/24 -j REJECT

2、隱含匹配

某些條件,如端口、TCP標記、ICMP類型,隱含要求以特定的協議匹配作為前提。

  • 協議端口匹配

--sport 和 --dsport 必須配合 -p 指定協議使用!!!

詳細用法

##允許tcp的20和21端口通過(即允許ftp數據包)
[root@localhost ~]# iptables -I INPUT -p tcp --dport 20:21 -j ACCEPT
##丟棄192.168.11.0網段轉發的tcp 24000到24500 端口的數據包
[root@localhost ~]# iptables -I FORWARD -d 192.168.11.0/24 -p tcp --dport 
24000:24500 -j DROP

tcp標記匹配 [了解]

--tcp-flags 配合 -p tcp 使用,指定tcp標記(SYN、ACK、RST、URG、PSH、FIN)

##丟棄SYN請求包,允許其他指定的數據包
[root@localhost ~]# iptables -A INPUT -p tcp --tcp-flags SYN,RST,ACK SYN -j 
ACCEPT
##SYN,RST,ACK SYN 前面指定包范圍,空格后再指定
##表明前面指定的里面,除了這空格后面的SYN,其他都放行
##tcp三次握手第一次接受SYN,拒絕其他,第二次發送SYN和ACK
[root@localhost ~]# iptables -I INPUT -p tcp --dport 22 --tcp-flags 
SYN,ACK,FIN,RST,URG,PSH SYN -j REJECT
[root@localhost ~]# iptables -I OUTPUT -p tcp --dport 22 --tcp-flags 
SYN,ACK,FIN,RST,URG,PSH SYN,ACK -j REJECT
  • ICMP類型匹配

--icmp-type 配合 -p icmp 使用,指定icmp類型(字符串或數字代碼)

icmp類型可用iptables -p icmp -h 查看幫助信息

##丟棄icmp請求包(使別人不能ping通本機,但本機默認情況可以ping通別人)
[root@localhost ~]# iptables -A INPUT -p icmp --icmp-type 8 -j DROP
##丟棄icmp回顯包(本機發送ping請求,但是別人回顯的包被本機丟棄,默認情況下本機不能ping通別
人)
[root@localhost ~]# iptables -A INPUT -p icmp --icmp-type 0 -j DROP
##當ping不通時,允許顯示目標不可達
[root@localhost ~]# iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT

3、顯式匹配

要求以 -m (擴展模塊)的形式明確指出類型,包括多端口、MAC地址、IP范圍、數據包狀態等條件。

  • 多端口匹配

-m multiport --sport 源端口列表

?-m multiport --dport 目的端口列表

##允許tcp的20,21,22,53端口
[root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 20,21,22,53 
-j ACCEPT
Chain INPUT (policy ACCEPT)
target ? ? prot opt source ? ? ? ? ? ? ? destination ? ? ? ? 
ACCEPT ? ? tcp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ? multiport dports 
20,21,22,53
##允許udp的53,67,68端口
[root@localhost ~]# iptables -A INPUT -p udp -m multiport --dport 53,67,68 -j 
ACCEPT
  • ip范圍匹配

-m iprange --src-range 源IP范圍

-m iprange --dst-range 目的IP范圍

##禁止轉發源ip范圍是192.168.10.100-192.168.10.200的udp數據包
[root@localhost ~]# iptables -A FORWARD -p udp -m iprange --src-range 
192.168.10.100-192.168.10.200 -j DROP
Chain FORWARD (policy ACCEPT)
target ? ? prot opt source ? ? ? ? ? ? ? destination ? ? ? ? 
DROP ? ? ? udp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ? ?source IP range 
192.168.1.1-192.168.1.10 
##禁止發送目的ip范圍是192.168.10.100-192.168.10.200的udp數據包
[root@localhost ~]# iptables -A INPUT -p udp -m iprange --dst-range 
192.168.10.100-192.168.10.200 -j DROP
  • mac地址匹配【了解】

-m mac --mac-source 源MAC地址

  • 狀態匹配【了解】

-m state --state 連接狀態

常見的連接狀態

##第一個包我只看22端口的包(-p tcp是隱含匹配,可以省略-m tcp)
[root@localhost ~]# iptables -I INPUT -m state --state NEW -m tcp -p tcp --
dport 22 -j ACCEPT
##允許放通tcp和udp的這些端口號
[root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 
443,80,22,21,20,53 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p udp -m multiport --dport 53 -j 
ACCEPT
##使已建立連接的包以及該鏈接相關的包允許通過
[root@localhost ~]# iptables -A INPUT -p tcp -m state --state 
ESTABLISHED,RELATED -j ACCEPT
##默認策略設為drop,以上所有配置就成了一個tcp相關包的白名單,通過第一步的檢測后允許相關包
通過
[root@localhost ~]# iptables -P INPUT DROP

五、Iptables配置NAT地址轉換

1、 配置SNAT

應用場景

局域網主機共享轉換的公網ip接入internet公網(內 --> 外)

模擬實驗環境

私網客戶端一臺、網關服務器一臺(設置iptables防火墻)、外網web服務端(有httpd服務) 三臺都需要關閉默認防火墻firewalld和selinux 準備私網客戶端:設置網卡網段為192.168.1.0/24;ip設為192.168.1.1;網關設為 192.168.1.254。 準備網關服務器:一個網卡設為192.168.1.0/24網段,并設置ip為192.168.1.254;另一個網卡設為 10.0.0.0/8網段,并設置ip為10.0.0.100;添加路由轉發功能;下載 iptables-services 并開始 iptables之后做防護墻策略。 準備外網web服務端:設置網卡網段為10.0.0.0/8;ip設為10.0.0.1;下載并開啟httpd服務。

轉換為固定公網ip

iptables -t nat -A POSTROUTING -s 源網段 -o 出站網卡 -j SNAT --to 轉換的公網地址
iptables -t nat -A POSTROUTING -s 源網段 -o 出站網卡 -j SNAT --to-source 轉換的公
網地址范圍(如10.0.0.1-10.0.0.10)
注:每一個做轉換的公網ip,一般可以支持內網100~200臺主機。
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ens33 
-j SNAT --to 10.0.0.100
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ens33 
-j SNAT --to-source 10.0.0.1 10.0.0.10

轉換為非固定的公網ip(動態)

iptables -t nat -A POSTROUTING -s 源網段 -o 出站網卡 -j MASQUERADE

[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j 
MASQUERADE

2、配置DNAT

應用場景

在internet公網中發布位于企業局域網的服務器(外 --> 內)

模擬實驗環境

網客戶端一臺(有httpd服務)、網關服務器一臺(設置iptables防火墻)、外網web服務端 三臺都需要關閉默認防火墻firewalld和selinux 可參考上個模擬場景,再為私網主機增設httpd服務使之成為私網web服務端,將原來的外網主機當做客戶 端。 為私網主機添加httpd服務并啟用

轉換為私網ip

iptables -t nat -A PREROUTING -i 連接外部網絡的接口名稱 -d 外部接口IP地址 -p tcp - -dport 發布的端口號 -j DNAT --to-destination 服務器內部網絡地址:服務實際端口號

[root@localhost ~]# iptables -t nat -A PREROUTING -i ens33 -d 10.0.0.100 -p 
tcp --dport 80 -j DNAT --to-destination 192.168.1.2

六、iptables防火墻策略的備份和恢復

iptables的配置存放在/etc/sysconfig/iptables 文件中,我們對iptables所做的策略修改,雖然會立刻生 效,但是并沒有保存下來,當我們重啟iptables防火墻時,會讀取配置文件中設置的策略,我們之前修改 過的策略便失效了。所以需要對修改的iptables策略進行備份和恢復。

iptables-save > 備份文件 將修改的iptables策略導入到備份文件中

iptables-restore < /opt/iptables.bak 將備份文件中的策略還原到配置文件中

systemctl restart iptables.service 重啟服務生效

##查看配置文件中的默認策略
[root@localhost opt]#cat /etc/sysconfig/iptables-config
##使用iptables -nL查看修改過的策略
[root@localhost opt]#iptables -nL
##對自定義的iptables策略做備份(將命令導入一個備份文件iptables.bak)
[root@localhost opt]# iptables-save > /opt/iptables.bak
[root@localhost opt]# cd /opt
[root@localhost opt]# cat iptables.bak
##重啟服務(用作模擬未保留修改的策略),再查看發現策略又恢復成了配置文件中的默認策略
[root@localhost opt]# systemctl restart iptables.service
[root@localhost opt]# iptables -nL
##將備份文件中的策略恢復到配置文件中,再重啟服務就還原成功了
[root@localhost opt]# iptables-restore < /opt/iptables.bak
[root@localhost opt]# systemctl restart iptables.service
[root@localhost opt]# iptables -nL

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/96359.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/96359.shtml
英文地址,請注明出處:http://en.pswp.cn/web/96359.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

12公里無人機圖傳模組:從模糊到超高清的飛躍,抗干擾能力全面升級

在無人機行業飛速發展的今天&#xff0c;高清圖像傳輸已成為衡量無人機性能的重要標志之一。過去&#xff0c;無人機在長距離飛行時常常面臨信號衰減、圖像模糊&#xff0c;甚至數據丟失的問題&#xff0c;影響了用戶的體驗與應用效果。為了打破這一瓶頸&#xff0c;業內專家不…

從 “模板” 到 “場景”,用 C++ 磨透拓撲排序的實戰邏輯

文章目錄前言&#xff1a;《算法磨劍: 用C思考的藝術》 專欄《C&#xff1a;從代碼到機器》 專欄《Linux系統探幽&#xff1a;從入門到內核》 專欄正文&#xff1a;[B3644 【模板】拓撲排序 / 家譜樹](https://www.luogu.com.cn/problem/B3644)【解法】【參考代碼】[P2712 攝像…

盲盒抽卡機小程序:從0到1的蛻變之路

盲盒抽卡機小程序從概念提出到最終上線&#xff0c;經歷了從0到1的蛻變過程。這個過程充滿了挑戰與機遇&#xff0c;也凝聚了開發團隊的智慧和汗水。本文將分享盲盒抽卡機小程序的開發歷程&#xff0c;探討其背后的技術實現和市場策略。需求分析&#xff1a;明確目標用戶與市場…

分層-三層架構

文章目錄介紹代碼拆分Dao層server層controller層運行結果介紹 在我們進行程序設計以及程序開發時&#xff0c;盡可能讓每一個接口、類、方法的職責更單一些&#xff08;單一職責原則&#xff09;。 單一職責原則&#xff1a;一個類或一個方法&#xff0c;就只做一件事情&#…

Vue2 VS Vue3

vue3 是的&#xff0c;Vue 3 確實取消了基于 JavaScript 原型的 Vue 和 VueComponent 構造函數&#xff08;即你提到的 vm 和 vc&#xff09;&#xff0c;取而代之的是一種完全不同的、基于普通對象和代理&#xff08;Proxy&#xff09;的實例管理方式。 這是一個顛覆性的改變…

Vue3入門到實戰,最新版vue3+TypeScript前端開發教程,Vue3簡介,筆記02

筆記02 一、Vue3簡介 1.1、Vue3發布日期&#xff1a; 2020年9月18日 1.2、Vue3做了哪些升級&#xff1a; 1.2.1、性能的提升 官方發版地址&#xff1a;Release v3.0.0 One Piece vuejs/core 打包大小減少41%初次渲染快55%更新渲染快133%內容減少54% 1.2.2、源碼的優化…

.net core webapi/mvc阿里云服務器部署 - 錯誤解決

錯誤及解決方案缺少web.config配置HTTP 錯誤 500.19 - Internal Server Error檢查 IIS 配置1. 確保 .NET Core Hosting Bundle 已安裝2. 檢查 應用程序池 配置3. 檢查 IIS MIME 類型檢查文件權限1. 確保 IIS 用戶 有權限訪問網站目錄2. 檢查 web.config 文件權限啟用詳細錯誤日…

多輸入(input)多輸出(output)驗證

#作者&#xff1a;程宏斌 文章目錄前言Flb 1.9.4 INCLUDE配置測試測試方案測試配置文件測試命令Flb 3.0.2 INCLUDE配置測試測試方案測試配置文件啟動命令結論結論一&#xff1a;結論二&#xff1a;前言 需要設計并執行一組測試用例&#xff0c;這些測試用例將包括以子文件形式…

行業學習【電商】:垂直電商如何理解?以專業寵物平臺為例

聲明&#xff1a;以下部分內容含AI生成 “寵物等愛好者的專業平臺”指的是垂直電商的一個具體例子。 “垂直電商” 就是指不賣所有東西&#xff0c;只深耕某一個特定領域&#xff08;即“垂直”領域&#xff09;的電商平臺。 “寵物愛好者的專業平臺”就是這樣一個專門為養寵…

GPT(Generative Pre-trained Transformer)模型架構與損失函數介紹

目錄 一、核心架構&#xff1a;Transformer Decoder 1. 核心組件&#xff1a;僅解碼器&#xff08;Decoder-Only&#xff09;的堆疊 2. 輸入表示&#xff1a;Token 位置 3. 輸出 二、訓練過程&#xff1a;兩階段范式 階段一&#xff1a;預訓練&#xff08;Pre-training&…

GitHub 熱榜項目 - 日榜(2025-09-10)

GitHub 熱榜項目 - 日榜(2025-09-10) 生成于&#xff1a;2025-09-10 統計摘要 共發現熱門項目&#xff1a;15 個 榜單類型&#xff1a;日榜 本期熱點趨勢總結 本期GitHub熱榜呈現三大技術熱點&#xff1a;LLM智能體應用爆發&#xff08;如parlant、AutoAgent&#xff09;&a…

論文閱讀:arxiv 2023 Large Language Models are Not Stable Recommender Systems

總目錄 大模型相關研究&#xff1a;https://blog.csdn.net/WhiffeYF/article/details/142132328 https://arxiv.org/pdf/2312.15746 速覽 破解大語言模型在推薦系統中的不穩定性 該論文聚焦于大語言模型&#xff08;LLMs&#xff09;在推薦系統中的應用問題&#xff0c;指出…

Linux的使用——FinalShell下載使用及連接云服務器的教程

一、注冊免費阿里云服務器 1. 進入阿里云服務器官網 阿里云-計算&#xff0c;為了無法計算的價值https://www.aliyun.com/?spm5176.ecscore_server.console-base_top-nav.dlogo.39144df5uvPLOm 2. 點擊免費試用 這里我已經試用過了&#xff0c;大家選擇合適的云服務器點擊立…

如何清理 Docker 占用的巨大磁盤空間

我相信很多人在使用 Docker 一段時間后&#xff0c;都會遇到一個常見問題&#xff1a;磁盤空間被迅速吃光&#xff0c;尤其是在進行頻繁的鏡像構建、測試和運行容器時。以我自己為例&#xff0c;在 Ubuntu 24.04設備上&#xff0c;docker system df -v 一看&#xff0c;Docker …

【CMake】緩存變量

目錄 一. 緩存變量 二.創建緩存變量 2.1.使用set()來創建緩存變量 2.2.使用FORCE參數來覆蓋緩存變量 2.2.1.示例1——不帶force的set是不能覆蓋已經存在的緩存變量的 2.2.2.示例2——帶force的set才能覆蓋已經存在的緩存變量 2.2.3.對比示例 2.3.命令行 -D 創建/覆蓋緩…

vue2使用若依框架動態新增tab頁并存儲之前的tab頁的操作

1. 應用場景&#xff1a;點擊歷史記錄&#xff0c;要比較兩個tab頁的內容時&#xff0c;需要做到切換tab頁來回看左右對數據對比。2.開發難點若依項目正常是把路由配置到菜單管理里&#xff0c;都是設定好的。不過它也給我們寫好了動態新增tab頁的方&#xff0c;需要我們自己來…

論文閱讀-SelectiveStereo

文章目錄1 概述2 模塊2.1 SelectiveIGEV和IGEV的差異2.2 上下文空間注意力2.2.1 通道注意力2.2.2 空間注意力2.3 SRU3 效果參考資料1 概述 本文主要結合代碼對Selective的創新點進行針對性講解&#xff0c;相關的背景知識可以參考我寫的另兩篇文章論文閱讀-RaftStereo和論文閱…

深入分析神馬 M56S+ 202T 礦機參數與性能特點

引言在比特幣&#xff08;BTC&#xff09;和比特幣現金&#xff08;BCH&#xff09;等主流加密貨幣的挖掘過程中&#xff0c;礦機的選擇直接關系到挖礦的效率與收益。神馬 M56S 202T礦機是SHA-256算法的礦機&#xff0c;憑借其強大的算力和高效的能效比&#xff0c;成為了礦工們…

36.2Linux單總線驅動DS18B20實驗(詳細講解代碼)_csdn

想必看過我很多次博客的同學&#xff0c;都知道了編寫驅動的流程&#xff01; 這里我們還是按照以前的習慣來一步一步講解&#xff01; 單總線驅動&#xff0c;在F103和51單片機的裸機開發中是經常見的。 linux驅動代碼編寫實際上就是&#xff0c;端對端的編程&#xff01; 就是…

【雜類】應對 MySQL 處理短時間高并發的請求:緩存預熱

一、什么是緩存預熱&#xff1f;1. 核心概念??緩存預熱&#xff08;Cache Warm-up&#xff09;?? 是指在系統??正式對外提供服務之前??&#xff0c;或??某個高并發場景來臨之前??&#xff0c;??主動??將后續極有可能被訪問的熱點數據從數據庫&#xff08;MySQL…