admin 发表于 前天 22:19

【笔记】网站使用Cloudflare的CDN后,获取访客的真实IP地址(实测有效)

首先说明一下,本教程并不是教授你《如何寻找别人的站在 Cloudflare 防护下的真实源站 IP》而是,当你的网站套上 Cloudflare 的 CDN,并打开 Cloudflare 的小云朵。教你源服务器显示访客的真实 IP 地址的方法。Cloudflare 作为可靠性及高,又成本最低的 CDN 和防护方案,深受各大中小站长的喜爱。包括著名的域名注册商 Namesilo 在内的很多网站,都选择了 Cloudflare 作为 CDN。相信当你看到本文的时候,也已经使用上 Cloudflare 的服务。因为 Cloudflare 提供了免费的订阅,足够个人小站使用了。一、Cloudflare 的 CDN 常规使用

当你的网站接入 Cloudflare 的 CDN,并在 Cloudflare 的后台点开小云朵(代理状态 改为 已代理)生效之后。https://www.itpno.com/wp-content/uploads/2024/07/image-5.png
这个时候你会发现,通过站长工具 Ping 你的网址。响应的 IP 地址为 Cloudflare 的 IP 地址。https://www.itpno.com/wp-content/uploads/2024/07/image-6.png
也就是说访客通过浏览器访问您的网址,会首先到达 Cloudflare 的 CDN 服务器,再经过 Cloudflare 的中转抵达你的源站。如下图所示:https://www.itpno.com/wp-content/uploads/2024/07/image-7.png
在没有进行额外设置的情况下,访客的 IP 地址是不会正确的体现在你的真实源服务器上的。
尝试用你自己的浏览器访问你自己的网址,然后查看宝塔面板的 【站点设置】–【响应日志】https://www.itpno.com/wp-content/uploads/2024/07/image-8.png
可以通过【响应日志】看到,你源服务器得到的访客 IP 并不是你真实的 IP,通过查询此 IP 可以得知。这个 IP 地址是 Cloudflare 的 CDN 服务器 IP 地址。简单总结一下就是,当你启用了 Cloudflare 的 CDN 之后。你源站收到的请求全部都是 Cloudflare 的 CDN 地址。虽然,这并不会影响客户的正常访问。但在以下这种情况下是会出现问题的。例:源服务器开启了防 CC 或者 WAF 策略

也不知道为什么,互联网上总有隐藏在背后。不断对你站点进行攻击的人。尽管小站流量不大,也没有影响任何人的利益。却总是有人没日没夜的对你的网址、服务器进行扫描、嗅探、攻击。在你开启 Cloudflare 的 CDN 之后,如果设置得当。针对服务器的 DDos 攻击可能会因为隐藏掉原始 IP 使得攻击者无法下手。但攻击者的手段多到你无法想象。比方说攻击者使用 CC 的手段对你的网站地址进行攻击的时候。往往会采用大量的代理 IP,模拟正常访问。让你的源服务器超过其负载能力导致宕机。比方说大量的请求导致 CPU、内存超载。或者源服务器宽带超载。往往网站运营者,会采用在源站配置防 CC 策略。来屏蔽攻击者的 IP。但如果你已经开启了 Cloudflare 的 CDN,那么你的源服务器屏蔽的并不是真实的访客 IP。反而屏蔽的是 Cloudflare 的 CDN 服务器节点 IP,那么这个时候就会导致大量的 Cloudflare 服务器无法正常访问到你的源服务器。即使针对 Cloudflare CC 攻击的量并没有超过服务器的负载。那么正常的访客也会无法访问你的网站。所以如何让源服务器获取到访客真实的访问 IP 就显得尤为重要了。二、设置源服务器的 Nginx 使源服务器获取访客真实 IP

这里示例中,我们采用宝塔面板,Web 服务采用 Nginx。点击宝塔面板中的:【软件商店】 -> 【运行环境】 -> 并在 Nginx 后面点击【设置】https://www.itpno.com/wp-content/uploads/2024/07/image-9.png
接下来点击【配置修改】,并在下图位置插入如下两段代码。并点击保存。
    set_real_ip_from 0.0.0.0/0;
    real_ip_header X-Forwarded-For;





https://www.itpno.com/wp-content/uploads/2024/07/image-10.png
经过以上修改,我们宝塔源服务器就可以获取到访客的真实 IP 了。抄袭自:网站使用 Cloudflare 的 CDN 后,获取访客的真实 IP 地址(实测有效)- 星空 seo (31seo.com)另外 WordPress 中可以按照以下方法:

在网站的 wp-config.php 中添加一下代码:
//绕过 CDN 代理IP获取客户真实IP地址
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
    $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
    $_SERVER['REMOTE_ADDR'] = $list[0];
}

页: [1]
查看完整版本: 【笔记】网站使用Cloudflare的CDN后,获取访客的真实IP地址(实测有效)