×

帮助中心

常见问题
域名类
•  域名介绍
•  注册/续费
•  域名管理
•  域名过户
•  域名转移
•  增值服务
•  域名交易
•  通用网址
•  产品更新日志
邮局类
•  产品简介
•  产品管理
•  邮件客户端
•  邮箱用户操作指南
•  邮箱管理员操作指南
•  产品使用手册
•  代理商控制台操作指南
•  产品更新日志
云虚机类
•  购买与升级
•  FTP
•  主机管理
•  技术问题
•  数据库
•  产品更新日志
ECS云主机类
•  产品更新日志
会员类
•  会员注册
•  信息修改
•  忘记密码
•  账户实名认证
•  产品更新日志
财务类
•  后付费计费
•  在线支付
•  线下汇款
•  发票问题
•  汇款单招领
•  退款问题
•  充值业务
•  产品更新日志
ICP备案
•  备案问题快速咨询通道
•  备案介绍
•  备案账号
•  ICP备案前准备内容
•  ICP备案流程
•  ICP备案操作指导
•  ICP备案信息查看
•  备案合规核查要求
•  资料下载
•  公安联网备案与经营性备案
•  各地管局备案通知
•  常见问题
服务类
•  ICP备案
•  小新服务
•  产品更新日志
网站定制类
•  网站定制问题
•  网站访问问题
新办公类
•  常见问题
•  操作手册下载
云推送
•  云推送常见问题
速成建站
•  网站访问问题
•  网站使用问题
•  产品更新日志
SSL证书
•  SSL证书常见问题
•  产品更新日志
新网云产品类
•  新网云WEB应用防火墙
•  新网云DDoS防护
•  云数据库
•  云产品运维
•  内容分发网络CDN
•  对象存储 S3
•  网络
资料下载
新手上路

客户端真实 IP 及端口

  • 作者:
  • 文章来源:新网
  • 点击数:0
  • 更新时间:2023-11-30 17:49:35

客户端真实 IP 及端口

XWAF 获取通过 CDN 等代理服务器访问的客户端真实 IP

一般 CDN 会通过 XFF(X-Forwarded-For) 或 X-Real-IP 来传递来访用户的真实 IP,但是不排除用户构造该字段伪造请求 IP 的情况出现。

如果想在 WAF 端获取到来访用户的真实的 IP,需要做如下操作

1、打开 WEB 应用防火墙控制台的【域名管理】,选中需要设置的域名,点击【编辑】
2、打开后,开启【WAF 前是否具有代理】选项,并在【真实 IP 字段设置】处填入 真实IP 字段(该字段请与您的CDN供应商确认真实 IP 字段)
3、配置完成后,点击【确定】,即可让 XWAF 获取到客户到客户端真实 IP。

源站获取客户端真实 IP

XWAF 会在回源请求头中添加 X-Real-IP 和 X-Forwarded-For 两个字段来传递来访用户的真实 IP,在源站服务器中可进行相应的配置以便获取这两个字段的值。

X-Real-IP 与 X-Forwarded-For 的区别

代理服务器(比如 XWAF)会把请求的来源 IP 写入 X-Real-IP 字段,然后发送给源站,这个字段只会有一个 IP 地址;而每经过一级代理,代理服务器会把来源追加到 X-Forwarded-For 中,在多次代理的情况下,则该字段会有多个 IP 地址(真实 IP, 代理服务器 1, 代理服务器 2, ...)。

源站获取客户端真实端口

XWAF 会在回源请求头中添加 X-Real-Port 字段来传递来访用户的真实端口,源站可通过取这个头部字段的值获取用户客户端真实的端口。

示例配置

对于常见的 HTTP 服务器或 Web 应用程序,可以通过下面的方法来获取客户端真实 IP:

Nginx

对于 Nginx 服务器,可以使用 $http_x_real_ip 取得 X-Real-IP 字段的值,使用 $http_x_real_port 取得 X-Real-Port 字段的值。利用 Nginx 的 http_realip_module 模块可以让 $remote_addr 显示为客户端的真实 IP,添加的配置如下:

set_real_ip_from 回源IP段; # 回源IP段请参考“XWAF注意事项&FAQ”,多个IP段需多条指令。 real_ip_header X-Forwarded-For; # 也可以使用 X-Real-IP real_ip_recursive on; # 若WAF前有CDN等代理,需要此指令设为 on,否则不用。CopyErrorSuccess
若源站的 Nginx 作为代理服务器,在前文配置的基础上还可在配置中添加以下内容使得后端应用也能通过 X-Real-IP 或 X-Forwarded-For 获取的客户端真实 IP:

# ... location / { # ... proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 

ASP

Request.ServerVariables("X-Real-IP")

JSP

request.getHeader("X-Real-IP")

PHP

$_SERVER["HTTP_X_FORWARDED_FOR"]

说明:

如果上层链路为 CDN 等第三方代理服务器,有可能无法获取真实 IP。此种情况需要参照前文WAF 获取通过 CDN 等代理服务器访问的客户端真实 IP提前在域名设置中开启【WAF 前是否具有代理】选项并指定客户端真实 IP 字段。

新网云WEB应用防火墙

免费咨询获取折扣

Loading