【計算機網絡】Linux配置SNAT策略

什么是NAT?

NAT 全稱是 Network Address Translation(網絡地址轉換),是一個用來在多個設備共享一個公網 IP上網的技術。

NAT 的核心作用:將一個網絡中的私有 IP 地址,轉換為公網 IP 地址,從而實現上網功能。

沒有NAT的情況:
在這里插入圖片描述

🌐 環境準備

🖥 VMware 創建兩臺 Linux 虛擬機:

server1:nat-router
  • 作用: NAT 路由器,作為網絡地址轉換的中介。
  • 網卡配置:
    • ens32:NAT 模式(連接外網)
    • ens33:僅主機模式(與 server2 通信)
[root@nat-router ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.202
NEKMASK=255.255.255.0
GATEWAY=192.168.100.2
DNS1=223.5.5.5
DNS2=8.8.8.8[root@nat-router ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.200.253
NETMASK=255.255.255.0
server2:nat-client
  • 作用: NAT 客戶端,通過 server1 上網。
  • 網卡配置:
    • ens32:僅主機模式(連接 server1)
[root@nat-client ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.200.201
NEKMASK=255.255.255.0
GATEWAY=192.168.200.253
DNS1=223.5.5.5

🧱 NAT 實現原理

🔧 使用 iptables 實現 NAT 轉換

  • iptables 是一個 防火墻工具,用于配置 Linux 內核的網絡行為。
  • 本身不做 NAT 轉換,它的作用是 告訴內核怎么做

?? 實際執行 NAT 轉換的是 Linux 內核

  • 負責對底層網絡數據包進行管理、處理與轉發。
  • 管理網卡、路由、數據包過濾等功能。
NAT 數據包處理流程:
人(配置命令) -> iptables(設置規則) -> 內核(執行SNAT) -> 網絡通信

🔐 防火墻(Firewall)概念

  • 作用: 管控進出網絡的數據,防止非法訪問或數據泄露。
  • Linux 中常見防火墻工具有:
    • iptables(傳統,功能強大)
    • firewalld(基于 zone 的新型防火墻,CentOS 7+ 默認)

server1(NAT 路由器)上配置 SNAT(源地址轉換)

# 清除規則
iptables -F
iptables -t nat -F
  • 清除原有的 iptables 規則,避免舊規則干擾。
    • -F:清空 filter 表(默認表)的所有規則。
    • -t nat -F:清空 nat 表的所有規則。
# 開啟路由功能
echo 1 > /proc/sys/net/ipv4/ip_forward
  • 啟用 IP 轉發,使 Linux 內核可以作為路由器轉發數據包。
iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o ens32 -j SNAT --to-source 192.168.100.202
  • 設置 SNAT 規則:
    • -t nat:操作 NAT 表。
    • -A POSTROUTING:在數據包離開本機之前改變源地址。
    • -s 192.168.200.0/24:匹配從 nat-client 發來的內網地址段。
    • -o ens32:數據包從哪張網卡出去(外網網卡)。
    • -j SNAT --to-source 192.168.100.202:將源地址改成 server1 外網 IP。
[root@nat-router ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destinationChain INPUT (policy ACCEPT)
target     prot opt source               destinationChain OUTPUT (policy ACCEPT)
target     prot opt source               destinationChain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       all  --  192.168.200.0/24     0.0.0.0/0            to:192.168.100.202

nat-client測試網絡情況

                             My traceroute  [v0.85]
nat-client (0.0.0.0)                                   Sat Apr  5 22:15:10 2025
Keys:  Help   Display mode   Restart statistics   Order of fields   quitPackets               PingsHost                                Loss%   Snt   Last   Avg  Best  Wrst StDev1. 192.168.200.253                   0.0%     7    0.5   0.5   0.4   0.7   0.02. 192.168.100.2                     0.0%     7    0.5   0.7   0.4   1.3   0.03. ???

可以看到正常轉發網絡請求
在這里插入圖片描述

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

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

相關文章

Mathematics | Branch

注:本文為“遇見數學”翻譯的 “數學分支概覽” 兩篇文章合輯。 數學世界的版圖:主要分支概覽(上) 原創 遇見數學 2025 年 04 月 03 日 12:02 河南 數學的分支(Areas of Mathematics) 在文藝復興之前&am…

Ubuntu(CentOS、Rockylinux等)快速進入深度學習pytorch環境

這里寫自定義目錄標題 安裝進入系統(如Ubuntu22.04)安裝anacondapip、conda換源pip換源conda換源 安裝nvidia安裝pytorch環境針對于wsl的優化 安裝進入系統(如Ubuntu22.04) docker 、 wsl 、 雙系統 、服務器系統 推薦 Ubuntu 20…

什么是混雜模式?為什么 macvlan 依賴它

在 macvlan 場景中,物理網絡是否支持混雜模式(Promiscuous Mode) 直接影響 macvlan 虛擬接口的通信能力。以下是詳細解釋和操作指南: 一、什么是混雜模式?為什么 macvlan 依賴它? 混雜模式的定義 當物理網絡…

物理數據流圖

物理數據流圖(Physical Data Flow Diagram, PDFD)詳解 物理數據流圖是結構化系統分析中的一種建模工具,用于描述系統在物理環境下的具體實現方式,包括硬件、軟件、人工操作和物理文件等實際組成部分。它與**邏輯數據流圖&#xf…

Linux開發工具——vim

📝前言: 上篇文章我們講了Linux開發工具——apt,這篇文章我們來講講Linux開發工具——vim 🎬個人簡介:努力學習ing 📋個人專欄:Linux 🎀CSDN主頁 愚潤求學 🌄其他專欄&a…

在 Langflow 中構建靈活的自定義組件:從基礎到高級實踐

本文深入探討了如何在 Langflow 平臺中創建功能豐富的自定義組件。通過詳細的目錄結構解析、分步實現指南和多個實戰案例,幫助開發者掌握利用 Python 生態擴展低代碼平臺的方法,打造高效的數據處理流程。 理解組件架構設計 自定義組件是在 Langflow 中創…

stm32+LTR-390UV使用教程含源碼

stm32LTR-390UV使用教程含源碼 (csdn首發源碼),本人大四學生,考研已上岸,畢設做的全向輪小車,這個是環境檢測部分LTR-390UV使用教程 文章目錄 目錄 文章目錄 前言 一、硬件準備與連接 二、數據手冊 1.…

【嵌入式系統設計師】知識點:第2章 嵌入式系統硬件基礎知識

提示:“軟考通關秘籍” 專欄圍繞軟考展開,全面涵蓋了如嵌入式系統設計師、數據庫系統工程師、信息系統管理工程師等多個軟考方向的知識點。從計算機體系結構、存儲系統等基礎知識,到程序語言概述、算法、數據庫技術(包括關系數據庫、非關系型數據庫、SQL 語言、數據倉庫等)…

Java 項目灰度發布的詳細實現與實踐

前言 灰度發布是一種通過逐步將新功能或更新推向一部分用戶來降低上線風險的技術。本文將詳細介紹如何在 Java 項目中實現灰度發布,并提供相關的配置參數、代碼示例以及 uml 圖,幫助您更好地理解和應用這一技術。 一、灰度發布的核心思想 灰度發布的核…

使用 Swift 實現 LRU 緩存淘汰策略

📌 實現思路 一、核心目標 我們要實現一個緩存類: 支持通過 get(key) 獲取緩存的值;支持通過 put(key, value) 寫入緩存;緩存容量有限,當超過容量時要淘汰最久未使用的元素。 二、為什么用「哈希表 雙向鏈表」 功…

C#中為自定義控件設置工具箱圖標

在C#中為自定義控件設置工具箱圖標,可通過以下步驟實現: ### 步驟說明: 1. **準備圖標文件** - 創建或選擇一個16x16像素的位圖(.bmp)文件,建議使用透明背景以確保清晰顯示。 2. **添加位圖到項目** -…

Linux數據庫:【數據庫基礎】【庫的操作】【表的操作】

目錄 一.數據庫基礎 1.1什么是數據庫 1.2基本使用 1.2.1連接服務器 1.2.2服務器,數據庫,表關系 1.2.3使用案例 1.2.4數據存儲結構 ?編輯 1.3MySQL架構 1.4SQL分類 1.5存儲引擎 1.5.1什么是存儲引擎 1.5.2查看存儲引擎 ?編輯 1.5.3存儲引擎…

CKPT文件是什么?

檢查點(Checkpoint,簡稱ckpt)是一種用于記錄系統狀態或數據變化的技術,廣泛應用于數據庫管理、機器學習模型訓練、并行計算以及網絡安全等領域。以下將詳細介紹不同領域中ckpt檢查點的定義、功能和應用場景。 數據庫中的ckpt檢查點…

Redis的公共操作命令

目錄 1.Key操作命令1.1 keys *1.2 exists <key]>1.3 type <key>1.4 del <key>1.5 unlink <key>1.6 ttl <key>1.7 expire <key> <秒數>1.8 move <key> <index> 2.庫操作命令2.1 select <index>2.2 dbsize2.3 flush…

【LLM】使用MySQL MCP Server讓大模型輕松操作本地數據庫

隨著MCP協議&#xff08;Model Context Protocol&#xff09;的出現&#xff0c;使得 LLM 應用與外部數據源和工具之間的無縫集成成為可能&#xff0c;本章就介紹如何通過MCP Server讓LLM能夠直接與本地的MySQL數據庫進行交互&#xff0c;例如新增、修改、刪除數據&#xff0c;…

【C++】從零實現Json-Rpc框架(2)

目錄 JsonCpp庫 1.1- Json數據格式 1.2 - JsonCpp介紹 ? 序列化接口 ? 反序列化接口 1.3 - Json序列化實踐 JsonCpp使用 Muduo庫 2.1 - Muduo庫是什么 2.2 - Muduo庫常見接口介紹 TcpServer類基礎介紹 EventLoop類基礎介紹 TcpConnection類基礎介紹 TcpClient…

語文常識推翻百年“R完備、封閉”論

?語文常識推翻百年“R完備、封閉”論 黃小寧 李四光&#xff1a;迷信權威等于扼殺智慧。語文常識表明從西方傳進來的數學存在重大錯誤&#xff1a;將無窮多各異數軸誤為同一軸。 復平面z各點z的對應點zk的全體是zk平面。z面平移變換為zk&#xff08;k是非1正實常數&#xf…

【Vue】 核心特性實戰解析:computed、watch、條件渲染與列表渲染

目錄 一、計算屬性&#xff08;computed&#xff09; ? 示例&#xff1a; 計算屬性-methods實現&#xff1a;在插值模塊里&#xff0c;實現函數的調用功能 計算屬性-computed的實現&#xff1a; 計算屬性-簡寫&#xff1a; ? 特點&#xff1a; ?? 與 methods 的區別…

二叉樹 遞歸

本篇基于b站靈茶山艾府的課上例題與課后作業。 104. 二叉樹的最大深度 給定一個二叉樹 root &#xff0c;返回其最大深度。 二叉樹的 最大深度 是指從根節點到最遠葉子節點的最長路徑上的節點數。 示例 1&#xff1a; 輸入&#xff1a;root [3,9,20,null,null,15,7] 輸出&…

與 AI 共舞:解鎖自我提升的無限可能

與 AI 共舞&#xff1a;解鎖自我提升的無限可能 在數字化浪潮的洶涌沖擊下&#xff0c;人工智能&#xff08;AI&#xff09;正以前所未有的速度重塑著世界的每一個角落。從日常生活的點滴便利到復雜工作的高效推進&#xff0c;AI 的力量無處不在。然而&#xff0c;面對 AI 的強…