必须关闭宝塔所有自动cdn功能:删除反向代理规则、关闭非“强制https”的cdn选项、禁用防火墙中cdn回源白名单同步;cloudflare dns需橙色云朵且a记录指向服务器公网ip;宝塔配置须保留原始host头、禁用多余跳转,并确保nginx正确解析x-forwarded-for获取真实ip。

确认宝塔是否已关闭所有自动 CDN 功能
宝塔面板自带的“反向代理”或“CDN 加速”开关一旦开启,会和 Cloudflare 的边缘节点产生双重代理冲突,导致源站 IP 泄露、HTTPS 混合内容错误,甚至 52x 系统级错误。必须手动检查并关闭:
- 网站设置 → 反向代理 → 删除所有已配置的代理规则(尤其是指向
127.0.0.1或本地端口的) - 网站设置 → SSL → 关闭「强制 HTTPS」以外的所有 CDN 相关勾选项(如“启用 CDN 加速”“自动适配移动端”等)
- 安全 → 防火墙 → 确保未启用“CDN 回源白名单自动同步”,该功能在免费版 Cloudflare 下无意义且易误封真实回源 IP
Cloudflare DNS 设置必须用橙色云朵 + 正确回源地址
橙色云朵(Proxied)是启用 Cloudflare 边缘网络的前提,但仅此不够。常见错误是 DNS 记录指向了宝塔默认的 127.0.0.1 或内网地址,导致 Cloudflare 无法真正连接你的服务器。
- 登录 Cloudflare 控制台 → DNS → 找到你的域名 A/AAAA 记录 → 确保状态为
Proxied(橙色云朵) - 记录值必须填你服务器的公网 IPv4 地址(不是内网 IP,不是宝塔面板首页显示的“本地 IP”,可用
curl ifconfig.me在服务器终端确认) - 若使用 IPv6,需额外添加 AAAA 记录,并确保宝塔监听的 Nginx/Apache 支持 IPv6 回源(多数国内 VPS 默认关闭 IPv6,建议初期只配 IPv4)
宝塔网站配置需保留原始 Host 头 + 禁用自动跳转
Cloudflare 默认会改写请求头中的 Host 和 X-Forwarded-For,如果宝塔里还套了一层 301 跳转或 Host 校验,就会触发循环重定向或 400 错误。
- 网站设置 → 配置文件 → 找到
server_name行,确保它包含你实际绑定的域名(如example.com www.example.com),不要写成_或空 - 删除或注释掉任何形如
return 301 https://$host$request_uri;的强制跳转语句——Cloudflare 已负责 HTTPS 终止,宝塔应只处理 HTTP 回源流量 - SSL 页中,“强制 HTTPS”可开启,但必须配合 Cloudflare 的 SSL/TLS → Overview 中设置为
Full (strict),否则宝塔自签证书会引发 526 错误
验证回源是否干净:关键 Header 和日志检查
最常被忽略的是 Cloudflare 是否真把原始客户端 IP 传给了宝塔。默认情况下,Nginx 日志里看到的全是 Cloudflare 的 IP 段(如 173.245.48.0/20),这不是故障,而是正常现象;但你要确认宝塔能从中正确提取真实 IP。
- 进入网站 → 日志 → 运行日志,刷新前端页面,查看最新访问条目中的
remote_addr字段是否为 Cloudflare IP 段 —— 是的话说明回源通路正常 - 确认 Nginx 配置中已包含标准 Cloudflare IP 白名单(宝塔 8.x 后通常自动注入):
set_real_ip_from 173.245.48.0/20;等共 7 段,且real_ip_header X-Forwarded-For; - 若用 WordPress 或其他程序,需额外在代码或插件中启用 “X-Forwarded-For” 解析,否则后台看到的登录 IP 仍是 Cloudflare 节点 IP
Cloudflare 免费版不支持自定义缓存规则或边缘脚本,所以别在宝塔里再加缓存插件;它的核心价值只是隐藏源站 IP 和提供基础 DDoS 缓解。只要 DNS 橙云、回源地址真实、Header 传递完整,就已达成出海场景下的最小可靠配置。其余优化(如 Brotli、OCSP Stapling)都应在 Cloudflare 控制台而非宝塔中调整。











