NAT/代理服務器/內網穿透

目錄

一 NAT技術

二 內網穿透/內網打洞

三 代理服務器


一 NAT技術

跨網絡傳輸的時候,私網不能直接訪問公網,就引入了NAT能講私網轉換為公網進行訪問,主要解決IPv4(2^32)地址不足的問題。

1. NAT原理

當某個內網想訪問公網,就必須先找到處于同一個網段的出入口路由器,而內網又不能暴露在公網上,所以當IP地址到達路由器時,路由器會把源IP轉換成路由器的WAN口IP,并和源IP進行映射,這里他們互為 key <=> val,當服務器回顯時,填充目的服務器IP地址,也就是之前經過轉換后的IP地址,源地址填服務器的IP地址,在路由到目的IP所在的路由器,并由該路由器進行查映射表,查到轉換之前的私有IP,在進行轉發。

示例:

假設路由器的IP地址是202.244.174.37,源主機IP為10.0.0.10,目的IP地址為163.221.120.9

1. 經過路由器轉換進行映射:

源:? ? 10.0.0.10 <=> 路由器:202.244.174.37

目的:163.221.120.9 <=> 路由器:163.221.120.9

2. 經過服務器響應并路由回來:

服務器填充源IP:163.221.120.9,目的IP:202.244.174.37

路由器進行查表:202.244.174.37,查到得到:10.0.0.10,并交付給最初的主機。

3. 如果有2臺主機同時向同一個目標服務器,那么路由器進行替換的時候就是:

源:? ? 10.0.0.10 <=> 路由器:202.244.174.37

源:? ? 10.0.0.11?<=> 路由器:202.244.174.37

這時就有2對一樣的key了,后面的key會把前面的key覆蓋掉,導致一方的主機的請求響應給后一個主機了,針對這個問題,路由器不僅要保存IP地址還要保存端口號,并讓后來的端口號++,這樣后續響應回來的數據雖然IP地址重復了,但端口號不一樣,也就解決了多臺主機訪問同一資源映射導致的問題了,所以路由器不僅要緩存IP地址也要緩存端口號。

4. 這種把源IP地址/端口進行替換并建立映射就是NAT技術。

二 內網穿透/內網打洞

1. 前置

1. 正常主機A訪問服務器進行一系列的NAT轉換最終得到響應。

2. 那么一開始映射表沒有服務器能不能直接訪問主機A,不能,私網不能出現在公網上,同樣的不同子網的內網最開始也不能直接通信。

2. 內網穿透

當B訪問B自己的服務器建立映射表,并且服務器將來把收到的報文在轉發到B自己,此時A訪問這個服務器,服務器就會把A的報文轉發到B,之前已經建立了B到服務器的映射,現象就是A直接穿透到了B,也就是內網穿透。

2. 內網穿透

這種通過得到對方轉換后的IP地址,并且對方已經建立了映射表,后續就可以不通過公網服務器,直接路由到對方的路由器,因為對方已經和路由器建立了映射,發送方拿映射后的IP地址就能直接訪問到對方建立映射表的路由器,這種不通過公網,直接從一個路由器跳到另一個路由器的技術也就是內網打洞,類似對方的路由器打了個洞,讓發送方直接進去。

三 代理服務器

1. 正向代理

多個主機訪問外網首先會經過代理服務器,由該服務器部署的某些服務幫你訪問并響應回去,為什么要這么做?統一管理這些主機,比如訪問非法網站,陌生的IP地址就直接不做轉發,請求也就失敗了。如果有多臺主機訪問同一個靜態資源,代理服務器也能緩存,收到請求直接返回提高效率。當進行轉發的時候把主機的IP替換成代理服務器的IP地址,也能保護主機的身份。某個主機資源開銷高,就限制這臺主機的資源速率,比如控制下載速度等。

2. 反向代理

發送方主機請求打到代理服務器,由代理服務去分配給接收方主機,比如采用輪詢,隨機分配等策略,避免某一臺主機壓力爆滿,而其他的一直空閑,這種技術叫做負載均衡,當然也能保護客戶端的身份,緩存等。

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

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

相關文章

Git的安裝和配置(idea中配置Git)

一、Git的下載和安裝 前提條件&#xff1a;IntelliJ IDEA 版本是2023.3 &#xff0c;那么配置 Git 時推薦使用 Git 2.40.x 或更高版本 下載地址&#xff1a;CNPM Binaries Mirror 操作&#xff1a;打開鏈接 → 滾動到頁面底部 → 選擇2.40.x或更高版本的 .exe 文件&#xf…

【教程】Docker更換存儲位置

轉載請注明出處&#xff1a;小鋒學長生活大爆炸[xfxuezhagn.cn] 如果本文幫助到了你&#xff0c;歡迎[點贊、收藏、關注]哦~ 目錄 背景說明 更換教程 1. 停止 Docker 服務 2. 創建新的存儲目錄 3. 編輯 Docker 配置文件 4. 遷移已有數據到新位置 5. 啟動 Docker 服務 6…

PostgreSQL 配置設置函數

PostgreSQL 配置設置函數 PostgreSQL 提供了一組配置設置函數&#xff08;Configuration Settings Functions&#xff09;&#xff0c;用于查詢和修改數據庫服務器的運行時配置參數。這些函數為數據庫管理員提供了動態管理數據庫配置的能力&#xff0c;無需重啟數據庫服務。 …

sql server 2019 將單用戶狀態修改為多用戶狀態

記錄兩種將單用戶狀態修改為多用戶狀態&#xff0c;我曾經成功過的方法&#xff0c;供參考 第一種方法 USE master; GO -- 終止所有活動連接 DECLARE kill_connections NVARCHAR(MAX) ; SELECT kill_connections KILL CAST(session_id AS NVARCHAR(10)) ; FROM sys.dm_ex…

主機A向主機B發送一個長度為L字節的文件,假設TCP的MSS為1460字節,則在TCP的序號不重復使用的前提下,L的最大值是多少?

&#x1f4d8;題干回顧&#xff1a; 主機A向主機B發送一個長度為L字節的文件&#xff0c;假設TCP的MSS為1460字節&#xff0c;則在TCP的序號不重復使用的前提下&#xff0c;L的最大值是多少&#xff1f; 這個問題關鍵在于“TCP序號不重復使用”。 ? 正確答案是&#xff1a;D.…

一次因校時服務器異常引起的性能差異分析

一次因校時服務器異常引起的性能差異分析 一.背景知識1. **TSC 頻率**:硬件級高精度計時2. **gettimeofday**:用戶態時間接口3. **adjtimex**:系統時鐘的軟件校準4. **`clock_adjtime(CLOCK_REALTIME, {modes=ADJ_TICK})`**: 用于修改系統時鐘中斷間隔(`tick` 值)。5. 關系…

acwing 4275. Dijkstra序列

題目背景 輸入 輸出 完整代碼 #include<bits/stdc.h> using namespace std; int n,m,k,a[1010],dist[1010],g[1010][1010],st[1010];int dij(int u){memset(st,0,sizeof st);memset(dist,0x3f,sizeof dist);dist[u]0;for(int i0;i<n;i){int ta[i];for(int j1;j<n;…

[思維模式-37]:什么是事?什么是物?什么事物?如何通過數學的方法闡述事物?

一、基本概念 1、事&#xff08;Event) “事”通常指的是人類在社會生活中的各種活動、行為、事件或情況&#xff0c;具有動態性和過程性&#xff0c;強調的是一種變化、發展或相互作用的流程。 特點 動態性&#xff1a;“事”往往涉及一系列的動作、變化和發展過程。例如&a…

Linux常用命令40——alias設置命令別名

在使用Linux或macOS日常開發中&#xff0c;熟悉一些基本的命令有助于提高工作效率&#xff0c;alias命令來自英文單詞alias&#xff0c;中文譯為“別名”&#xff0c;其功能是設置命令別名信息。我們可以使用alias將一些較長的命令進行簡寫&#xff0c;往往幾十個字符的命令會變…

310. 最小高度樹

題目 樹是一個無向圖&#xff0c;其中任何兩個頂點只通過一條路徑連接。 換句話說&#xff0c;任何一個沒有簡單環路的連通圖都是一棵樹。 給你一棵包含 n 個節點的樹&#xff0c;標記為 0 到 n - 1 。給定數字 n 和一個有 n - 1 條無向邊的 edges 列表&#xff08;每一個邊都…

Axure 縱向滾動隱藏滾動條 Axure 滑動開關(屬性開關)on-off

文章目錄 I 滑動開關(屬性開關)操作說明block 矩形操作說明round小圓圈操作說明on-off 屬性開關組合操作說明II Axure 縱向滾動隱藏滾動條思路包含圖片的動態面板1操作說明包含動態面板的頂級動態面板I 滑動開關(屬性開關)操作說明 block 矩形操作說明 在畫布中添加一個矩形…

MySQL之基礎事務

目錄 引言&#xff1a; 什么是事務&#xff1f; 事務和鎖 mysql數據庫控制臺事務的幾個重要操作指令&#xff08;transaction.sql&#xff09; 1、事物操作示意圖&#xff1a; 2.事務的隔離級別 四種隔離級別&#xff1a; 總結一下隔離指令 1. 查看當前隔離級別?? …

VS Code 重磅更新:全新 MCP 服務器發現中心上線

目前各種 MCP 客戶端層出不窮&#xff0c;但是安裝 MCP 服務卻格外繁瑣&#xff0c;尤其 VS Code 中無界面化的 MCP 服務配置方式&#xff0c;效率較低。 Copilot MCP 是一個 VS Code 插件&#xff0c;在今天發布的新版本中&#xff0c;插件支持了自動發現與安裝開源 MCP 服務…

智能家居“心臟“升級戰:GD25Q127CSIG國產芯片如何重構家庭物聯生態

在智能家居設備出貨量突破10億臺的2023年&#xff0c;家庭網關正經歷著前所未有的技術革新。作為連接云端與終端設備的中樞神經&#xff0c;智能網關的存儲芯片選擇直接決定著整個智能生態系統的運行效率。在這場技術升級浪潮中&#xff0c;兆易創新GD25Q127CSIG串行閃存芯片主…

R語言機器學習算法實戰系列(二十五)隨機森林算法多標簽分組分類器及模型可解釋性

禁止商業或二改轉載,僅供自學使用,侵權必究,如需截取部分內容請后臺聯系作者! 文章目錄 介紹教程內容加載必要的R包(帶詳細注釋)1. 加載數據2. 數據分割(按Species分層抽樣)3. 數據預處理配方4. 創建隨機森林模型(多分類)5. 創建工作流6. 設置交叉驗證和參數調優7. 參…

速查 Linux 常用指令 II

目錄 一、網絡管理命令1. 查看和配置網絡設備&#xff1a;ifconfig1&#xff09;重啟網絡命令2&#xff09;重啟網卡命令 2. 查看與設置路由&#xff1a;route3. 追蹤網絡路由&#xff1a;traceroute4. 查看端口信息和使用情況1&#xff09;netstat 命令2&#xff09;lsof 命令…

關于github使用總結

文章目錄 一、本地使用git&#xff08;一&#xff09;創建一個新的本地Git庫首先在本地創建一個新的git倉庫然后進行一次初始提交提交過后就可以查看提交記錄 &#xff08;二&#xff09;在本地倉庫進行版本恢復先執行 git log 查看項目提交歷史使用 git checkout 恢復版本 二、…

【Python】Python 單例模式 8 大核心應用場景深度解析(2025 新版)

單例模式&#xff08;Singleton Pattern&#xff09;作為一種經典的設計模式&#xff0c;始終保持著重要的工程價值。 本文著重于單例模式的主要核心應用場景。 至于實現方法&#xff0c; 晚些時候發出。 一、配置管理器 全局配置信息管理是單例模式最典型的應用場景。通過單…

計算機網絡網絡層(下)

一、互聯的路由選擇協議&#xff08;網絡層控制層面內容&#xff09; &#xff08;一&#xff09;有關路由選擇協議的幾個概念 1.理想的路由算法 &#xff08;1&#xff09;理想路由算法應具備的特點&#xff1a;算法必須正確和完整的&#xff0c;算法在計算上應簡單&#x…

云存儲桶的“公開陷阱”|滲透測試中如何利用與防御配置錯誤的存儲服務

引言 云存儲服務&#xff08;如AWS S3、阿里云OSS、Google Cloud Storage&#xff09;因便捷性被企業廣泛使用&#xff0c;但權限配置錯誤卻成為近年來數據泄露的重災區。 攻擊者無需復雜漏洞&#xff0c;僅需一個公開鏈接即可下載敏感數據。本文將深入解析這類漏洞的滲透…