Linux網絡 NAT、代理服務、內網穿透

NAT 技術

IPv4 協議中存在? IP 地址數量不充足的問題,而 NAT 技術是當前解決 IP 地址不夠用的主要手段 , 是路由器的一個重要功能。NAT 能夠將私有 IP 對外通信時轉為全局 IP,也就是就是一種將私有 IP 和全局 IP 相互轉化的技術方法。
這可以讓很多學校,家庭,公司內部采用每個終端設置私有 IP,而在路由器或必要的服務器上設置全局 IP。全局 IP 要求唯一,但是私有 IP 不需要,在不同的局域網中出現相同的私有 IP 是完全不影響的

IP 轉換過程

  • 10.0.0.10 要發送數據時,NAT 路由器將源地址從 10.0.0.10 替換成全局的 IP 202.244.174.37
  • NAT 路由器收到外部的數據時, 又會把目標 IP 202.244.174.37 替換回10.0.0.10
  • NAT 路由器內部有一張自動生成的用于地址轉換的表,當 10.0.0.10 第一次向 163.221.120.9發送數據時就會生成表中的映射關系

NAPT

那么問題來了 如果局域網內 有多個主機都訪問同一個外網服務器 那么對于服務器返回的數據中, 目的 IP 都是相同的 . 那么 NAT 路由器如何判定將這個數據包轉發給哪個局域網的主機?
這時候 NAPT 來解決這個問題了 使用 IP+port 來建立這個關聯關系。
這種關聯關系也是由 NAT 路由器自動維護的 例如在 TCP 的情況下 建立連接時 , 就會生成這個表項; 在斷開連接后 , 就會刪除這個表項。

代理服務器

代理服務(Proxy)是一種中間服務器,它充當中間人,轉發客戶端和目標服務器之間的請求和響應。代理服務器可以提供多種功能,如緩存、匿名訪問、訪問控制等。

客戶端將請求發送到代理服務器,代理服務器再將請求轉發到目標服務器。目標服務器的響應會通過代理服務器返回給客戶端。代理方式可以分為:

正向代理

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

工作原理

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

功能特點

  • 緩存功能:正向代理服務器可以緩存經常訪問的資源,當客戶端再次請求這些資源時,可以直接從緩存中獲取,提高訪問速度。
  • 內容過濾:正向代理可以根據預設的規則對請求或響應進行過濾,如屏蔽廣告、阻止惡意網站等。
  • 訪問控制:通過正向代理,可以實現對特定網站的訪問控制,如限制員工在工作時間訪問娛樂網站。
  • 隱藏客戶端身份:正向代理可以隱藏客戶端的真實 IP 地址,保護客戶端的隱私。
  • 負載均衡:在多個目標服務器之間分配客戶端請求,提高系統的可擴展性和可靠性。

應用場景

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

反向代理

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

基本原理

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

應用場景

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

NAT 和代理服務器

路由器往往都具備 NAT 設備的功能 , 通過 NAT 設備進行中轉 , 完成子網設備和其他子網設備的通信過程;代理服務器看起來和 NAT 設備有一點像 . 客戶端像代理服務器發送請求 , 代理服務器將請求轉發給真正要請求的服務器; 服務器返回結果后 , 代理服務器又把結果回傳給客戶端.
那么 NAT 和代理服務器的區別有哪些呢 ?
  • 從應用上講, NAT 設備是網絡基礎設備之一, 解決的是 IP 不足的問題. 代理服務器則是更貼近具體應用, 比如通過代理服務器進行翻墻, 另外像迅游這樣的加速器, 也是使用代理服務器.
  • 從底層實現上講, NAT 是工作在網絡層, 直接對 IP 地址進行替換. 代理服務器往往工作在應用層.
  • 從使用范圍上講, NAT 一般在局域網的出口部署, 代理服務器可以在局域網做, 也可以在廣域網做, 也可以跨網.
  • 從部署位置上看, NAT 一般集成在防火墻, 路由器等硬件設備上, 代理服務器則是一個軟件程序, 需要部署在服務器上.

內網穿透

內網穿透是一種技術,用于在不直接暴露內網設備的情況下,允許外部設備訪問內網資源。它通常通過隧道(Tunnel)技術實現,將內網設備的流量轉發到公網服務器,再由公網服務器轉發到目標設備。

內網穿透通常涉及以下組件:

  • 內網客戶端:需要被訪問的內網設備。

  • 公網服務器:中轉服務器,用于轉發流量。

  • 外部客戶端:訪問內網資源的設備。

常見的內網穿透工具包括:

  • frp:國內開源工具,支持多種協議,適合內網穿透。

  • ngrok:開源工具,支持HTTP/HTTPS和TCP隧道。

  • ZeroTier:基于虛擬網絡的內網穿透工具,支持多設備組網。

手動部署并測試內網穿

我們使用 frp 內網穿透工具進行部署,首先在以下網址進行下載:https://github.com/fatedier/frp/releases/tag/v0.58.1

下載以下版本

下載好后我們可以將該壓縮文件拷貝到 Windows 桌面上

在云服務器(公網)上部署frp

首先我們打開云服務器,并進入到家目錄,創建 frp 文件夾,之后再該路徑下進行測試

cd ~
mkdir frp
cd frp
而后使用 rz 或者直接將之前已經下載好的 frp 壓縮文件傳輸到云服務器上
使用以下命令對該文件進行解壓
tar xzf frp_0.58.1_linux_amd64.tar.gz

進入到解壓文件后就可以看到已經編譯好的客戶端和服務器可執行程序

  • frpc:客戶端程序,frpc.toml 為對應的配置文件
  • frps:服務器程序,frps.toml 為對應的配置文件
  • LICENSE:授權許可

由于我們需要云服務器作為內網穿透的服務器,所以配置 frps.toml

bindPort = 7000

在虛擬機(內網)上部署frp

推薦在虛擬機上設置網絡適配器模式為 NAT 模式,該模式下相當于在 Windows 中建立了一個子網,Windows 主機充當路由器,虛擬機就位于該子網中,這樣 Windows 和虛擬機就可以正常進行網絡通信。

首先我們打開虛擬機后,按下 Ctrl + Alt + T 打開終端,并進入到家目錄,創建 frp 文件夾,之后再該路徑下進行測試。

cd ~
mkdir frp
cd frp

查看虛擬機上的 ip 地址,先安裝 net-tools 包,而后使用 ifconig

sudo apt update
sudo apt install net-tools
ifconfig
lbk@lbk-virtual-machine:~/frp$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.22.128  netmask 255.255.255.0  broadcast 192.168.22.255inet6 fe80::d02a:4e7a:58be:12bb  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:3c:3a:32  txqueuelen 1000  (以太網)RX packets 49752  bytes 71176201 (71.1 MB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 5643  bytes 457889 (457.8 KB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

在輸出中,inet 后面的地址就是 IPv4 地址,即 192.168.22.128。

而后打開 Windows 下終端,使用 scp 命令傳輸 frp 壓縮文件到虛擬機上

scp /path/to/local/file username@remote_host:/path/to/remote/directory
#/path/to/local/file:本地文件的路徑。
#username:遠程服務器的用戶名。
#remote_host:遠程服務器的地址(IP 或域名)。
#/path/to/remote/directory:遠程服務器上的目標目錄。
scp D:\桌面\frp_0.58.1_linux_amd64.tar.gz lbk@192.168.22.128:/home/lbk/frp

之后在虛擬機中就存在 frp 壓縮文件,并解壓

tar xzf frp_0.58.1_linux_amd64.tar.gz

由于我們需要遠程連接虛擬機,所以配置 frpc.toml

#配置公網服務器上 frp 服務的 IP 與端口
serverAddr = "110.41.138.70"
serverPort = 7000[[proxies]]
name = "ssh-serivce" #名稱
type = "tcp" #代理類型
localIP = "127.0.0.1" #本地 IP
localPort = 22 #內網服務監聽的端口
remotePort = 7080  #需要在公網服務器上監聽的端口,
#其他人未來可以通過這個端口訪問我們的本地的 22 號服務
#也就是說 7080 端口會映射到 22 號端口

啟動連接

服務器和客戶端都可以這樣在后臺啟動
nohup ./frpc -c ./frpc.toml &> /dev/null &
nohup ./frps -c ./frps.toml &> /dev/null &
&> /dev/null :這是重定向操作,用于將命令的標準輸出( stdout )和標準錯誤(stderr )都重定向到 /dev/null /dev/null 是一個特殊的設備文件,向它寫入的內容都會被丟棄,讀取它則會立即返回文件結束。因此,這個操作的作用是忽略命令的所有輸出信息。
之后就可以通過連接在 frpc.toml 上配置的 serverAddr 和 remotePort 就可以登陸虛擬機。

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

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

相關文章

世界模型在塑造自動駕駛中的作用:綜述

25年2月來自華中理工和百度的論文“”The Role of World Models in Shaping Autonomous Driving: A Comprehensive Survey“。 駕駛世界模型 (DWM) 專注于預測駕駛過程中的場景演變&#xff0c;已成為實現自動駕駛一個有前途的范例。這些方法使自動駕駛系統能夠更好地感知、理…

全向廣播揚聲器在油氣田中的關鍵應用 全方位守護安全

油氣田作為高風險作業場所&#xff0c;安全生產始終是重中之重。在緊急情況下&#xff0c;如何快速、有效地傳達信息&#xff0c;確保人員安全撤離&#xff0c;是油氣田安全管理的關鍵環節。全向廣播揚聲器憑借其全方位覆蓋、高音質輸出和強大的環境適應性&#xff0c;成為油氣…

【AI大模型】AI賦能,使用DeepSeek 高效制作PPT實戰詳解

目錄 一、前言 二、傳統 PPT 制作問題 2.1 傳統方式制作 PPT 2.2 AI 大模型輔助制作 PPT 2.3 適用場景對比分析 2.4 最佳實踐與推薦 三、DeepSeek Kimi 高效制作PPT操作實踐 3.1 Kimi 簡介 3.2 DeepSeek Kimi 制作PPT優勢 3.2.1 DeepSeek 優勢 3.2.2 Kimi 制作PPT優…

【51單片機】程序實驗13.串口通信

主要參考學習資料&#xff1a;B站【普中官方】51單片機手把手教學視頻 開發資料下載鏈接&#xff1a;http://www.prechin.cn/gongsixinwen/208.html 前置知識&#xff1a;C語言 單片機套裝&#xff1a;普中STC51單片機開發板A4標準版套餐7 目錄 通信的基本概念串行通信與并行通…

論文閱讀筆記:ArcFace: Additive Angular Margin Loss for Deep Face Recognition

論文閱讀筆記&#xff1a;ArcFace: Additive Angular Margin Loss for Deep Face Recognition 1 背景2 創新點3 方法4 模塊4.1 Softmax4.2 權重歸一化4.3 乘性角度間隔4.4 特征歸一化4.5 加性余弦間隔4.6 加性角度間隔4.7 二值化情況下的比較4.8 目標Logit分析 5 效果5.1 消融實…

代碼隨想錄算法訓練營 | 圖論 | DFS

98. 所有可達路徑// DFS #include <bits/stdc.h> using namespace std;vector<vector<int>> result; vector<int> path;void dfs(const vector<list<int>> &graph, int i, int target) {if (i target) {result.push_back(path);retu…

GPPT: Graph Pre-training and Prompt Tuning to Generalize Graph Neural Networks

GPPT: Graph Pre-training and Prompt Tuning to Generalize Graph Neural Networks KDD22 推薦指數&#xff1a;#paper/??#? 動機 本文探討了圖神經網絡&#xff08;GNN&#xff09;在遷移學習中“預訓練-微調”框架的局限性及改進方向。現有方法通過預訓練&#xff08…

迷你世界腳本方塊接口:Block

方塊接口&#xff1a;Block 彼得兔 更新時間: 2024-08-27 11:04:56 具體函數名及描述如下&#xff1a; 序號 函數名 函數描述 1 isSolidBlock(...) 是否是固體方塊 2 isLiquidBlock(...) 是否是液體方塊 3 isAirBlock(...) 是否是氣體方塊 4 getBl…

Windows下git疑難:有文件無法被跟蹤

Windows下git疑難&#xff1a;有文件無法被跟蹤 最近在寫一個c# WinFrom程序&#xff0c; 奇怪的是&#xff0c;frmMain.cs這個文件一直無法被跟蹤 研究了很久&#xff0c; 參考這一篇 https://blog.csdn.net/m0_37315653/article/details/83064810 git rm --cached ./ -r 之…

Live2d官方項目運行

Live2d官方項目運行 1-參考網址 教程網址&#xff1a;https://blog.csdn.net/qq_39123467/article/details/131735085live2d官方地址&#xff1a;https://live2d.com/cubism-sdk/download/ 2-上手實踐 1&#xff09;先打開官方項目-全部路徑打開2&#xff09;cd /CubismSdkFo…

BUU43 [BJDCTF2020]The mystery of ip 1

前置知識&#xff1a; X - Forwarded - For注入 X - Forwarded - For&#xff08;XFF&#xff09;是一個 HTTP 頭字段&#xff0c;用于記錄客戶端的真實 IP 地址。當客戶端請求經過代理服務器時&#xff0c;代理服務器會將客戶端的 IP 地址添加到 X - Forwarded - For 頭中。…

張岳教授:語言模型推理與泛化研究 | ICLR 2025 特邀報告與團隊專場

點擊藍字 關注我們 AI TIME歡迎每一位AI愛好者的加入&#xff01; AITIME 01 ICLR 2025預講會特邀報告 AITIME 02 ICLR 2025預講會西湖大學張岳老師實驗室專場 01 AI生成文本的自動化檢測 Glimpse: Enabling White-Box Methods to Use Proprietary Models for Zero-Shot LLM-Ge…

MySQL SQL 優化專題

MySQL SQL 優化專題 1. 插入數據優化 -- 普通插入&#xff08;不推薦&#xff09; INSERT INTO tb_user VALUES(1,tom); INSERT INTO tb_user VALUES(2,cat); INSERT INTO tb_user VALUES(3,jerry);-- 優化方案1&#xff1a;批量插入&#xff08;推薦&#xff0c;不建議超過1…

【AI深度學習基礎】NumPy完全指南進階篇:核心功能與工程實踐(含完整代碼)

NumPy系列文章 入門篇進階篇終極篇 一、引言 在掌握NumPy基礎操作后&#xff0c;開發者常面臨真實工程場景中的三大挑戰&#xff1a;如何優雅地處理高維數據交互&#xff1f;如何在大規模計算中實現內存與性能的平衡&#xff1f;怎樣與深度學習框架實現高效協同&#xff1f;…

Python學習第十八天之深度學習之Tensorboard

Tensorboard 1.TensorBoard詳解2.安裝3.使用4.圖像數據格式的一些理解 后續會陸續在詞博客上更新Tensorboard相關知識 1.TensorBoard詳解 TensorBoard是一個可視化的模塊&#xff0c;該模塊功能強大&#xff0c;可用于深度學習網絡模型訓練查看模型結構和訓練效果&#xff08;…

【GraphQL API 漏洞簡介】

GraphQL API 漏洞簡介 一、漏洞原理與分類二、漏洞檢測方法三、典型利用方式四、工具推薦防御建議 GraphQL API 因其靈活性和高效性被廣泛應用&#xff0c;但也因設計和實現缺陷存在多種安全風險。以下從漏洞原理、檢測方法及利用方式三個維度進行詳細分析&#xff1a; 一、漏洞…

Windows逆向工程入門之MASM數據結構使用

公開視頻 -> 鏈接點擊跳轉公開課程博客首頁 -> ???鏈接點擊跳轉博客主頁 目錄 第一章&#xff1a;MASM數據定義體系精要 1.1 基礎數據類型全景 1.1.1 整型數據規范 1.1.2 浮點數據編碼 1.2 復合數據結構 1.2.1 多維數組定義 1.2.2 復雜結構體 第二章&#xf…

筑牢安全防線:工商業場所燃氣泄漏防護新方案

燃氣安全是企業經營不可逾越的生命線。在餐飲后廚、化工車間、酒店鍋爐房等場所&#xff0c;可燃氣體一旦泄漏&#xff0c;極易引發嚴重事故。如何實現精準監測、快速響應&#xff0c;成為工業及商業領域安全管理的核心訴求。旭華智能深耕安全監測領域&#xff0c;推出的工業及…

本地部署大數據集群前置準備

1. 設置VMware網段 虛擬網絡編輯器——更改設置——選擇VMnet8——子網改成192.168.88.0——NAT設置——網關設置為192.168.88.2 2. 下載CentOS操作系統 下載CentOS 7.6(1810)版本 3. 在VMware中安裝CentOS操作系統 創建新的虛擬機——典型——安裝光盤映像文件——輸入賬…

【藍橋杯單片機】第十二屆省賽

一、真題 二、模塊構建 1.編寫初始化函數(init.c) void Cls_Peripheral(void); 關閉led led對應的鎖存器由Y4C控制關閉蜂鳴器和繼電器 由Y5C控制 2.編寫LED函數&#xff08;led.c&#xff09; void Led_Disp(unsigned char ucLed); 將ucLed取反的值賦給P0 開啟鎖存器…