亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網站管理員

[點晴永久免費OA]為什么通過路由器端口轉向到內部WEB服務器時,WEB頁面能夠抓到外網訪客的真實IP。而用PortTunnel之類的軟件實現(xiàn)的端口映射到內部WEB服務器時,WEB頁面抓到的卻是PortTunnel所在電腦的內網IP?

admin
2025年6月27日 11:10 本文熱度 545

這是一個關于網絡地址轉換(NAT)和應用層代理工作層級差異的經典問題。根本原因在于 數(shù)據包處理發(fā)生的網絡層級不同 以及 誰真正發(fā)起了到內部Web服務器的TCP連接。

讓我們分解一下原因:

?? 1. 路由器端口轉發(fā)(DNAT)的工作原理(保留真實IP)

  • 工作層級: 網絡層(IP層)或傳輸層(TCP/UDP層)。

  • 過程:

    • 外網訪客發(fā)送一個數(shù)據包到路由器的公網IP地址(假設是 WAN_IP:80)。

    • 路由器檢查其端口轉發(fā)(Destination NAT, DNAT)規(guī)則,發(fā)現(xiàn)目標端口 80 需要轉發(fā)到內網服務器 LAN_SERVER_IP:80

    • 關鍵操作: 路由器只修改數(shù)據包的目標IP地址(從 WAN_IP 改為 LAN_SERVER_IP和目標端口(如果需要)。源IP地址(訪客的真實公網IP)保持不變。

    • 修改后的數(shù)據包被路由到內網Web服務器。

  • Web服務器視角: Web服務器看到這個TCP連接的源IP地址就是外網訪客的真實公網IP。因為從Web服務器的角度看,這個連接直接來自那個公網IP(雖然經過了路由器修改目標地址,但源地址沒變)。

  • 連接建立者: 從Web服務器的TCP棧角度看,連接是外網訪客直接發(fā)起的(源IP是訪客IP)。路由器只是在中間修改了目標地址,沒有中斷這個連接。

?? 2. Porttunnel 類軟件端口映射(通常是反向代理)的工作原理(顯示Porttunnel內網IP)

  • 工作層級: 應用層(通常是HTTP層,但也可以是其他應用層協(xié)議)。

  • 過程:

    • 外網訪客發(fā)送一個數(shù)據包到運行Porttunnel軟件的電腦的公網IP(PORTTUNNEL_IP:PortX)。

    • Porttunnel軟件(作為服務端)完整接收這個傳入的連接和數(shù)據。

    • 關鍵操作: Porttunnel軟件創(chuàng)建一個全新的、獨立的TCP連接,從它自己(PORTTUNNEL_LAN_IP)指向內部Web服務器(LAN_SERVER_IP:80)。

    • Porttunnel軟件將訪客發(fā)來的數(shù)據讀取出來,然后通過它自己新建的這個連接轉發(fā)給Web服務器。同樣地,它也會把Web服務器的響應讀出來,通過它接收到的訪客連接發(fā)送回去。

  • Web服務器視角: Web服務器看到的這個TCP連接的源IP地址是運行Porttunnel軟件的電腦的內網IP地址(PORTTUNNEL_LAN_IP。因為從Web服務器的角度看,這個連接是Porttunnel軟件自己主動發(fā)起的。

  • 連接建立者: Web服務器的TCP棧確認連接是由 PORTTUNNEL_LAN_IP 發(fā)起的。原始的訪客連接只到達了Porttunnel軟件,并未直接到達Web服務器。Porttunnel軟件充當了中間人(代理)的角色。

?? 總結關鍵差異

特性路由器端口轉發(fā) (DNAT)Porttunnel類軟件 (應用層代理/反向代理)
工作層級網絡層/傳輸層 (IP/TCP頭修改)應用層 (處理應用數(shù)據)
連接處理修改原始數(shù)據包目標地址,透傳連接終結原始連接,新建到服務器的連接
源IP可見性Web服務器看到訪客真實公網IPWeb服務器看到Porttunnel主機的內網IP
本質網絡地址轉換 (NAT)應用層代理/反向代理

?? 為什么Porttunnel不保留源IP?(技術難點)

  1. TCP連接狀態(tài): TCP是一個有狀態(tài)的協(xié)議。當Porttunnel終結了訪客的連接,那個連接的狀態(tài)就結束了。它需要一個新的TCP連接狀態(tài)機來與后端服務器通信。

  2. 應用層協(xié)議理解(可選但常見): 像Porttunnel這樣的工具,特別是配置為HTTP端口映射時,通常會理解HTTP協(xié)議。這使得它們能夠添加像 X-Forwarded-For 這樣的頭(見下文解決方案),但核心的TCP連接源IP仍然只能是Porttunnel本身的IP。

  3. 防火墻/NAT限制: 如果Porttunnel運行在Windows上,它本身可能位于另一個NAT設備(如家用路由器)后面,它甚至沒有公網IP來接收連接(除非做了端口映射到它),更不用說將原始源IP直接路由到內部服務器了。

?? 如何在Porttunnel場景下獲取真實IP?(解決方案)

既然Web服務器只能看到Porttunnel的IP,要獲取真實訪客IP,必須依賴應用層協(xié)議傳遞信息

  1. X-Forwarded-For HTTP Header: 這是最通用的方法。配置Porttunnel(或任何反向代理,如Nginx, Apache, HAProxy)在新建到后端Web服務器的連接時,在HTTP請求頭中添加一個 X-Forwarded-For 頭,其值設置為原始訪客的IP地址。Web服務器應用程序(如Apache, Nginx, IIS, 應用代碼)需要配置為讀取并信任這個頭(來自已知代理的IP),并用這個頭的值來記錄或處理訪客IP,而不是使用TCP連接的源IP。

  2. 代理協(xié)議(Proxy Protocol): 這是一個更底層的標準(最初由HAProxy提出),在TCP連接建立之初,代理服務器就在發(fā)送應用數(shù)據之前,先發(fā)送一行包含原始連接信息的文本(包括源IP/端口、目標IP/端口)。Web服務器需要明確支持并配置理解Proxy Protocol。它不依賴于特定的應用層協(xié)議(如HTTP),但需要代理和后端服務器都支持。

  3. Windows防火墻日志(間接/不推薦): 如果Porttunnel運行在Windows上,且Windows防火墻記錄了傳入連接,你可能在防火墻日志中找到原始IP和Porttunnel收到的連接。但這非常不便于集成到Web日志中,且依賴防火墻配置。

?? 結論

路由器端口轉發(fā)工作在底層(網絡層),通過簡單的目標地址修改直接透傳連接,使Web服務器能看到原始源IP。Porttunnel等軟件工作在應用層,作為代理終結客戶端連接并新建服務器端連接,因此Web服務器看到的是代理自身的IP地址。要獲取真實IP,必須使用應用層機制如 X-Forwarded-For 頭或Proxy Protocol。理解這個差異對于正確配置日志記錄、訪問控制和安全分析至關重要。???


相關教程:

?采用端口轉向軟件映射到局域網內的另外一臺WEB服務器時,利用Nginx實現(xiàn)抓取訪客真實外網IP[2]
  http://31874.oa22.cn


該文章在 2025/6/27 12:05:44 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved