请求未通过Cloudflare网络?配置问题排查求助
问题分析与修复方案
一、先确认Cloudflare代理是否真的生效
- 检查DNS记录状态:确保域名的A/AAAA/CNAME记录旁的云朵图标是橙色(已代理),灰色状态意味着请求会直接解析到源服务器IP,完全绕过Cloudflare。
- 验证请求链路:执行
curl -I yourdomain.com查看响应头,若存在CF-Ray、CF-Cache-Status这类Cloudflare专属响应头,说明代理生效;无此类头则证明请求未走Cloudflare。
二、服务器直接拿到用户真实IP的原因
Cloudflare作为反向代理,会将用户真实IP放在CF-Connecting-IP请求头中,源服务器收到的请求IP本应是Cloudflare节点IP。出现真实IP直接暴露的情况,大概率是以下两种问题:
- 源服务器IP被直接访问:比如用户通过源IP访问站点,或域名存在未开启代理的DNS记录(如额外的A记录指向源IP且云朵为灰色)。
- 服务器未信任Cloudflare代理IP:Apache/Nginx等服务器需配置反向代理信任规则,才能正确识别Cloudflare节点IP为合法代理来源,否则可能直接透传用户真实IP。
三、修复.htaccess 403错误
你添加的白名单规则返回403,要么是规则IP段过时,要么是当前请求根本没走Cloudflare(导致服务器收到用户真实IP被拦截)。以下是正确的Apache .htaccess规则:
# 仅允许Cloudflare IP访问 <RequireAll> Require ip 103.21.244.0/22 Require ip 103.21.248.0/22 Require ip 103.22.200.0/22 Require ip 103.31.4.0/22 Require ip 104.16.0.0/13 Require ip 104.24.0.0/14 Require ip 108.162.192.0/18 Require ip 131.0.72.0/22 Require ip 141.101.64.0/18 Require ip 162.158.0.0/15 Require ip 172.64.0.0/13 Require ip 173.245.48.0/20 Require ip 188.114.96.0/20 Require ip 190.93.240.0/20 Require ip 197.234.240.0/22 Require ip 198.41.128.0/17 Require ip 2400:cb00::/32 Require ip 2606:4700::/32 Require ip 2803:f800::/32 Require ip 2405:b500::/32 Require ip 2405:8100::/32 Require ip 2a06:98c0::/29 Require ip 2c0f:f248::/32 </RequireAll>
注意:可通过curl https://www.cloudflare.com/ips-v4和curl https://www.cloudflare.com/ips-v6获取最新IP段,避免因IP列表过时拦截合法请求。
四、服务器层面的代理信任配置
Apache
开启mod_remoteip模块,让服务器信任Cloudflare代理,并将CF-Connecting-IP作为真实用户IP记录:
LoadModule remoteip_module modules/mod_remoteip.so RemoteIPHeader CF-Connecting-IP RemoteIPTrustedProxy 103.21.244.0/22 RemoteIPTrustedProxy 103.21.248.0/22 # 补充所有Cloudflare IPv4/IPv6段
配置完成后重启Apache服务。
Nginx
在Nginx配置文件中添加以下规则:
set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.21.248.0/22; # 补充所有Cloudflare IPv4/IPv6段 real_ip_header CF-Connecting-IP; real_ip_recursive on;
配置完成后重启Nginx服务。
五、其他排查方向
- 清除DNS缓存:用户本地DNS缓存可能仍指向旧的源服务器IP,建议清除本地缓存后换网络测试。
- 检查服务器防火墙:iptables、firewalld等防火墙需将Cloudflare IP段加入白名单,否则会拦截合法代理请求。
- 排查额外反向代理:若服务器前还有其他自定义反向代理(如自建Nginx),需确保该代理也信任Cloudflare IP,避免代理信息丢失。
内容的提问来源于stack exchange,提问作者anxiety
相关产品推荐
相关产品推荐

