NAT、代理服務、內網穿透
- 一. NAT
- 1. NAT 技術
- 2. NAT IP 轉換過程
- 3. NAPT 技術
- 4. NAT 技術的缺陷
- 二. 代理服務器
- 1. 正向代理
- 2. 反向代理
- 3. NAT 和代理服務器
- 內網穿透
- 內網打洞
一. NAT
NAT(Network Address Translation,網絡地址轉換)技術,是解決IP地址不足的主要手段,并且能夠有效地避免來自網絡外部的攻擊,隱藏并保護網絡內部的計算機。
1. NAT 技術
在IPv4協議中,IP地址數量不足是一個大問題,而NAT技術就是當前解決IP地址不夠用的主要手段,是路由器的一個重要功能。
- 在進行對外通信時,NAT能夠將私有IP經過一系列替換操作最終轉為全局IP,也就是說,NAT是一種將私有IP和全局IP相互轉化的技術方法。
- 裝有NAT軟件的路由器叫做NAT路由器,所有使用私有IP的主機在和外界通信時,都要在NAT路由器上將其私有IP轉換成全局IP。
- 很多學校、家庭、公司內部每個終端設置的IP都是私有IP,而只在路由器或必要的服務器上設置全局IP。
- 全局IP要求唯一,但是私有IP不需要,在不同的局域網中出現相同的私有IP是完全不影響的。
2. NAT IP 轉換過程
- 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 發送數據時就會生成表中的映射關系。
3. NAPT 技術
那么問題來了,如果局域網內,有多個主機都訪問同一個外網服務器,那么對于服務器返回的數據中,目的 IP 都是相同的,那么 NAT 路由器如何判定將這個數據包轉發給哪個局域網的主機?
這時候 NAPT 來解決這個問題了,使用 IP+port 來建立這個關聯關系。
NAPT(網絡地址端口轉換)是一種網絡地址轉換技術,它通過將內部地址和端口映射到外部地址和端口,實現多個內部主機共享同一個公網IP地址的功能。
這種關聯關系也是由 NAT 路由器自動維護的。例如在 TCP 的情況下,建立連接時,就會生成這個表項,在斷開連接后,就會刪除這個表項。
4. NAT 技術的缺陷
NAT技術進行私有IP和公網之間的替換,主要就是依賴NAT路由器當中維護的網絡地址轉換表,但這張轉換表也體現出了NAT的一些缺陷:
- 無法從NAT外部向內部服務器建立連接,因為外部無法知道內部的私網IP,也就無法主動與內部服務器建立連接。
- 轉換表的生成和銷毀都需要額外開銷。
- 通信過程中一旦NAT設備異常,即使存在熱備,所有的TCP連接也都會斷開。
二. 代理服務器
代理服務器的功能就是代理網絡用戶去取得網絡信息,代理服務器又分為正向代理和反向代理。
1. 正向代理
正向代理是一種常見的網絡代理方式,它位于客戶端和目標服務器之間,代表客戶端向目標服務器發送請求。正向代理服務器接收客戶端的請求,然后將請求轉發給目標服務器,最后將目標服務器的響應返回給客戶端。通過這種方式,正向代理可以實現多種功能,如提高訪問速度、隱藏客戶端身份、實施訪問控制等。
工作原理
- 客戶端將請求發送給正向代理服務器。
- 正向代理服務器接收請求,并根據配置進行處理,如緩存查找、內容過濾等。
- 正向代理服務器將處理后的請求轉發給目標服務器。
- 目標服務器處理請求,并將響應返回給正向代理服務器。
- 正向代理服務器將響應返回給客戶端。
功能特點
- 緩存功能:正向代理服務器可以緩存經常訪問的資源,當客戶端再次請求這些資源時,可以直接從緩存中獲取,提高訪問速度。
- 內容過濾:正向代理可以根據預設的規則對請求或響應進行過濾,如屏蔽廣告、阻止惡意網站等。
- 訪問控制:通過正向代理,可以實現對特定網站的訪問控制,如限制員工在工作時間訪問娛樂網站。
- 隱藏客戶端身份:正向代理可以隱藏客戶端的真實 IP 地址,保護客戶端的隱私。
- 負載均衡:在多個目標服務器之間分配客戶端請求,提高系統的可擴展性和可靠性。
應用場景
- 企業網絡管理:企業可以通過正向代理實現對員工網絡訪問的管理和控制,確保員工在工作時間內專注于工作,避免訪問不良網站或泄露公司機密。
- 公共網絡環境:在公共場所如圖書館、學校等提供的網絡環境中,通過正向代理可以實現對網絡資源的合理分配和管理,確保網絡使用的公平性和安全性。
- 內容過濾與保護:家長可以通過設置正向代理來過濾不良內容,保護孩子免受網絡上的不良信息影響。
- 提高訪問速度:對于經常訪問的網站或資源,正向代理可以通過緩存機制提高訪問速度,減少網絡延遲。
- 跨境電商與海外訪問:對于跨境電商或需要訪問海外資源的企業和個人,正向代理可以幫助他們突破網絡限制,順暢地訪問海外網站和資源。
2. 反向代理
反向代理服務器是一種網絡架構模式,其作為 Web 服務器的前置服務器,接收來自客戶端的請求,并將這些請求轉發給后端服務器,然后將后端服務器的響應返回給客戶端。這種架構模式可以提升網站性能、安全性和可維護性等。
工作原理
反向代理服務器位于客戶端和 Web 服務器之間,當客戶端發起請求時,它首先會到達反向代理服務器。反向代理服務器會根據配置的規則將請求轉發給后端的 Web 服務器,并將 Web 服務器的響應返回給客戶端。在這個過程中,客戶端并不知道實際與哪個 Web 服務器進行了交互,它只知道與反向代理服務器進行了通信。
應用場景
- 負載均衡:反向代理服務器可以根據配置的負載均衡策略,將客戶端的請求分發到多個后端服務器上,以實現負載均衡。這有助于提升網站的整體性能和響應速度,特別是在高并發場景下。
- 安全保護:反向代理服務器可以隱藏后端 Web 服務器的真實 IP 地址,降低其被直接攻擊的風險。同時,它還可以配置防火墻、訪問控制列表(ACL)等安全策略,對客戶端的請求進行過濾和限制,以保護后端服務器的安全。
- 緩存加速:反向代理服務器可以緩存后端 Web 服務器的響應內容,對于重復的請求,它可以直接從緩存中返回響應,而無需再次向后端服務器發起請求。這可以大大減少后端服務器的負載,提升網站的響應速度。
- 內容過濾和重寫:反向代理服務器可以根據配置的規則對客戶端的請求進行過濾和重寫,例如添加或刪除請求頭、修改請求路徑等。這有助于實現一些特定的業務需求,如 URL 重寫、用戶認證等。
- 動靜分離:在大型網站中,通常需要將靜態資源和動態資源分開處理。通過將靜態資源部署在反向代理服務器上,可以直接從反向代理服務器返回靜態資源的響應,而無需再次向后端服務器發起請求。這可以大大提升靜態資源的訪問速度。
- CDN(Content Delivery Network,內容分發網絡)就是采用了反向代理的原理。
3. NAT 和代理服務器
路由器往往都具備 NAT 設備的功能,通過 NAT 設備進行中轉,完成子網設備和其他子網設備的通信過程。
代理服務器看起來和 NAT 設備有一點像,客戶端像代理服務器發送請求,代理服務器將請求轉發給真正要請求的服務器,服務器返回結果后,代理服務器又把結果回傳給客戶端。
NAT 和代理服務器的區別:
- 從應用上講,NAT 設備是網絡基礎設備之一,解決的是 IP 不足的問題。代理服務器則是更貼近具體應用,比如通過代理服務器進行翻墻,另外像迅游這樣的加速器,也是使用代理服務器。
- 從底層實現上講,NAT 是工作在網絡層,直接對 IP 地址進行替換。代理服務器往往工作在應用層。
- 從使用范圍上講,NAT 一般在局域網的出口部署,代理服務器可以在局域網做,也可以在廣域網做,也可以跨網。
- 從部署位置上看,NAT 一般集成在防火墻,路由器等硬件設備上,代理服務器則是一個軟件程序,需要部署在服務器上。
代理服務器是一種應用比較廣的技術
- 翻墻:廣域網中的代理。
- 負載均衡:局域網中的代理。