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

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

Nginx 獲取真實(shí)客戶(hù)端 IP 的正確姿勢(shì)

admin
2025年9月10日 21:22 本文熱度 83

在云原生架構(gòu)下,Nginx 或應(yīng)用服務(wù)前面掛了 WAF、負(fù)載均衡(SLB) 等安全和流量治理組件,Nginx 日志里 $remote_addr 往往不再是用戶(hù)的真實(shí)公網(wǎng) IP,而是代理設(shè)備的出口 IP。
本文帶你從原理到實(shí)踐,搞清楚如何優(yōu)雅、安全地拿回真實(shí)客戶(hù)端 IP。

?? 背景與問(wèn)題

為什么 `$remote_addr` 是代理 IP?

因?yàn)?TCP 連接實(shí)際是和 WAF/SLB 建立的。
對(duì) Nginx 來(lái)說(shuō),連接對(duì)端就是 SLB/WAF 的出口地址,而不是用戶(hù)。


?? 用戶(hù)真實(shí) IP 的去向

WAF/SLB 會(huì)把真實(shí)用戶(hù) IP 寫(xiě)入 HTTP 頭
  • X-Forwarded-For: <client-ip>, <proxy-ip>, ...

  • X-Real-IP: <client-ip>(某些設(shè)備使用)

因此,只能在 HTTP 七層讀取這些頭部才能拿回真實(shí)客戶(hù)端 IP。


?? 正確獲取真實(shí) IP 的 Nginx 配置

直接打印 `$http_x_forwarded_for` 有安全風(fēng)險(xiǎn)

因?yàn)樵擃^部可以被偽造,攻擊者可以隨意插入 IP。

正確做法:使用 ngx_http_realip_module,并只信任來(lái)自自家代理設(shè)備的 IP。

# 1) 信任的代理網(wǎng)段
set_real_ip_from 10.0.0.0/16;    
set_real_ip_from 192.168.0.0/24;
# 2) 指定頭部
real_ip_header X-Forwarded-For;
# 3) 啟用遞歸解析,獲取最左側(cè)的客戶(hù)端 IP
real_ip_recursive on;
# 4) 日志配置
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                'status=$status bytes=$body_bytes_sent '
                'xff="$http_x_forwarded_for" ua="$http_user_agent"';
access_log /var/log/nginx/access.log main;


?? 非 HTTP/HTTPS 場(chǎng)景怎么辦?

有些業(yè)務(wù)跑在 WebSocket、HTTPS 直透、純 TCP 服務(wù) 上,這時(shí)不能依賴(lài) HTTP 頭。

兩種常見(jiàn)方案
  1. PROXY protocol(推薦)
  • 上游設(shè)備在 TCP 握手時(shí)寫(xiě)入真實(shí) IP

  • Nginx 開(kāi)啟支持:

    server {
      listen 443 proxy_protocol;
      real_ip_header proxy_protocol;
      set_real_ip_from 10.0.0.0/16;
    }
    
  • 適用于 HTTPS、TCP 等多場(chǎng)景

  1. 透明代理/TPROXY
  • 在網(wǎng)絡(luò)層保留源地址,運(yùn)維復(fù)雜,依賴(lài)內(nèi)核和路由配置

  • 公有云環(huán)境下一般不推薦


?? 避坑指南

常見(jiàn)誤區(qū)
  • 忘記配置可信網(wǎng)段:導(dǎo)致 Nginx 誤信任偽造頭

  • 未開(kāi)啟遞歸解析:多級(jí)代理場(chǎng)景下,拿到的是中間代理 IP

  • 只記錄真實(shí) IP,不記錄頭:排查問(wèn)題時(shí)丟失上下文

  • 后端透?jìng)鬟z漏:業(yè)務(wù)服務(wù)無(wú)法獲取到真實(shí) IP

最佳實(shí)踐
  • set_real_ip_from 指定可信代理網(wǎng)段

  • real_ip_header X-Forwarded-For 并開(kāi)啟 real_ip_recursive on

  • 日志同時(shí)打印 $remote_addr 與 $http_x_forwarded_for

  • 向后端透?jìng)髡鎸?shí) IP:

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP       $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    


? 總結(jié)

  • 為什么看不到真實(shí) IP? ?? TCP 對(duì)端是 WAF/SLB。

  • 如何拿回? ?? HTTP 場(chǎng)景依賴(lài) X-Forwarded-For,必須配合 realip 模塊。

  • 非 HTTP 場(chǎng)景? ?? 使用 PROXY protocol。

  • 最佳實(shí)踐? ?? 配置可信網(wǎng)段、遞歸解析、雙日志記錄、后端透?jìng)鳌?/p>

這樣配置后,無(wú)論日志分析、風(fēng)控策略還是安全審計(jì),都能基于準(zhǔn)確的用戶(hù)源 IP 進(jìn)行判斷。


閱讀原文:原文鏈接


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