nginx-cloudflare-real-ip:终极指南!轻松恢复Cloudflare后的真实访客IP
nginx-cloudflare-real-ip终极指南轻松恢复Cloudflare后的真实访客IP【免费下载链接】nginx-cloudflare-real-ipThis project aims to modify your nginx configuration to let you get the real ip address of your visitors.项目地址: https://gitcode.com/gh_mirrors/ng/nginx-cloudflare-real-ipnginx-cloudflare-real-ip是一个简单而强大的工具专门解决使用Cloudflare CDN后网站无法获取真实访客IP地址的问题。当你的网站通过Cloudflare代理时服务器日志中显示的IP地址都是Cloudflare服务器的IP这会严重影响访问统计、安全分析和地理定位等功能。本指南将教你如何快速配置nginx让服务器正确识别真实访客IP地址为什么需要恢复真实访客IPCloudflare作为全球领先的CDN和安全服务提供商会代理所有访问你网站的流量。这意味着当访客请求到达你的服务器时nginx看到的IP地址实际上是Cloudflare边缘节点的IP而不是访客的真实IP地址。这种设置会导致访问日志无法准确记录访客来源基于IP的地理定位功能失效安全防护系统无法正确识别恶意IP用户行为分析数据不准确幸运的是Cloudflare提供了一个解决方案通过CF-Connecting-IP头部传递真实访客IP。nginx-cloudflare-real-ip项目就是帮你自动配置这个功能的完美工具快速开始一键安装配置第一步下载项目文件首先你需要克隆项目仓库到本地git clone https://gitcode.com/gh_mirrors/ng/nginx-cloudflare-real-ip cd nginx-cloudflare-real-ip第二步运行同步脚本项目提供了自动同步Cloudflare IP列表的脚本。执行以下命令sudo bash cloudflare-sync-ips.sh这个脚本会自动从Cloudflare官方获取最新的IPv4和IPv6地址段生成nginx配置文件测试nginx配置语法重新加载nginx服务第三步配置nginx打开nginx主配置文件sudo nano /etc/nginx/nginx.conf在http { ... }块内添加以下内容include /etc/nginx/cloudflare;保存文件后重新加载nginx配置sudo nginx -t sudo systemctl reload nginx自动更新设置定时任务Cloudflare的IP地址会定期更新为了确保配置始终有效建议设置定时任务自动同步。将脚本复制到合适的位置sudo cp cloudflare-sync-ips.sh /opt/scripts/ sudo chmod x /opt/scripts/cloudflare-sync-ips.sh编辑crontabsudo crontab -e添加以下行每天凌晨2:30自动执行30 2 * * * /opt/scripts/cloudflare-sync-ips.sh /dev/null 21工作原理解析Cloudflare IP白名单机制当访客通过Cloudflare访问你的网站时请求会经过以下流程访客 → Cloudflare边缘节点 → 你的服务器Cloudflare在请求头部添加CF-Connecting-IP字段包含真实IPnginx通过set_real_ip_from指令信任Cloudflare的IP段nginx从CF-Connecting-IP头部提取真实IP生成的配置文件示例脚本生成的/etc/nginx/cloudflare文件包含类似以下内容#Cloudflare # - IPv4 set_real_ip_from 173.245.48.0/20; set_real_ip_from 103.21.244.0/22; # ... 更多IPv4地址段 # - IPv6 set_real_ip_from 2400:cb00::/32; set_real_ip_from 2606:4700::/32; # ... 更多IPv6地址段 real_ip_header CF-Connecting-IP;验证配置效果配置完成后你可以通过以下方式验证是否生效方法一检查nginx访问日志查看nginx访问日志确认IP地址是否显示为真实访客IPsudo tail -f /var/log/nginx/access.log方法二创建测试页面创建一个简单的PHP或HTML页面来显示服务器获取的IP?php echo 你的IP地址是: . $_SERVER[REMOTE_ADDR]; ?访问该页面应该显示你的真实公网IP而不是Cloudflare的IP。高级配置选项自定义配置文件路径如果你想将配置文件放在其他位置可以指定路径参数sudo bash cloudflare-sync-ips.sh /etc/nginx/conf.d/cloudflare.conf然后在nginx配置中相应地修改include路径include /etc/nginx/conf.d/cloudflare.conf;多个Cloudflare配置如果你的nginx配置中有多个server块需要此功能可以将配置放在http块中这样所有虚拟主机都会生效。常见问题解决问题1nginx配置测试失败如果运行脚本后出现nginx配置错误sudo nginx -t检查错误信息通常是语法错误或路径问题。确保include路径正确并且nginx有权限读取配置文件。问题2IP地址仍然不正确如果访问日志中仍然显示Cloudflare的IP确认Cloudflare的代理状态为Proxied橙色云朵图标检查nginx错误日志sudo tail -f /var/log/nginx/error.log确认real_ip_header指令正确设置为CF-Connecting-IP问题3脚本执行权限问题确保脚本有执行权限sudo chmod x /path/to/cloudflare-sync-ips.sh安全注意事项⚠️重要提示配置真实IP恢复功能后请确保不要完全依赖IP进行身份验证恶意用户可以伪造IP头部保持Cloudflare IP列表更新使用定时任务自动同步定期检查nginx配置确保配置正确且安全监控访问日志注意异常访问模式性能优化建议减少配置重载频率虽然Cloudflare的IP列表相对稳定但过于频繁的重载nginx可能影响性能。建议每天同步一次即可在低流量时段执行同步任务使用nginx -t先测试配置确认无误后再重载使用include指令的优势通过单独的include文件管理Cloudflare IP配置便于维护和更新不影响主配置文件可以轻松备份和恢复项目文件说明cloudflare-sync-ips.sh主同步脚本获取Cloudflare IP并生成配置crontab-sample.txt定时任务配置示例README.md项目详细说明文档总结通过nginx-cloudflare-real-ip项目你可以轻松解决Cloudflare代理导致的真实IP丢失问题。这个简单而有效的解决方案只需要几分钟的配置时间就能让你的nginx服务器正确识别访客的真实IP地址。记住关键步骤下载项目文件运行同步脚本配置nginx包含生成的文件设置定时任务自动更新现在你的网站访问日志将显示真实的访客IP地址所有基于IP的功能都能正常工作如果你在使用过程中遇到任何问题建议查看nginx错误日志或者检查Cloudflare的代理设置。大多数问题都可以通过仔细检查配置文件和日志信息来解决。提示定期检查Cloudflare官方文档了解IP地址段的更新情况确保你的配置始终是最新的。保持配置更新是确保服务稳定和安全的关键【免费下载链接】nginx-cloudflare-real-ipThis project aims to modify your nginx configuration to let you get the real ip address of your visitors.项目地址: https://gitcode.com/gh_mirrors/ng/nginx-cloudflare-real-ip创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻