完整部署nginx-cloudflare-real-ip:从脚本安装到自动更新全流程
完整部署nginx-cloudflare-real-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你是否在使用Cloudflare CDN时发现Nginx日志中全是Cloudflare的IP地址而无法获取真实访客IP 这正是nginx-cloudflare-real-ip项目要解决的痛点这个开源工具能帮助你轻松获取Cloudflare背后的真实访客IP地址让网站日志分析、安全防护和用户追踪变得更加准确。本文将为你提供从零开始的完整部署指南包含脚本安装、Nginx配置和自动更新全流程。 为什么需要nginx-cloudflare-real-ip当你的网站使用Cloudflare CDN服务时所有访客请求都会先经过Cloudflare的全球节点。这意味着Nginx服务器看到的IP地址都是Cloudflare服务器的IP而不是真实访客的IP。这会导致 网站访问统计失真 安全防护措施失效 故障排查困难nginx-cloudflare-real-ip项目通过自动同步Cloudflare的IP地址列表并配置Nginx正确解析CF-Connecting-IP头部完美解决了这个问题 准备工作与环境要求在开始之前请确保你的系统满足以下要求要求说明操作系统Linux发行版Ubuntu、CentOS、Debian等Nginx版本1.9.4或更高版本权限root或sudo权限网络能访问Cloudflare官方网站 第一步获取项目文件首先我们需要下载nginx-cloudflare-real-ip项目文件到本地# 创建项目目录 mkdir -p /opt/nginx-cloudflare-real-ip cd /opt/nginx-cloudflare-real-ip # 下载项目文件 wget https://gitcode.com/gh_mirrors/ng/nginx-cloudflare-real-ip/raw/master/cloudflare-sync-ips.sh wget https://gitcode.com/gh_mirrors/ng/nginx-cloudflare-real-ip/raw/master/crontab-sample.txt # 添加执行权限 chmod x cloudflare-sync-ips.sh⚙️ 第二步配置Nginx获取真实IP现在我们需要修改Nginx配置文件让它能够识别Cloudflare传递的真实访客IP编辑Nginx主配置文件sudo nano /etc/nginx/nginx.conf在http块中添加以下配置 找到http {部分在合适的位置添加include /etc/nginx/cloudflare;验证配置语法sudo nginx -t如果看到configuration file /etc/nginx/nginx.conf test is successful的提示说明配置正确。 第三步首次运行同步脚本让我们手动运行一次同步脚本来生成Cloudflare IP列表# 运行同步脚本 sudo /opt/nginx-cloudflare-real-ip/cloudflare-sync-ips.sh # 查看生成的配置文件 cat /etc/nginx/cloudflare脚本执行成功后你会看到类似下面的输出#Cloudflare # - IPv4 set_real_ip_from 173.245.48.0/20; set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.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; 第四步测试配置效果配置完成后让我们验证是否成功获取真实IP重启Nginx服务sudo systemctl restart nginx检查Nginx访问日志tail -f /var/log/nginx/access.log发送测试请求 从外部网络访问你的网站观察日志中的IP地址是否已经是真实访客IP而非Cloudflare IP。⏰ 第五步设置自动更新关键步骤Cloudflare的IP地址列表会定期更新我们需要设置自动同步。这是确保长期稳定运行的关键方法一使用crontab定时任务# 编辑当前用户的crontab crontab -e在文件末尾添加以下行每天凌晨2:30自动同步# 自动同步Cloudflare IP地址并重载Nginx 30 2 * * * /opt/nginx-cloudflare-real-ip/cloudflare-sync-ips.sh /dev/null 21方法二使用systemd定时器更现代的方式创建systemd服务文件sudo nano /etc/systemd/system/cloudflare-ip-sync.service添加以下内容[Unit] DescriptionSync Cloudflare IP addresses for Nginx Afternetwork.target [Service] Typeoneshot ExecStart/opt/nginx-cloudflare-real-ip/cloudflare-sync-ips.sh Userroot创建定时器文件sudo nano /etc/systemd/system/cloudflare-ip-sync.timer添加以下内容[Unit] DescriptionDaily Cloudflare IP sync timer [Timer] OnCalendardaily Persistenttrue [Install] WantedBytimers.target启用并启动定时器sudo systemctl enable cloudflare-ip-sync.timer sudo systemctl start cloudflare-ip-sync.timer️ 高级配置与优化技巧1. 自定义配置文件路径如果你想将Cloudflare IP列表保存到其他位置可以这样运行脚本# 指定自定义路径 sudo /opt/nginx-cloudflare-real-ip/cloudflare-sync-ips.sh /etc/nginx/conf.d/cloudflare.conf然后在Nginx配置中相应修改include /etc/nginx/conf.d/cloudflare.conf;2. 添加日志记录修改脚本以记录同步操作#!/bin/bash # 在脚本开头添加日志记录 LOG_FILE/var/log/cloudflare-ip-sync.log echo $(date): Starting Cloudflare IP sync $LOG_FILE # ...原有脚本内容... # 在脚本结尾添加成功记录 echo $(date): Cloudflare IP sync completed successfully $LOG_FILE3. 错误处理增强在crontab中添加错误通知# 带错误通知的crontab配置 30 2 * * * /opt/nginx-cloudflare-real-ip/cloudflare-sync-ips.sh 21 | mail -s Cloudflare IP Sync Result adminexample.com 故障排除指南遇到问题试试这些解决方法问题可能原因解决方案脚本无法运行权限不足使用sudo或确保脚本有执行权限Nginx配置测试失败语法错误检查/etc/nginx/cloudflare文件格式无法获取Cloudflare IP网络问题测试curl https://www.cloudflare.com/ips-v4IP列表不更新Cloudflare API变化检查脚本中的URL是否正确常见错误排查步骤检查脚本执行权限ls -la /opt/nginx-cloudflare-real-ip/cloudflare-sync-ips.sh手动测试Cloudflare APIcurl -s https://www.cloudflare.com/ips-v4 | head -5查看Nginx错误日志tail -20 /var/log/nginx/error.log 验证部署效果部署完成后通过以下方式验证效果1. 查看实时IP获取情况创建一个测试页面来显示当前IP?php // test-ip.php echo Your real IP is: . $_SERVER[REMOTE_ADDR]; echo brCloudflare connecting IP: . ($_SERVER[HTTP_CF_CONNECTING_IP] ?? Not from Cloudflare); ?2. 监控IP同步状态创建监控脚本#!/bin/bash # monitor-cloudflare-ips.sh LAST_SYNC$(stat -c %y /etc/nginx/cloudflare 2/dev/null || echo File not found) IP_COUNT$(grep -c set_real_ip_from /etc/nginx/cloudflare 2/dev/null || echo 0) echo Last sync: $LAST_SYNC echo IP addresses in list: $IP_COUNT 维护与更新定期检查建议每月检查一次验证脚本是否正常运行sudo /opt/nginx-cloudflare-real-ip/cloudflare-sync-ips.sh检查IP列表是否最新# 比较当前列表与Cloudflare官方列表 curl -s https://www.cloudflare.com/ips-v4 | wc -l grep -c set_real_ip_from /etc/nginx/cloudflare项目更新当项目有新版本时cd /opt/nginx-cloudflare-real-ip # 备份当前配置 cp cloudflare-sync-ips.sh cloudflare-sync-ips.sh.backup # 下载最新版本 wget -O cloudflare-sync-ips.sh https://gitcode.com/gh_mirrors/ng/nginx-cloudflare-real-ip/raw/master/cloudflare-sync-ips.sh chmod x cloudflare-sync-ips.sh 总结通过本文的完整指南你已经成功部署了nginx-cloudflare-real-ip解决方案关键收获✅ 学会了如何配置Nginx获取Cloudflare背后的真实访客IP✅ 掌握了自动同步Cloudflare IP地址列表的方法✅ 理解了定时任务和错误处理的配置技巧✅ 获得了完整的故障排除能力这个简单的解决方案能显著提升你的网站更准确的访问统计- 看到真实用户分布更强的安全防护- 基于真实IP的访问控制更便捷的故障排查- 准确定位问题来源现在你的网站已经能够正确记录真实访客IP了记得定期检查自动更新是否正常工作确保IP列表始终保持最新。如果你有任何问题或改进建议欢迎参与项目讨论保持更新保持安全- 让nginx-cloudflare-real-ip为你的网站提供持续的真实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),仅供参考

相关新闻

Embedding 缓存与向量检索优化:减少重复计算的实践

Embedding 缓存与向量检索优化:减少重复计算的实践

Embedding 缓存与向量检索优化:减少重复计算的实践 一、向量化运算的「重复劳动」 AI 产品中,文本的向量化(Embedding)是一个高频但容易被忽视的计算开销。当用户提交一段文本,产品需要把它转换为向量,以便进行语义搜索、内容聚类或相似度比较。这个转换过程本身消耗…

2026/7/16 19:04:39阅读更多 →
企业级Figma-Context-MCP离线部署架构设计:3种高性能方案深度解析

企业级Figma-Context-MCP离线部署架构设计:3种高性能方案深度解析

企业级Figma-Context-MCP离线部署架构设计:3种高性能方案深度解析 【免费下载链接】Figma-Context-MCP MCP server to provide Figma layout information to AI coding agents like Cursor 项目地址: https://gitcode.com/gh_mirrors/fi/Figma-Context-MCP 在…

2026/7/16 19:04:39阅读更多 →
LINE Bot SDK PHP数据洞察与分析:利用Insight API获取用户行为数据

LINE Bot SDK PHP数据洞察与分析:利用Insight API获取用户行为数据

LINE Bot SDK PHP数据洞察与分析:利用Insight API获取用户行为数据 【免费下载链接】line-bot-sdk-php LINE Messaging API SDK for PHP 项目地址: https://gitcode.com/gh_mirrors/li/line-bot-sdk-php LINE Messaging API SDK for PHP是一款功能强大的开发…

2026/7/16 18:59:39阅读更多 →
终极指南:用OCRmyPDF一键提取PDF元数据,让扫描文档秒变智能档案

终极指南:用OCRmyPDF一键提取PDF元数据,让扫描文档秒变智能档案

终极指南:用OCRmyPDF一键提取PDF元数据,让扫描文档秒变智能档案 【免费下载链接】OCRmyPDF OCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched 项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF O…

2026/7/16 19:54:43阅读更多 →
SeedCracker完全使用手册:从安装到实战的完整教程

SeedCracker完全使用手册:从安装到实战的完整教程

SeedCracker完全使用手册:从安装到实战的完整教程 【免费下载链接】SeedCracker Fast, Automatic In-Game Seed Cracker for Minecraft. 项目地址: https://gitcode.com/gh_mirrors/se/SeedCracker SeedCracker是一款针对Minecraft的快速、自动游戏内种子破解…

2026/7/16 19:54:43阅读更多 →
Ascend C GlobalTensor GetValue API

Ascend C GlobalTensor GetValue API

GetValue 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/c…

2026/7/16 19:54:43阅读更多 →
ComicTagger完全指南:如何为数字漫画添加专业元数据

ComicTagger完全指南:如何为数字漫画添加专业元数据

ComicTagger完全指南:如何为数字漫画添加专业元数据 【免费下载链接】comictagger A multi-platform app for writing metadata to digital comics 项目地址: https://gitcode.com/gh_mirrors/co/comictagger 您是否拥有大量的数字漫画收藏,却难以…

2026/7/16 19:54:43阅读更多 →
如何在macOS上轻松创建Windows启动盘:WinDiskWriter完整指南

如何在macOS上轻松创建Windows启动盘:WinDiskWriter完整指南

如何在macOS上轻松创建Windows启动盘:WinDiskWriter完整指南 【免费下载链接】windiskwriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI & Le…

2026/7/16 19:54:43阅读更多 →
如何高效配置大麦抢票自动化工具:3步完整指南

如何高效配置大麦抢票自动化工具:3步完整指南

如何高效配置大麦抢票自动化工具:3步完整指南 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 你是否也曾因为手速不够快而错失心仪的演唱…

2026/7/16 19:49:43阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/16 8:28:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/16 6:53:04阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/16 12:02:41阅读更多 →
A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并

A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并

摘要:本文系统讲解如何利用Codex App的Review功能与GitHub PR工作流,实现从代码修改到安全合并的完整流程。涵盖Review面板深度使用、/review命令实战、GitHub Connector配置、PR描述撰写技巧,以及常见问题排查方法。通过多个实战案例和流程图,帮助开发者建立高效的AI辅助代…

2026/7/16 0:00:38阅读更多 →
遗传算法解5皇后问题:从Hello World到工业优化的进化实验室

遗传算法解5皇后问题:从Hello World到工业优化的进化实验室

1. 项目概述:为什么用遗传算法解5皇后问题,而不是直接回溯?我带过十几届算法课,也给不少初创团队做过AI架构咨询。每次讲到组合优化问题,学生和工程师的第一反应永远是“写个回溯试试”。这没错——55棋盘上找所有合法…

2026/7/16 0:00:38阅读更多 →
5.1V稳压管输出为何只有4.7V?工作电流与负载影响分析

5.1V稳压管输出为何只有4.7V?工作电流与负载影响分析

前几天调试一个简单的电源模块,用到了5.1V稳压管。电路接好,上电测试,万用表一量——输出居然只有4.7V。第一反应是稳压管坏了,换了一个新的,结果还是4.7V。这让我想起很多初学者都会遇到的困惑:明明标称5.…

2026/7/16 0:00:38阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/15 15:50:47阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/16 8:58:42阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/16 17:10:26阅读更多 →