配置DDoS高防后获取真实的请求来源IP

业务接入DDoS高防后,到达源站的所有业务流量都由DDoS高防转发,源站服务器通常可以通过解析回源请求中的X-Forwarded-For记录或者安装TOA模块,获取客户端的真实IP。本文九河云介绍如何获取真实的请求来源IP。

配置端口接入的业务(非网站业务)

  • 高防IPv4实例:部分场景下您可以通过安装TOA模块,获取真实来源IP。

  • 高防IPv6实例:不支持获取真实来源IP。

重要

为避免DDoS高防的回源流量被误拦截,请您在源站放行DDoS高防的回源IP段。

  • 网络架构为DDoS高防->阿里云ECS:请将DDoS高防的回源IP段,加入ECS安全组的白名单中。

  • 网络架构为DDoS高防->负载均衡SLB->阿里云ECS:请将DDoS高防的回源IP段,添加到负载均衡SLB的访问控制白名单中。

配置域名接入的业务(网站业务)

当七层代理服务器(例如DDoS高防)将用户的访问请求转发到后端服务器时,源站看到的请求来源默认是七层代理服务器(例如DDoS高防)的回源IP,而真实的请求来源IP被记录在HTTP头部的X-Forwarded-For字段中,格式为X-Forwarded-For: 用户真实IP, 高防代理IP

如果访问请求到后端服务器间经过了一台以上代理服务器(例如经过WAF、CDN等代理服务器),则HTTP头部的X-Forwarded-For字段记录了真实的请求来源IP和所有经过的代理服务器IP,格式为X-Forwarded-For: 用户真实IP, 代理服务器1-IP, 代理服务器2-IP, 代理服务器3-IP, ...

因此,常见的Web应用服务器都可以通过X-Forwarded-For字段的内容获取真实的请求来源IP。

针对不同的编程语言,常用的获取X-Forwarded-For内容的方式如下:

  • ASP

    复制代码
    Request.ServerVariables("HTTP_X_FORWARDED_FOR")
  • ASP.NET(C#)

    复制代码
    Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
  • PHP

    复制代码
    `$_SERVER["HTTP_X_FORWARDED_FOR"]
  • JSP

    复制代码
    request.getHeader("HTTP_X_FORWARDED_FOR")

获取到X-Forwarded-For字段的内容后,以英文逗号(,)作为分隔符,截取其中的第一个IP地址,即可获取真实的请求来源IP。

相关推荐
贝塔实验室3 小时前
频偏估计方法--快速傅里叶变换(FFT)估计法
网络协议·算法·数学建模·动态规划·信息与通信·信号处理·傅立叶分析
间彧3 小时前
TCPDump诊断网络故障案例-微服务集群间歇性通信失败排查
网络协议
间彧3 小时前
Tcpdump详解与项目实战:从基础到高级的网络抓包技术
网络协议
aodunsoft4 小时前
安全月报 | 傲盾DDoS攻击防御2025年9月简报
网络·安全·ddos
jz_ddk5 小时前
[LVGL] 从0开始,学LVGL:基础构建篇 - 掌握UI的核心构建块
linux·网络协议·ui·rpc·嵌入式·gui·lvgl
饥饿的半导体6 小时前
网络协议工程 - eNSP及相关软件安装 - [eNSP, VirtualBox, WinPcap, Wireshark, Win7]
网络·网络协议·wireshark
沐浴露z8 小时前
一篇文章讲清 UPD协议 与 TCP协议
网络·网络协议·tcp/ip·计算机网络
IPIDEA全球IP代理9 小时前
跨境卖家该选静态IP还是动态IP?
网络·网络协议·tcp/ip
2503_924806859 小时前
分辨海外IP是否为住宅IP的方法
服务器·网络协议·tcp/ip