【Linux網絡與網絡編程】12.NAT技術內網穿透代理服務

1. NAT技術

之前我們說到過 IPv4 協議中IP 地址數量不充足的問題可以使用 NAT 技術來解決。還提到過本地主機向公網中的一個服務器發起了一個網絡請求,服務器是怎么將應答返回到該本地主機呢?(如何進行內網轉發?)

這就需要用到 NAT 技術。

NAT 能夠將私有 IP 對外通信時轉為全局 IP,也就是就是一種將私有 IP 和全局 IP 相互轉化的技術方法。

在進行NAT轉化時,有可能只替換源IP,也可能既替換源IP又替換源端口號。[ IP + 端口號 ] 的映射本質就是內網進程和公網進程的映射關系。

可以看出,當原始報文經過路由器時,會對報文中的源IP替換為途徑路由器的WAN口IP。

這也就解決了我們的上述問題,NAT轉化的過程中還會產生轉移表(NAPT),服務器的應答報文轉回本地主機時,首先會把應答報文推送回到我們的入口路由器,經由路由器進行反向查找NAPT中的映射關系進行替換即可完成內網轉發。

NAPT的關聯關系是由 NAT 路由器自動維護的。例如在 TCP 的情況下,建立連接時就會生成這個表項;在斷開連接后就會刪除這個表項。

2. 內網穿透

如果我們想從學校遠程登陸上家里的linux服務器(內網訪問內網)應該怎么做?

應用場景:todesk

3. 代理服務器

3.1 正向代理服務器

正向代理(Forward Proxy)是一種常見的網絡代理方式,它位于客戶端和目標服務器之間,代表客戶端向目標服務器發送請求。正向代理服務器接收客戶端的請求,然后將請求轉發給目標服務器,最后將目標服務器的響應返回給客戶端。通過這 種方式,正向代理可以實現多種功能,如提高訪問速度、隱藏客戶端身份、實施訪問控制等。

客戶端將請求發送給正向代理服務器,正向代理服務器接收請求,根據配置進行處理,如緩存查找、內容過濾等,接下來將處理后的請求轉發給目標服務器,目標服務器處理請求,將響應返回給正向代理服務器,正向代理服務器將響應返回給客戶端。?

應用場景:

? 企業網絡管理:企業可以通過正向代理實現對員工網絡訪問的管理和控制,確保員工在工作時間內專注于工作,避免訪問不良網站或泄露公司機密。
? 公共網絡環境:在公共場所如圖書館、學校等提供的網絡環境中,通過正向代理可以 實現對網絡資源的合理分配和管理,確保網絡使用的公平性和安全性。
? 內容過濾與保護:家長可以通過設置正向代理來過濾不良內容,保護孩子免受網絡上 的不良信息影響。
? 提高訪問速度:對于經常訪問的網站或資源,正向代理可以通過緩存機制提高訪問速度,減少網絡延遲。
? 跨境電商與海外訪問:對于跨境電商或需要訪問海外資源的企業和個人,正向代理可 以幫助他們突破網絡限制,順暢地訪問海外網站和資源。?

3.2 反向代理服務器?

反向代理服務器是一種網絡架構模式,其作為 Web 服務器的前置服務器,接收來自客戶端的請求,并將這些請求轉發給后端服務器,然后將后端服務器的響應返回 給客戶端。這種架構模式可以提升網站性能、安全性和可維護性等。

反向代理服務器位于客戶端和 Web 服務器之間,當客戶端發起請求時,它首先 會到達反向代理服務器。反向代理服務器會根據配置的規則將請求轉發給后端的 Web 服務器,并將 Web 服務器的響應返回給客戶端。在這個過程中,客戶端并不知道實際 與哪個 Web 服務器進行了交互,它只知道與反向代理服務器進行了通信。

應用場景:

? 負載均衡:反向代理服務器可以根據配置的負載均衡策略,將客戶端的請求分發到多個后端服務器上,以實現負載均衡。這有助于提升網站的整體性能和響應速度, 特別是在高并發場景下。
? 安全保護:反向代理服務器可以隱藏后端 Web 服務器的真實 IP 地址,降低其被直接攻擊的風險。同時,它還可以配置防火墻、訪問控制列表(ACL)等安全策略, 對客戶端的請求進行過濾和限制,以保護后端服務器的安全。
? 緩存加速:反向代理服務器可以緩存后端 Web 服務器的響應內容,對于重復的請求,它可以直接從緩存中返回響應,而無需再次向后端服務器發起請求。這可以大大減少后端服務器的負載,提升網站的響應速度。
? 內容過濾和重寫:反向代理服務器可以根據配置的規則對客戶端的請求進行過濾和重寫,例如添加或刪除請求頭、修改請求路徑等。這有助于實現一些特定的業務需求,如 URL 重寫、用戶認證等。
? 動靜分離:在大型網站中,通常需要將靜態資源和動態資源分開處理。通過將靜態資源部署在反向代理服務器上,可以直接從反向代理服務器返回靜態資源的響應, 而無需再次向后端服務器發起請求。這可以大大提升靜態資源的訪問速度。
? CDN(Content Delivery Network,內容分發網絡)就是采用了反向代理的原理。

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

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

相關文章

uniapp的適配方式

文章目錄 前言? 一、核心適配方式對比📏 二、rpx 單位:uni-app 的核心適配機制🧱 三、默認設計稿適配(750寬)🔁 四、字體 & 屏幕密度適配🛠 五、特殊平臺適配(底部安全區、劉海…

JAVA EE(進階)_進階的開端

別放棄浸透淚水的昨天,晨光已為明天掀開新篇 ——陳長生. ?主頁:陳長生.-CSDN博客? 📕上一篇:JAVA EE_HTTP-CSDN博客 1.什么是Java EE Java EE(Java Pla…

SQL腳本規范

主要作用:數據庫的備份和遷移 SQL腳本規范 每一個sql語句必須與;結束 腳本結構: { 刪庫,建庫 刪表,建表 插入初始數據 } 建庫語法: CREATE DATABASE 數據庫名CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CHARA…

std::ratio<1,1000> 是什么意思?

author: hjjdebug date: 2025年 05月 14日 星期三 09:45:24 CST description: std::ratio<1,1000> 是什么意思&#xff1f; 文章目錄 1. 它是一種數值嗎&#xff1f;2. 它是一種類型嗎&#xff1f;3. std:ratio 是什么呢&#xff1f;4. 分析一個展開后的模板函數5.小結: …

測試--測試分類 (白盒 黑盒 單元 集成)

一、按照測試目標分類&#xff08;測試目的是什么&#xff09; 主類別細分說明1. 界面測試UI內容完整性、一致性、準確性、友好性&#xff0c;布局排版合理性&#xff0c;控件可用性等2. 功能測試檢查軟件功能是否符合需求說明書&#xff0c;常用黑盒方法&#xff1a;邊界值、…

整理了 2009 - 2025 年的【199 管綜真題 + 解析】PDF,全套共 34 份文件

每年真題原卷 ? 每年詳細解析 ? &#x1f4c2;【管綜真題 2009-2025】 &#x1f4c2;【管綜解析 2009-2025】 目錄樹&#xff1a; ├── 2009-2025管綜真題 PDF │ ├── 2009年199管綜真題.pdf │ ├── 2010年199管綜真題.pdf │ ├── 2011年199管綜真題.pd…

用golang實現二叉搜索樹(BST)

目錄 一、概念、性質二、二叉搜索樹的實現1. 結構2. 查找3. 插入4. 刪除5. 中序遍歷 中序前驅/后繼結點 一、概念、性質 二叉搜索樹&#xff08;Binary Search Tree&#xff09;&#xff0c;簡寫BST&#xff0c;又稱為二叉查找樹 它滿足&#xff1a; 空樹是一顆二叉搜索樹對…

自動化:批量文件重命名

自動化&#xff1a;批量文件重命名 1、前言 2、效果圖 3、源碼 一、前言 今天來分享一款好玩的自動化腳&#xff1a;批量文件重命名 有時候呢&#xff0c;你的文件被下載下來文件名都是亂七八糟毫無規律&#xff0c;但是當時你下載的時候沒辦法重名或者你又不想另存為重新重…

VueUse/Core:提升Vue開發效率的實用工具庫

文章目錄 引言什么是VueUse/Core&#xff1f;為什么選擇VueUse/Core&#xff1f;核心功能詳解1. 狀態管理2. 元素操作3. 實用工具函數4. 瀏覽器API封裝5. 傳感器相關 實戰示例&#xff1a;構建一個拖拽上傳組件性能優化技巧與原生實現對比常見問題解答總結 引言 在現代前端開發…

stm32 ADC單通道轉換

stm32c8t6僅有12位分辨率 1、單次轉換 非掃描 1、初始化 void Ad_Init() {RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);//配置ADCCLK時鐘分頻,ADC的輸入時鐘不得超過14MHzRCC_ADCCLKConfig(RCC_PCLK2_Div6);G…

2KW壓縮機驅動參考設計【SCH篇】

實物展示&#xff1a; ACDC: VAC和VAC-為交流電壓檢測&#xff1a; 1.C33 C34作為Y電容走線寬度要求&#xff1a; Y電容一般用于L/N到地之間&#xff08;L-PE 或 N-PE&#xff09;&#xff0c;主要作用是抑制共模干擾。其走線的電流非常小&#xff0c;推薦使用 ≥ 1mm 寬的走…

python05——循環結構

1、while循環 n0 #初始條件 while n<5: #判斷print(hello python) #要重復執行的代碼print(n) #注意同級代碼縮進相同n1 #計數器結果&#xff1a; hello python 0 hello python 1 hello python 2 hello python 3 hello python 4 hello python 5 #求階乘和 sum0 n1 whil…

LINUX編譯、運行、測試lowcoder_CN

參考 二者沒有太大差異。 LINUX編譯、運行、測試lowcoder-CSDN博客 下載 git clone https://github.com/mousheng/lowcoder_CN 或 git clone https://gitcode.com/gh_mirrors/lo/lowcoder_CNcd lowcoder_CN三個模塊 node-service api-service client 每個模塊都有自己的…

Python 基礎之函數命名

幾個問題 使用描述性蛇形命名法&#xff08;snake_case&#xff09;Python函數名應使用什么大小寫格式&#xff1f;為什么函數名要具有描述性&#xff1f;方法的命名規范是什么&#xff1f;函數、變量和類的命名有何區別&#xff1f; Python函數的命名有一些不可違背的硬性規…

redis 命令大全整理

http://doc.redisfans.com/ 原網址 Redis 命令分類 Key(鍵) Key(鍵)命令 exists/del/keys/type/scanobject/move/dump/migratettl/pttl/persist/expireat/pexpireat/expire/pexpirerename/renamenxsort/randomkey/restoreexists 語法:exists key [key ...] 檢查一個或多…

React中useDeferredValue與useTransition終極對比。

文章目錄 前言一、核心差異對比二、代碼示例對比1. useDeferredValue&#xff1a;延遲搜索結果更新2. useTransition&#xff1a;延遲路由切換 三、應用場景總結四、注意事項五、原理剖析1. 核心機制對比2. 關鍵差異3. 代碼實現原理 總結 前言 在React的并發模式下&#xff0c…

高并發內存池|定長內存池的設計

二、定長內存池的設計 設計一個定長的內存池&#xff0c;這個內存池的定長在于&#xff0c;當剩余空間使用完畢后&#xff0c;總是開辟相同長度的新空間來使用。我們會使用到一個指針來切割劃分大空間為小空間。大空間是內存池向系統申請的內存大小&#xff0c;而小空間是程序…

微信小程序 自定義圖片分享-繪制數據圖片以及信息文字

一 、需求 從數據庫中讀取頭像&#xff0c;姓名電話等信息&#xff0c;當分享給女朋友時&#xff0c;每個信息不一樣 二、實現方案 1、先將數據庫中需要的頭像姓名信息讀取出來加載到data 數據項中 data:{firstName:, // 姓名img:, // 頭像shareImage:,// 存儲臨時圖片 } 2…

從零開始理解Jetty:輕量級Java服務器的入門指南

目錄 一、Jetty是什么&#xff1f;先看一個生活比喻 二、5分鐘快速入門&#xff1a;搭建你的第一個Jetty服務 步驟1&#xff1a;Maven依賴配置 步驟2&#xff1a;編寫簡易Servlet&#xff08;廚房廚師&#xff09; 步驟3&#xff1a;組裝服務器&#xff08;餐廳開業準備&am…

深入淺出IIC協議 - 從總線原理到FPGA實戰開發 -- 第一篇:I2C總線協議深度解剖

第一篇&#xff1a;I2C總線協議深度解剖 副標題 : 兩根線如何征服千億設備&#xff1f;詳解硬件工程師必須掌握的通信奧義 1. 為什么I2C仍是嵌入式經典&#xff1f; 1.1 總線拓撲的哲學 拓撲對比圖 SPI需4線N片選 vs I2C僅2線級聯 UART點對點 vs I2C多主從架構 成本控制實…