使用百度云加速后不能正确获取用户真实IP的解决办法_百度云加速HTTP头信息获取客户端真实ip

2021-08-20 4412阅读

文章最后更新时间:2021年10月07日已超过230天没有更新。

折腾博客就是一个反复跳坑、填坑的过程,累却乐在其中。虽然解决了IP归属地查询的问题,可很快发现了另一个问题:大部分的IP都是相同的,且相对固定。

想到最近启用了百度匀加速的cdn,就在匀加速的支持文件中查找了节点的ip地址,果不其然,评论者的IP全部来自百度匀加速的节点。这样一来就算显示评论者IP归属地还有什么意义呢?

使用百度云加速后不能正确获取用户真实IP的解决办法_百度云加速HTTP头信息获取客户端真实ip  百度云加速获取真实用户IP 获取用户真实ip 百度云加速后不能正确获取用户真实IP 如何使用百度云加速HTTP头信息获取客户端真实ip? 网 nbsp 服务器 第1张centos服务器,nginx用的百度云加速,获取不到真实的ip地址,在打开网站防火墙同时使用CDN后可能无法获取到用户的真实IP,那么就无法防御,有可能造成服务器防火墙误封CDN IP的情况,造成502 ,520错误等!那么如何使用百度云加速HTTP头信息获取客户端真实ip?

使用百度云加速后不能正确获取用户真实IP的解决办法_百度云加速HTTP头信息获取客户端真实ip  百度云加速获取真实用户IP 获取用户真实ip 百度云加速后不能正确获取用户真实IP 如何使用百度云加速HTTP头信息获取客户端真实ip? 网 nbsp 服务器 第2张

我的解决办法如下

百度云加速获取真实用户IP

登录CDN管理控制台,进入“内容分发网络CDN”页面。

在左侧导航栏,点击域名管理。

进入域名管理页面,点击目标域名操作列的管理。

进入“CDN域名详情”页,在页面上方导航栏选择回源配置页签。

进入回源配置页面,点击获取真实用户IP设置模块的编辑。

将“获取真实用户IP”调整到开启状态,并设置类型:

Client IP:源站可以获取到访问源的客户端IP地址,携带True-Client-Ip;

Real IP:源站可以获取到访问源的客户端IP地址,携带X-Real-IP。

使用百度云加速后不能正确获取用户真实IP的解决办法_百度云加速HTTP头信息获取客户端真实ip  百度云加速获取真实用户IP 获取用户真实ip 百度云加速后不能正确获取用户真实IP 如何使用百度云加速HTTP头信息获取客户端真实ip? 网 nbsp 服务器 第3张

点击保存后,在获取真实用户IP模块可以看到获取真实用户IP已开启,页面提示“配置已更新成功,大约五分钟生效”。

博客跟着同步

使用百度云加速后不能正确获取用户真实IP的解决办法_百度云加速HTTP头信息获取客户端真实ip  百度云加速获取真实用户IP 获取用户真实ip 百度云加速后不能正确获取用户真实IP 如何使用百度云加速HTTP头信息获取客户端真实ip? 网 nbsp 服务器 第4张

一种方法是获取 header中的 X-FORWARDED-FOR 来判断用户IP,但是众所周知这个字段是可以伪造的.
可靠的方法是获取百度云加速中的 CF-CONNECTING-IP 字段,实测这个字段无法伪造,是百度服务器直接发送到用户服务器,
那么我们获取这个字段就可以获取到用户的真实IP

通过添加X-Real-IP和X-Forwarded-For捕获客户端真实IP。

Nginx Proxy

192.168.107.107 nginx.conf
location /test {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.107.112:8080;
}
192.168.107.112 nginx.conf
location /test {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.107.114:8080;
}
Nginx Backend
192.168.107.114 nginx.conf
location /test {
default_type text/html;
charset gbk;
echo "$remote_addr ||$http_x_real_ip ||$http_x_forwarded_for";
}

当访问服务时,输出结果为:

192.168.107.112 || 192.168.162.16 || 192.168.162.16, 192.168.107.107