Iptables 詳細使用指南

目錄

1. 工作原理?

2. 核心架構(四表五鏈)

2.1?四張表(優先級從高到低)

2.2 五條內置鏈(數據包流向)

3. Iptables規則

3.1 規則的匹配條件與目標動作

常見匹配條件(用于篩選數據包)

常見目標動作(滿足條件后對數據包的處理)

3.2 規則的匹配順序與默認策略

4. 操作命令

5. 工作流程

6. 常見案例

6.1 基礎防火墻配置(只允許必要服務)

6.2 端口轉發(將外部 80 端口轉發到內部服務器 192.168.8.8:8080)

6.3 共享上網(局域網通過網關訪問公網,網關公網 IP 為 88.88.88.88)

6.4 刪除指定表指定鏈的規則

6.5 日志記錄

6.6 防暴力破解(限制 SSH 連接頻率)

6.7 禁止特定 IP / 網段訪問

6.8 只允許特定 IP 訪問敏感端口

6.9 單向通信控制(如禁止外部 ping 本機,但本機可 ping 外部)

6.10?保存與恢復規則

6.11 清空與重置規則

7. 高級應用案例

7.1 精細化流量控制與狀態管理

場景:企業內網多區域隔離與訪問控制

7.2 帶寬限制與流量整形(結合?tc)

場景:限制非核心業務(如下載)的帶寬,保障核心服務(如數據庫)

7.3 高級 NAT 應用(端口復用、雙向 NAT)

1. 端口復用(一個公網端口映射到內網多個服務)

2. 雙向 NAT(內外網 IP 雙向轉換)

7.4 透明代理與流量劫持

場景:強制內網所有 HTTP 流量經過代理服務器(10.0.0.10:3128)

7.5 入侵檢測與自動防御(結合腳本)

場景:自動封禁 10 分鐘內 SSH 失敗超過 5 次的 IP

7.6 特定協議的深度過濾(如 FTP、DNS)

場景:允許 FTP 服務(支持主動 / 被動模式)

7.7 容器與虛擬化環境的網絡隔離

場景:限制 Docker 容器只能訪問特定外網 IP

7.8 高可用集群中的規則同步


1. 工作原理?

????????iptables 是 Linux 系統中一款經典的防火墻管理工具,它通過操作內核中的?Netfilter?框架(Linux 內核的數據包處理引擎),實現對網絡數據包的過濾、轉發、地址轉換等功能。簡單來說,Netfilter 是內核中負責 “干活” 的組件,而 iptables 是用戶空間中用于 “指揮” Netfilter 的工具。

2. 核心架構(四表五鏈

2.1?四張表(優先級從高到低)

表名功能描述典型應用場景
raw連接跟蹤(conntrack)前的預處理禁用連接追蹤(NOTRACK
mangle修改數據包(TTL、TOS、MARK等)流量標記(QoS)、拆包重組
nat網絡地址轉換(SNAT/DNAT)端口轉發、IP 偽裝(MASQUERADE)
filter包過濾(允許/拒絕/丟棄)防火墻規則

2.2 五條內置鏈(數據包流向)

鏈名觸發時機
PREROUTING數據包進入網卡后、路由決策前(raw → mangle → nat
INPUT路由決策后,目標是本機的數據包(mangle → filter
FORWARD路由決策后,目標非本機的數據包(mangle → filter
OUTPUT本機進程發出的數據包(raw → mangle → nat → filter
POSTROUTING數據包離開網卡前(mangle → nat

3. Iptables規則

對數據包的具體處理邏輯,規則是鏈中的 “指令”,每條規則由匹配條件目標動作兩部分組成:

  • 匹配條件:定義數據包的特征(如源 IP、目的端口、協議等)。
  • 目標動作:滿足條件時對數據包的處理方式(如允許、拒絕、修改地址等)。

3.1 規則的匹配條件與目標動作

常見匹配條件(用于篩選數據包)
  • 基本匹配條件(無需額外模塊,直接使用):

    • -s 源IP:指定數據包的源 IP(如?-s 192.168.1.100)。
    • -d 目標IP:指定數據包的目標 IP(如?-d 8.8.8.8)。
    • -p 協議:指定協議(如?-p tcp-p udp-p icmp)。
    • --sport 源端口:指定源端口(僅用于 TCP/UDP,如?--sport 80)。
    • --dport 目標端口:指定目標端口(如?--dport 22,表示 SSH 端口)。
    • -i 入站網卡:數據包進入的網卡(如?-i eth0)。
    • -o 出站網卡:數據包離開的網卡(如?-o eth1)。
  • 擴展匹配條件(需加載擴展模塊,用?-m 模塊名?指定):

    • 多端口匹配(-m multiport):如?--dports 80,443(匹配 80 或 443 端口)。
    • IP 范圍匹配(-m iprange):如?--src-range 192.168.1.1-192.168.1.10(源 IP 在該范圍)。
    • 狀態匹配(-m state):如?--state NEW,ESTABLISHED(匹配新連接或已建立的連接)。
常見目標動作(滿足條件后對數據包的處理)
  • ACCEPT:允許數據包通過,繼續后續流程。
  • DROP:直接丟棄數據包,不返回任何響應(對方會等待超時)。
  • REJECT:拒絕數據包,并返回 “拒絕” 響應(如 ICMP 不可達),對方能立即知道被拒絕。
  • SNAT:修改數據包的源 IP(源地址轉換),常用于局域網共享上網(如?--to-source 公網IP)。
  • DNAT:修改數據包的目的 IP 或端口(目的地址轉換),常用于端口轉發(如?--to-destination 192.168.1.2:8080)。
  • MASQUERADE:動態 SNAT(適用于公網 IP 不固定的場景,如 ADSL 撥號,無需指定具體 IP)。
  • LOG:將數據包信息記錄到系統日志(/var/log/messages),不影響數據包處理(需配合其他動作使用)。

3.2 規則的匹配順序與默認策略

  • 匹配順序:鏈中的規則按 “從上到下” 依次匹配,一旦匹配成功,立即執行對應動作,不再檢查后續規則。因此,規則的順序至關重要(如 “允許 SSH” 需放在 “拒絕所有” 之前)。
  • 默認策略:當數據包不匹配鏈中任何規則時,執行的默認動作(用?-P?設置)。例如:iptables -t filter -P INPUT DROP(filter 表 INPUT 鏈默認拒絕所有未匹配的數據包)。

4. 操作命令

操作目的命令示例
查看規則(默認 filter 表)iptables -L(詳細信息加?-v,顯示編號加?--line-numbers
查看指定表的規則iptables -t nat -L(查看 nat 表規則)
添加規則(末尾)iptables -A INPUT -p tcp --dport 22 -j ACCEPT(允許 SSH 入站)
插入規則(指定位置)iptables -I INPUT 1 -p icmp -j ACCEPT(在 INPUT 鏈第 1 位允許 ping)
刪除規則(按編號)iptables -D INPUT 2(刪除 INPUT 鏈第 2 條規則)
清空所有規則iptables -F(清空當前表,指定表加?-t 表名
設置默認策略iptables -P OUTPUT ACCEPT(OUTPUT 鏈默認允許)
保存規則(CentOS)service iptables save(保存到?/etc/sysconfig/iptables
恢復規則(Ubuntu)iptables-restore < /etc/iptables.rules(從文件恢復)

5. 工作流程

  1. 規則匹配順序

    • 按表優先級:raw → mangle → nat → filter

    • 按鏈內順序:從上到下逐條匹配,命中即執行動作(ACCEPT/DROP/REJECT等)

  2. 默認策略:鏈末尾的?POLICY(如?INPUT DROP

6. 常見案例

6.1 基礎防火墻配置(只允許必要服務)

# 設置默認策略(INPUT/Forward 拒絕,OUTPUT 允許)
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT# 允許已建立的連接(避免影響現有通信)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT# 允許本地回環(避免影響本機服務通信)
iptables -A INPUT -i lo -j ACCEPT# 允許 SSH 連接(端口 22,限制來源 IP 更安全)
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT  # 僅允許內網 SSH
# 若需公網訪問,替換為:iptables -A INPUT -p tcp --dport 22 -j ACCEPT# 允許 HTTP/HTTPS 服務(Web 服務器)
iptables -A INPUT -p tcp --dports 80,443 -j ACCEPT# 允許 ICMP 協議(允許 ping 本機)
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

6.2 端口轉發(將外部 80 端口轉發到內部服務器 192.168.8.8:8080)

# 開啟內核轉發(臨時生效,重啟失效)
echo 1 > /proc/sys/net/ipv4/ip_forward# 在 nat 表 PREROUTING 鏈設置 DNAT(修改目的地址)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.8.8:8080# 允許轉發流量(filter 表 FORWARD 鏈)
iptables -A FORWARD -p tcp -d 192.168.8.8 --dport 8080 -j ACCEPT

6.3 共享上網(局域網通過網關訪問公網,網關公網 IP 為 88.88.88.88)

# 開啟內核轉發
echo 1 > /proc/sys/net/ipv4/ip_forward# 在 nat 表 POSTROUTING 鏈設置 SNAT(修改源地址為網關公網 IP)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 88.88.88.88
# 若公網 IP 不固定(如撥號),用 MASQUERADE 替代 SNAT:
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

6.4 刪除指定表指定鏈的規則

[root@lmzf ~]# iptables -t  raw  -L  Bitdefender-80-out   --line-numbers
# Warning: iptables-legacy tables present, use iptables-legacy to see them
Chain Bitdefender-80-out (0 references)
num  target     prot opt source               destination
1    NFQUEUE    tcp  --  anywhere             anywhere             tcp dpt:http flags:FIN,SYN,RST,ACK/SYN ! owner GID match bitdefender NFQUEUE num 0
[root@lmzf ~]# iptables -t raw  -D   Bitdefender-80-out   1
[root@lmzf ~]# iptables -t  raw  -L  Bitdefender-80-out   --line-numbers
# Warning: iptables-legacy tables present, use iptables-legacy to see them

6.5 日志記錄

為了監控和調試目的,你可能希望記錄某些類型的流量。可以使用 LOG 目標來記錄匹配的數據包。例如,記錄所有嘗試ping本機的行為:

iptables -A INPUT -p icmp --icmp-type echo-request -j LOG --log-prefix "ICMP packet: "

監控特定流量

# 記錄所有訪問 22 端口的流量(日志存于 /var/log/messages)
iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH_ACCESS: " --log-level info# 記錄被拒絕的數據包(便于排查攻擊)
iptables -A INPUT -j LOG --log-prefix "DROPPED_PACKET: " --log-level warning

6.6 防暴力破解(限制 SSH 連接頻率)

# 限制每分鐘最多 10 次 SSH 連接,突發不超過 3 次
iptables -A INPUT -p tcp --dport 22 -m limit --limit 10/min --limit-burst 3 -j ACCEPT
# 超過限制的連接直接丟棄
iptables -A INPUT -p tcp --dport 22 -j DROP

6.7 禁止特定 IP / 網段訪問

# 禁止單個 IP(10.0.0.5)訪問本機
iptables -A INPUT -s 10.0.0.5 -j DROP# 禁止整個網段(192.168.2.0/24)訪問本機 80 端口
iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport 80 -j DROP

6.8 只允許特定 IP 訪問敏感端口

# 僅允許管理員 IP(10.0.0.100)訪問 MySQL 端口(3306)
iptables -A INPUT -s 10.0.0.100 -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP  # 拒絕其他所有 IP

6.9 單向通信控制(如禁止外部 ping 本機,但本機可 ping 外部)

# 禁止外部 ping 本機(拒絕 ICMP 請求)
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP# 允許本機 ping 外部(不限制 ICMP 響應)
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT  # 允許響應包進入

6.10?保存與恢復規則

# 保存規則(CentOS)
service iptables save  # 保存到 /etc/sysconfig/iptables# 保存規則(通用方式)
iptables-save > /etc/iptables.rules# 恢復規則
iptables-restore < /etc/iptables.rules

6.11 清空與重置規則

# 清空所有規則(默認表)
iptables -F# 清空指定表的規則(如 nat 表)
iptables -t nat -F# 重置鏈的默認策略(如 INPUT 鏈恢復為 ACCEPT)
iptables -P INPUT ACCEPT

7. 高級應用案例

7.1 精細化流量控制與狀態管理

基于連接狀態(state?模塊)和更細粒度的匹配條件,實現復雜業務邏輯的流量管控,適用于多服務、多網段的復雜網絡環境。

場景:企業內網多區域隔離與訪問控制

例如,將內網劃分為 “辦公區”“服務器區”“DMZ 區”,通過 iptables 實現:

  • 僅允許辦公區訪問服務器區的特定服務(如 MySQL 3306 端口),且需驗證源 IP 和連接狀態;
  • 禁止服務器區主動訪問辦公區,但允許辦公區發起的 “已建立連接”(如服務器響應辦公區的查詢);
  • DMZ 區(如 Web 服務器)僅允許公網訪問 80/443 端口,且僅能主動訪問服務器區的特定接口(如數據庫查詢)。

核心配置思路

# 1. 創建自定義鏈(簡化規則管理)
iptables -N OFFICE_TO_SERVER  # 辦公區到服務器區的規則鏈
iptables -N DMZ_TO_SERVER    # DMZ到服務器區的規則鏈# 2. 辦公區(192.168.1.0/24)到服務器區(10.0.0.0/24)的規則
iptables -A OFFICE_TO_SERVER -s 192.168.1.0/24 -d 10.0.0.0/24 -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OFFICE_TO_SERVER -j DROP  # 默認拒絕其他流量# 3. DMZ區(172.16.0.0/24)到服務器區的規則(僅允許特定接口)
iptables -A DMZ_TO_SERVER -s 172.16.0.0/24 -d 10.0.0.0/24 -p tcp --dport 3306 -m state --state ESTABLISHED -j ACCEPT  # 僅允許響應
iptables -A DMZ_TO_SERVER -j DROP# 4. 將自定義鏈掛到 FORWARD 鏈
iptables -A FORWARD -i eth1 -o eth2 -j OFFICE_TO_SERVER  # eth1=辦公區網卡,eth2=服務器區網卡
iptables -A FORWARD -i eth0 -o eth2 -j DMZ_TO_SERVER     # eth0=DMZ區網卡

7.2 帶寬限制與流量整形(結合?tc

iptables 本身不直接支持帶寬限制,但可與 Linux 流量控制工具?tc(traffic control)協同,通過標記數據包(mark?模塊),讓?tc?對標記的流量進行限速或整形。

場景:限制非核心業務(如下載)的帶寬,保障核心服務(如數據庫)

實現思路

  1. 用 iptables 標記非核心業務的數據包(如端口 8080 的下載流量);
  2. 用?tc?對標記的數據包設置帶寬上限(如 1Mbps)。

配置示例

# 1. iptables 標記下載流量(mark 值為 100)
iptables -t mangle -A PREROUTING -p tcp --dport 8080 -j MARK --set-mark 100# 2. tc 對標記 100 的流量限速(假設出口網卡為 eth0)
tc qdisc add dev eth0 root handle 1: htb default 10
tc class add dev eth0 parent 1: classid 1:10 htb rate 1000Mbps  # 總帶寬
tc class add dev eth0 parent 1:10 classid 1:100 htb rate 1Mbps  # 下載流量上限
tc filter add dev eth0 parent 1: protocol ip prio 1 handle 100 fw flowid 1:100  # 匹配 mark=100

7.3 高級 NAT 應用(端口復用、雙向 NAT)

超出基礎端口轉發的復雜 NAT 場景,適用于公網 IP 有限或需隱藏內網拓撲的場景。

1. 端口復用(一個公網端口映射到內網多個服務)

例如,公網 IP 的 443 端口同時映射到內網的 Web 服務器(443)和郵件服務器(993),通過 “源 IP 匹配” 區分流量:

# 公網 IP:203.0.113.1
# 規則:來自 1.2.3.4 的 443 請求轉發到內網 Web 服務器(192.168.1.10:443)
iptables -t nat -A PREROUTING -d 203.0.113.1 -s 1.2.3.4 -p tcp --dport 443 -j DNAT --to 192.168.1.10:443
# 其他 IP 的 443 請求轉發到郵件服務器(192.168.1.20:993)
iptables -t nat -A PREROUTING -d 203.0.113.1 -p tcp --dport 443 -j DNAT --to 192.168.1.20:993
2. 雙向 NAT(內外網 IP 雙向轉換)

適用于內網與外部網絡存在 IP 沖突的場景(如內網和合作方內網均使用 192.168.1.0/24),通過雙向轉換避免沖突:

# 外部訪問內網:將外部請求的目的 IP(203.0.113.100)轉換為內網 IP(192.168.1.5)
iptables -t nat -A PREROUTING -d 203.0.113.100 -j DNAT --to 192.168.1.5
# 內網響應外部:將內網源 IP(192.168.1.5)轉換為外部可見 IP(203.0.113.100)
iptables -t nat -A POSTROUTING -s 192.168.1.5 -j SNAT --to 203.0.113.100

7.4 透明代理與流量劫持

將特定流量(如 HTTP/HTTPS)透明轉發到代理服務器(如 Squid、Nginx),用戶無需手動配置代理,適用于企業上網審計、廣告過濾等場景。

場景:強制內網所有 HTTP 流量經過代理服務器(10.0.0.10:3128)
# 1. 開啟內核轉發
echo 1 > /proc/sys/net/ipv4/ip_forward# 2. 攔截內網 HTTP 流量(80 端口),轉發到代理服務器
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -j DNAT --to 10.0.0.10:3128# 3. 允許代理服務器響應內網(避免被默認策略拒絕)
iptables -A FORWARD -s 10.0.0.10 -d 192.168.1.0/24 -p tcp --sport 3128 -j ACCEPT

7.5 入侵檢測與自動防御(結合腳本)

通過 iptables 日志記錄異常流量,結合腳本實時分析并自動添加封禁規則,抵御掃描、暴力破解等攻擊。

場景:自動封禁 10 分鐘內 SSH 失敗超過 5 次的 IP

實現思路

  1. iptables 記錄 SSH 失敗日志(如密碼錯誤);
  2. 定時腳本(如?cron)分析日志,統計失敗次數;
  3. 對超閾值的 IP 自動添加 iptables DROP 規則。

核心配置

# 1. 記錄 SSH 失敗日志(假設 SSH 服務日志含 "Failed password")
iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH_FAILED: "# 2. 檢測腳本(示例,需保存為 /usr/local/bin/ban_ssh.sh 并添加執行權限)
#!/bin/bash
# 提取 10 分鐘內失敗次數 >5 的 IP
awk '/SSH_FAILED/ && /Failed password/ {print $11}' /var/log/messages | grep -oE '([0-9]+\.){3}[0-9]+' | sort | uniq -c | awk '$1>5 {print $2}' | while read ip; do# 若未封禁則添加規則if ! iptables -C INPUT -s $ip -j DROP >/dev/null 2>&1; theniptables -A INPUT -s $ip -j DROPecho "Banned $ip at $(date)" >> /var/log/ssh_ban.logfi
done# 3. 添加 cron 任務(每 5 分鐘執行一次)
echo "*/5 * * * * root /usr/local/bin/ban_ssh.sh" >> /etc/crontab

7.6 特定協議的深度過濾(如 FTP、DNS)

針對多端口或動態端口協議(如 FTP、SIP),結合 iptables 擴展模塊(如?ip_conntrack_ftp)實現精準控制。

場景:允許 FTP 服務(支持主動 / 被動模式)

FTP 主動模式使用 21 端口控制連接,數據連接由服務器主動發起(端口 20);被動模式數據端口隨機,需內核跟蹤動態端口:

# 1. 加載 FTP 連接跟蹤模塊
modprobe ip_conntrack_ftp# 2. 允許 FTP 控制連接(21 端口)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT# 3. 允許 FTP 數據連接(依賴跟蹤模塊自動識別動態端口)
iptables -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT

7.7 容器與虛擬化環境的網絡隔離

在 Docker、KVM 等虛擬化環境中,通過 iptables 控制宿主機與容器、容器之間的網絡訪問,彌補虛擬化平臺自帶防火墻的不足。

場景:限制 Docker 容器只能訪問特定外網 IP

Docker 會自動創建?DOCKER?鏈,可在其上附加規則:

# 1. 清空 Docker 轉發鏈(避免默認放通)
iptables -F FORWARD# 2. 允許容器(172.17.0.0/16)訪問特定 IP(8.8.8.8)
iptables -A FORWARD -s 172.17.0.0/16 -d 8.8.8.8 -j ACCEPT# 3. 允許已建立的連接響應
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT# 4. 默認拒絕其他轉發流量
iptables -P FORWARD DROP

7.8 高可用集群中的規則同步

在主備架構(如 Keepalived 雙機熱備)中,通過腳本或工具(如?csync2)同步 iptables 規則,確保主備切換時防火墻策略一致。

示例流程

  1. 主節點修改規則后,通過?iptables-save > /etc/iptables.rules?保存;
  2. 用?csync2?將規則文件同步到備節點;
  3. 備節點通過?iptables-restore < /etc/iptables.rules?加載規則;
  4. 結合?inotify?監控文件變化,實現實時同步。

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

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

相關文章

Vue 服務端渲染(SSR)詳解

Vue SSR是一種在服務端將 Vue 應用渲染成 HTML 字符串&#xff0c;然后直接發送到客戶端的技術。相比傳統的客戶端渲染&#xff0c;Vue SSR 能帶來更好的 SEO 性能和更快的首屏加載時間。下面我們從零到一&#xff0c;結合項目源碼&#xff0c;詳細講解如何實現一個 Vue SSR 項…

機器翻譯:需要了解的數學基礎詳解

文章目錄一、概率論與統計學1.1 基本概念1.2 在機器翻譯中的應用二、線性代數2.1 基本概念2.2 在機器翻譯中的應用三、微積分3.1 基本概念3.2 在機器翻譯中的應用四、信息論4.1 基本概念4.2 在機器翻譯中的應用五、數值優化5.1 優化問題形式化5.2 優化算法5.3 正則化技術六、圖…

藍橋杯手算題和雜題簡易做法

一、巧用Excel Excel在解決某些數學問題時非常高效&#xff0c;特別是涉及表格計算、簡單統計和可視化分析時。 門牌制作 這道題是一道基礎題&#xff0c;只需要判斷每個數字有幾個2&#xff0c;然后在加起來即可&#xff0c;但是還有更簡單的方法&#xff0c;先通過編譯器&…

5. 緩存-Redis

文章目錄前言一、 介紹1. 簡介2. 核心特點二、 應用場景1. 應用場景2. 數據類型作用場景三、 性能特性1. 內存2. 高性能數據結構3. 單線程、多路復用四、 異步持久化機制1. RDB&#xff08;Redis Database&#xff09;2. AOF&#xff08;Append-Only File&#xff09;3. 持久化…

如何理解Tomcat、Servlet、Catanalina的關系

目錄 背景&#xff1a; 結論&#xff1a; 好文-【拓展閱讀】&#xff1a; 象漂亮更新動力&#xff01; 背景&#xff1a; 學習Java的Servlet時&#xff0c;常常說Tomcat是一個容器&#xff0c;我們寫ServletA,ServletB,Tomcat容器在啟動的時候會讀取web.xml或者我們程序中的…

Hive的并行度的優化

對于分布式任務來說&#xff0c;任務執行的并行度十分重要。Hive的底層是MapReduce&#xff0c;所以Hive的并行度優化分為Map端優化和Reduce端優化。(1)、Map端優化Map端的并行度與Map切片數量相關&#xff0c;并行度等于切片數量。一般情況下不用去設置Map端的并行度。以下特殊…

Vue.js 響應接口:深度解析與實踐指南

Vue.js 響應接口&#xff1a;深度解析與實踐指南 引言 隨著前端技術的不斷發展&#xff0c;Vue.js 作為一種流行的前端框架&#xff0c;已經成為了眾多開發者的首選。Vue.js 的響應式系統是其核心特性之一&#xff0c;它允許開發者輕松實現數據的雙向綁定。而響應接口則是Vue.j…

高精度藍牙定位:技術、應用與未來發展

一、高精度藍牙定位概述在當今科技飛速發展的時代&#xff0c;定位技術的精度和可靠性變得越來越重要。高精度藍牙定位作為一種新興的定位技術&#xff0c;正逐漸嶄露頭角。藍牙技術是一種支持設備短距離通信&#xff08;一般10m內&#xff09;的無線電技術&#xff0c;能在包括…

C# 基于halcon的視覺工作流-章29-邊緣提取-亞像素

C# 基于halcon的視覺工作流-章29-邊緣提取-亞像素 本章目標&#xff1a; 一、1edges_sub_pix&#xff1b; 二、threshold_sub_pix&#xff1b;本實例實現過程與章28基本相同&#xff0c;不同處在于提取的邊緣是亞像素&#xff0c;精度較高&#xff0c;本文僅介紹不同之處&#…

如何實現PostgreSQL的高可用性,包括主流的復制方案、負載均衡方法以及故障轉移流程?

前言 實現 PostgreSQL 的高可用性&#xff08;High Availability, HA&#xff09;是一個系統工程&#xff0c;需要結合復制技術、連接路由&#xff08;負載均衡&#xff09;、自動故障轉移&#xff08;Failover&#xff09;以及監控告警。以下是主流方案和關鍵流程的詳細說明&a…

Apache Ignite 生產級的線程池關閉工具方法揭秘

Apache Ignite 中用于 安全、可靠地關閉線程池&#xff08;ExecutorService&#xff09; 的關鍵邏輯。我們來一步步深入理解它的設計思想和實現細節。&#x1f9f1; 一、核心方法&#xff1a;U.shutdownNow(...) public static void shutdownNow(Class<?> owner, Nullab…

Unity:GUI筆記(一)——文本、按鈕、多選框和單選框、輸入框和拖動條、圖片繪制和框繪制

寫在前面&#xff1a;寫本系列(自用)的目的是回顧已經學過的知識、記錄新學習的知識或是記錄心得理解&#xff0c;方便自己以后快速復習&#xff0c;減少遺忘。主要是唐老師的課程。一、重要參數、文本、按鈕GUI相關代碼需要寫在private void OnGUI()中。該函數每幀執行&#x…

wordpress從wp_nav_menu中獲取菜單項

從wp_nav_menu中獲取菜單項&#xff0c;然后檢查這些菜單項是否對應分類(Category)&#xff0c;并輸出這些分類的ID。 以下是完整的代碼實現&#xff1a; <?php // 獲取指定菜單位置的菜單項 $menu_items wp_get_nav_menu_items(wodepress); // wodepress 是菜單位置的名…

第4章 程序段的反復執行2 while語句P128練習題(題及答案)

&#xff08;&#xff08;1&#xff09;閱讀程序#include <bits/stdc.h> using namespace std; //湯永紅 int main(){int n,s0;cin >> n;while(n){s s * 10 n % 10;n / 10;}cout << s << endl;return 0; }分別輸入&#xff1a;0 1024 1234567890輸出…

圖解軟件系統組成

這是基于 ??PlantUML?? 繪制的軟件系統組成部分思維導圖&#xff0c;聚焦技術路線與文件類型的對應關系&#xff0c;采用分層架構展示核心模塊&#xff1a;startmindmap * **軟件系統組成部分*** **一、核心技術棧*** 后端技術* 技術路線: Python Web 框架* 文件類型: .py …

【傳奇開心果系列】Flet框架實現的多人訪問web數據表高并發前后端自定義框架模板

Flet框架實現的多人訪問web數據表高并發前后端自定義框架模板一、效果展示截圖二、應用場景介紹1. **多用戶實時協作**2. **產品管理**3. **數據可視化**三、特色說明1. **實時通信**2. **高性能**3. **用戶友好的界面**4. **日志記錄**5. **安全性**四、總結五、源碼下載地址六…

農業智慧大屏系統 - Flask + Vue實現

下面我將實現一個完整的農業智慧大屏系統&#xff0c;使用Flask作為后端框架&#xff0c;前端使用Vue.js結合ECharts進行數據可視化展示。 設計思路 前端部分&#xff1a; 使用Vue.js構建響應式界面 使用ECharts實現各類農業數據可視化 使用CSS Grid布局實現大屏適配 后端…

Linux中Https配置與私有CA部署指南

Linux中Https配置與私有CA部署指南 一、HTTPS 核心概念特性HTTPHTTPS協議明文傳輸HTTP SSL/TLS端口80443加密未加密數據加密二、SSL/TLS 握手流程 Client → Server ClientHello&#xff1a;支持哪些版本、支持哪些加密算法&#xff0c;隨機生成一組32字節數據 random_c Serve…

【軟考架構】主流數據持久化技術框架

JDO與JPA JDO&#xff08;Java Data Objects&#xff09;和JPA&#xff08;Java Persistence API&#xff09;都是Java中用于對象持久化的規范&#xff0c;但它們在設計目標、技術背景和應用場景上存在顯著區別。以下是兩者的核心對比&#xff1a;1. 規范背景與維護方 JDO&…

服務日志、監控

服務怎么做監控和告警使用 Prometheus 和 Grafana 來實現整個微服務集群的監控和告警&#xff1a;Prometheus&#xff1a;Prometheus 是一個開源的監控系統&#xff0c;具有靈活的數據模型和強大的查詢語言&#xff0c;能夠收集和存儲時間序列數據。它可以通過 HTTP 協議定期拉…