接入 Cloudflare 后,服务器这些配置一定要改
Cloudflare 对服务器有什么影响|附配置文件
在网站部署与运维过程中,Cloudflare 是一个非常常见的基础设施服务。很多站长、开发者或企业会把域名 DNS 接入 Cloudflare,然后开启 CDN、WAF、防 DDoS、SSL/TLS、缓存、访问规则等功能。这样做的好处很明显:网站访问速度可能变快,源站服务器暴露风险降低,抗攻击能力提升,HTTPS 配置更简单。但与此同时,Cloudflare 也会对服务器的访问链路、日志记录、真实 IP 获取、SSL 配置、缓存策略、安全策略等方面产生影响。
本文将系统说明 Cloudflare 对服务器的影响,并给出常见的 Nginx、Apache、防火墙、Docker、宝塔面板等配置示例,帮助你更稳定、安全地使用 Cloudflare。
一、Cloudflare 的基本工作原理
在未接入 Cloudflare 之前,用户访问网站的流程通常是:
用户浏览器 → DNS 解析到服务器 IP → 直接访问源站服务器
接入 Cloudflare 后,访问流程变为:
用户浏览器 → Cloudflare 边缘节点 → 源站服务器
也就是说,用户不再直接访问你的服务器,而是先访问 Cloudflare 的全球边缘节点。Cloudflare 会根据配置决定是否直接返回缓存内容,或者继续向你的服务器请求数据。
如果 Cloudflare 开启了代理模式,也就是 DNS 记录中显示橙色云朵,那么用户看到的是 Cloudflare 的 IP,而不是你的源站 IP。源站服务器只会接收到来自 Cloudflare 节点的请求。
二、Cloudflare 对服务器的主要影响
1. 源站真实 IP 被隐藏
Cloudflare 最大的作用之一是隐藏源站 IP。正常情况下,用户通过域名访问网站时,DNS 返回的是 Cloudflare 的 IP,而不是源站服务器的 IP。
这样可以降低以下风险:
- 源站 IP 被直接扫描;
- 攻击者绕过 CDN 直接攻击服务器;
- 暴露服务器所在机房或云服务商信息;
- 源站服务端口被恶意探测。
不过需要注意,Cloudflare 并不能百分百保证源站 IP 不泄露。如果你以前使用过真实 IP 解析域名,或者服务器上存在其他子域名直连源站,攻击者依然可能通过历史 DNS、证书透明日志、邮件头、错误配置等方式发现源站 IP。
因此,接入 Cloudflare 后,最好在服务器防火墙中只允许 Cloudflare IP 访问 80 和 443 端口,防止其他来源绕过 Cloudflare 直接访问源站。
2. 服务器访问日志中的 IP 会发生变化
接入 Cloudflare 后,服务器日志中默认记录的访问 IP 可能不再是用户真实 IP,而是 Cloudflare 节点 IP。例如 Nginx 日志中可能出现:
172.70.214.123 - - [01/Jan/2026:12:00:00 +0800] "GET / HTTP/1.1" 200
这个 IP 实际上是 Cloudflare 的边缘节点,而不是用户真实地址。
Cloudflare 会在请求头中传递用户真实 IP,常见字段包括:
CF-Connecting-IP
X-Forwarded-For
X-Real-IP
其中,CF-Connecting-IP 是 Cloudflare 官方推荐用于获取访客真实 IP 的字段。
如果不正确配置服务器,可能会产生以下问题:
- 日志统计不准确;
- 安全审计无法定位真实来源;
- WordPress、Discuz、Laravel 等程序获取到错误 IP;
- 登录限制、防刷策略失效;
- Fail2ban、WAF、风控系统误封 Cloudflare 节点 IP。
因此,接入 Cloudflare 后,恢复访客真实 IP 是非常重要的一步。
3. SSL/TLS 配置方式会改变
Cloudflare 提供多种 SSL/TLS 模式,常见有:
| 模式 | 浏览器到 Cloudflare | Cloudflare 到源站 | 是否推荐 |
|---|---|---|---|
| Off | HTTP | HTTP | 不推荐 |
| Flexible | HTTPS | HTTP | 不推荐 |
| Full | HTTPS | HTTPS | 一般可用 |
| Full Strict | HTTPS | HTTPS 且验证证书 | 推荐 |
很多新手容易选择 Flexible 模式,因为它不要求源站配置 HTTPS。但这种模式存在明显问题:
- 用户到 Cloudflare 是 HTTPS;
- Cloudflare 到源站是 HTTP;
- 源站无法感知真实 HTTPS;
- 容易出现无限重定向;
- 安全性不完整。
推荐使用 Full (strict) 模式,并在服务器上安装有效证书。证书可以使用 Let's Encrypt,也可以使用 Cloudflare Origin Certificate。
4. 缓存会影响源站压力与内容更新
Cloudflare 的缓存功能可以显著减少服务器请求压力。对于图片、CSS、JS、字体、静态 HTML 页面等资源,Cloudflare 可以直接在边缘节点返回内容,不必每次都访问源站。
这样带来的好处包括:
- 降低服务器带宽消耗;
- 提升全球访问速度;
- 减少源站并发压力;
- 提高网站抗突发流量能力;
- 缓解部分爬虫访问压力。
但缓存也可能带来问题:
- 页面更新后用户看到旧内容;
- 后台接口被错误缓存;
- 登录状态页面缓存异常;
- 电商库存、价格信息不及时;
- API 返回结果被缓存导致业务错误。
因此,缓存策略一定要根据业务类型合理配置。静态资源可以长期缓存,动态页面和 API 应谨慎缓存。
5. 防火墙与安全策略会变化
Cloudflare 本身提供 WAF、防 DDoS、Bot Fight Mode、Rate Limiting、安全等级、浏览器完整性检查等功能。开启后,部分恶意流量会在到达服务器前被拦截。
对服务器而言,这意味着:
- 源站收到的恶意请求减少;
- CC 攻击压力降低;
- SQL 注入、XSS 等常见攻击可提前过滤;
- 可以用 Cloudflare 规则限制地区、ASN、路径访问;
- 源站安全配置可以与 Cloudflare 联动。
但也需要注意误拦截问题。例如某些接口、支付回调、API 客户端、搜索引擎爬虫,可能因为 Cloudflare 安全规则过严而被拦截。此时需要在 Cloudflare 中设置跳过规则或白名单。
三、Cloudflare 对不同类型服务器的影响
1. 对 Nginx 服务器的影响
Nginx 是最常见的 Web 服务器之一。接入 Cloudflare 后,主要需要处理真实 IP、HTTPS、反向代理头、缓存头等问题。
如果不配置真实 IP,Nginx 日志中会显示 Cloudflare IP。如果网站程序依赖 IP 判断用户身份,也会受到影响。
推荐配置 Nginx 的 real_ip_header,让 Nginx 从 CF-Connecting-IP 中读取访客真实 IP。
2. 对 Apache 服务器的影响
Apache 可以通过 mod_remoteip 模块恢复真实 IP。配置后,Apache 访问日志和后端程序会更容易获取真实访客地址。
需要注意的是,只有来自 Cloudflare IP 段的请求才应该信任 CF-Connecting-IP,否则攻击者可以伪造请求头。
3. 对应用程序的影响
很多程序会通过服务器变量获取用户 IP。例如:
- PHP 中的
$_SERVER['REMOTE_ADDR']; - Laravel 中的
$request->ip(); - WordPress 中的评论 IP;
- Node.js 中的
req.ip; - Django 中的
request.META。
如果服务器没有正确恢复真实 IP,这些程序可能获取到 Cloudflare 节点地址。对于登录风控、限流、防刷、评论审核、用户定位等功能都会造成影响。
4. 对防火墙的影响
源站服务器接入 Cloudflare 后,理论上应只允许 Cloudflare 节点访问 Web 端口。如果 80 和 443 对全网开放,攻击者一旦知道源站 IP,仍然可以绕过 Cloudflare 直接攻击服务器。
因此建议:
- 22 SSH 端口仅允许管理员固定 IP;
- 80/443 仅允许 Cloudflare IP 段;
- 数据库端口禁止公网访问;
- 面板端口限制 IP 或 VPN 访问;
- 使用 Fail2ban 或安全组进一步加固。
四、Cloudflare 接入服务器后的优点
1. 提升网站访问速度
Cloudflare 在全球拥有大量边缘节点。当用户访问网站时,会连接到距离较近的节点。如果资源已经缓存,Cloudflare 可以直接返回内容,减少跨境或长距离访问延迟。
对于全球用户访问的网站,Cloudflare 的加速效果尤其明显。即使源站服务器位于单一区域,用户也可以通过边缘节点更快获取静态内容。
2. 降低服务器负载
静态资源被 Cloudflare 缓存后,服务器不需要每次都处理相同请求。图片、CSS、JS、字体文件等资源命中缓存后,会直接由 Cloudflare 返回。
服务器负载降低后,可以带来以下好处:
- CPU 使用率下降;
- 带宽费用降低;
- PHP、Node.js、Java 后端压力减少;
- 数据库访问减少;
- 网站在高峰期更稳定。
3. 提升抗攻击能力
Cloudflare 可以在边缘层抵御大量恶意流量。对于普通服务器而言,DDoS 攻击可能直接打满带宽,导致网站无法访问。而使用 Cloudflare 后,大部分攻击流量会先进入 Cloudflare 网络,由 Cloudflare 进行清洗和拦截。
对于中小型网站来说,即使使用免费版 Cloudflare,也能获得一定程度的基础防护。
4. 简化 HTTPS 部署
Cloudflare 可以自动为域名签发边缘证书,使用户访问网站时使用 HTTPS。同时源站可以使用 Let's Encrypt 或 Cloudflare Origin Certificate 配置 HTTPS。
相比完全手动维护证书,Cloudflare 在证书续期、边缘 HTTPS、安全协议支持方面更加方便。
5. 提供丰富的安全与访问控制规则
Cloudflare 可以根据国家、IP、ASN、请求路径、User-Agent、请求方法等条件设置规则。例如:
- 阻止特定国家访问后台;
- 限制
/wp-login.php登录频率; - 拦截恶意爬虫 User-Agent;
- 对 API 路径设置限速;
- 对后台路径启用额外验证;
- 对特定路径绕过缓存。
这些能力可以让源站减少很多安全压力。
五、Cloudflare 可能带来的问题
1. 获取不到真实用户 IP
这是最常见问题。解决方法是配置 Web 服务器信任 Cloudflare IP,并从 CF-Connecting-IP 读取真实 IP。
2. SSL 模式错误导致循环跳转
如果 Cloudflare 使用 Flexible 模式,而源站或程序强制跳转 HTTPS,就可能出现无限重定向。
典型表现:
ERR_TOO_MANY_REDIRECTS
建议将 Cloudflare SSL/TLS 模式设置为:
Full (strict)
同时源站安装有效 HTTPS 证书。
3. 缓存导致页面不更新
如果页面被缓存,更新内容后用户可能仍看到旧页面。解决方法包括:
- 清理 Cloudflare 缓存;
- 设置合理 Cache-Control;
- 对动态页面绕过缓存;
- 使用版本号管理静态资源;
- 对后台和接口禁用缓存。
4. 上传文件或接口超时
Cloudflare 对请求大小、连接时长、响应时间等有一定限制。免费版和不同套餐限制不同。某些大文件上传、长连接接口、慢响应接口可能受到影响。
解决方案:
- 上传文件改走对象存储;
- 后台任务异步处理;
- API 缩短响应时间;
- 大文件下载使用 R2、S3 或直连专用域名;
- 长连接服务使用不经过 Cloudflare 代理的子域名。
5. 非 HTTP 服务无法直接代理
Cloudflare 免费版主要代理 HTTP/HTTPS 流量。SSH、数据库、普通 TCP 服务不能直接通过橙云代理,除非使用 Cloudflare Spectrum、Tunnel 或 Zero Trust 等服务。
因此,数据库、SSH、Redis、MQ 等服务不应依赖普通 CDN 代理暴露在公网。
六、Nginx 配置文件示例:恢复真实 IP
以下配置用于 Nginx 从 Cloudflare 获取真实访问 IP。
1. 创建 Cloudflare IP 配置文件
建议新建文件:
/etc/nginx/conf.d/cloudflare-real-ip.conf
内容如下:
# 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;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 131.0.72.0/22;
# Cloudflare IPv6
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2a06:98c0::/29;
set_real_ip_from 2c0f:f248::/32;
# 使用 Cloudflare 提供的真实客户端 IP 请求头
real_ip_header CF-Connecting-IP;
# 递归解析真实 IP
real_ip_recursive on;
然后检查配置并重载:
nginx -t
systemctl reload nginx
2. Nginx 站点配置示例
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/nginx/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/example.com/privkey.pem;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
root /var/www/example.com;
index index.html index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~* \.(jpg|jpeg|png|gif|webp|svg|ico|css|js|woff|woff2|ttf)$ {
expires 30d;
add_header Cache-Control "public, max-age=2592000";
try_files $uri =404;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# 将真实协议传给后端
fastcgi_param HTTPS on;
fastcgi_param HTTP_X_FORWARDED_PROTO $scheme;
fastcgi_param HTTP_CF_CONNECTING_IP $http_cf_connecting_ip;
}
}
七、Apache 配置文件示例:恢复真实 IP
Apache 推荐使用 mod_remoteip 模块。
1. 启用模块
Ubuntu / Debian:
a2enmod remoteip
systemctl restart apache2
CentOS / Rocky Linux 通常模块已经包含,确认配置即可。
2. 添加 Cloudflare RemoteIP 配置
创建文件:
/etc/apache2/conf-available/cloudflare-remoteip.conf
内容如下:
RemoteIPHeader CF-Connecting-IP
RemoteIPTrustedProxy 173.245.48.0/20
RemoteIPTrustedProxy 103.21.244.0/22
RemoteIPTrustedProxy 103.22.200.0/22
RemoteIPTrustedProxy 103.31.4.0/22
RemoteIPTrustedProxy 141.101.64.0/18
RemoteIPTrustedProxy 108.162.192.0/18
RemoteIPTrustedProxy 190.93.240.0/20
RemoteIPTrustedProxy 188.114.96.0/20
RemoteIPTrustedProxy 197.234.240.0/22
RemoteIPTrustedProxy 198.41.128.0/17
RemoteIPTrustedProxy 162.158.0.0/15
RemoteIPTrustedProxy 104.16.0.0/13
RemoteIPTrustedProxy 104.24.0.0/14
RemoteIPTrustedProxy 172.64.0.0/13
RemoteIPTrustedProxy 131.0.72.0/22
RemoteIPTrustedProxy 2400:cb00::/32
RemoteIPTrustedProxy 2606:4700::/32
RemoteIPTrustedProxy 2803:f800::/32
RemoteIPTrustedProxy 2405:b500::/32
RemoteIPTrustedProxy 2405:8100::/32
RemoteIPTrustedProxy 2a06:98c0::/29
RemoteIPTrustedProxy 2c0f:f248::/32
启用配置:
a2enconf cloudflare-remoteip
systemctl reload apache2
八、防火墙配置:只允许 Cloudflare 访问源站
如果你已经确认所有 Web 流量都通过 Cloudflare 访问,可以限制服务器 80/443 端口只接受 Cloudflare IP。
注意:操作前请确保你仍然可以通过 SSH 登录服务器,避免把自己锁在外面。
1. UFW 配置示例
先允许 SSH:
ufw allow from 你的管理IP to any port 22 proto tcp
允许 Cloudflare IPv4 访问 80/443:
ufw allow from 173.245.48.0/20 to any port 80,443 proto tcp
ufw allow from 103.21.244.0/22 to any port 80,443 proto tcp
ufw allow from 103.22.200.0/22 to any port 80,443 proto tcp
ufw allow from 103.31.4.0/22 to any port 80,443 proto tcp
ufw allow from 141.101.64.0/18 to any port 80,443 proto tcp
ufw allow from 108.162.192.0/18 to any port 80,443 proto tcp
ufw allow from 190.93.240.0/20 to any port 80,443 proto tcp
ufw allow from 188.114.96.0/20 to any port 80,443 proto tcp
ufw allow from 197.234.240.0/22 to any port 80,443 proto tcp
ufw allow from 198.41.128.0/17 to any port 80,443 proto tcp
ufw allow from 162.158.0.0/15 to any port 80,443 proto tcp
ufw allow from 104.16.0.0/13 to any port 80,443 proto tcp
ufw allow from 104.24.0.0/14 to any port 80,443 proto tcp
ufw allow from 172.64.0.0/13 to any port 80,443 proto tcp
ufw allow from 131.0.72.0/22 to any port 80,443 proto tcp
默认拒绝其他访问:
ufw default deny incoming
ufw default allow outgoing
ufw enable
ufw status verbose
2. iptables 配置示例
iptables -A INPUT -p tcp -s 173.245.48.0/20 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 103.21.244.0/22 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 103.22.200.0/22 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 103.31.4.0/22 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 141.101.64.0/18 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 108.162.192.0/18 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 190.93.240.0/20 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 188.114.96.0/20 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 197.234.240.0/22 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 198.41.128.0/17 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 162.158.0.0/15 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 104.16.0.0/13 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 104.24.0.0/14 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 172.64.0.0/13 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 131.0.72.0/22 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j DROP
九、Cloudflare 推荐配置
1. SSL/TLS 推荐配置
在 Cloudflare 后台建议设置:
SSL/TLS encryption mode: Full (strict)
Always Use HTTPS: On
Automatic HTTPS Rewrites: On
Minimum TLS Version: TLS 1.2
TLS 1.3: On
源站建议配置:
- 安装有效 SSL 证书;
- 禁用过时协议;
- 开启 HTTP 到 HTTPS 跳转;
- 使用 HSTS 前先确认全站 HTTPS 正常。
2. 缓存推荐配置
静态资源建议:
Browser Cache TTL: 1 month
Caching Level: Standard
动态页面建议:
Cache-Control: no-cache 或 no-store
后台路径建议绕过缓存,例如:
/wp-admin/*
/admin/*
/user/*
/api/*
3. 安全规则推荐
可以针对后台登录路径添加规则,例如 WordPress:
If URI Path equals /wp-login.php
Then Managed Challenge
或者限制后台地区访问:
If URI Path starts with /admin
And Country not equals CN
Then Block
如果你的网站有 API,可以对 API 设置速率限制,避免被刷接口。
十、WordPress 使用 Cloudflare 的注意事项
WordPress 接入 Cloudflare 后,常见问题包括:
- 后台登录 IP 显示 Cloudflare IP;
- HTTPS 识别异常;
- 评论 IP 不真实;
- 页面缓存导致登录状态错乱;
- WooCommerce 购物车缓存异常;
- 插件与 Cloudflare 缓存冲突。
建议配置:
- 服务器层恢复真实 IP;
- Cloudflare SSL 使用 Full Strict;
- 后台、登录、购物车、结账页绕过缓存;
- 静态资源长期缓存;
- 使用官方 Cloudflare 插件辅助清缓存;
- 不要对所有 HTML 页面盲目开启 Cache Everything。
WordPress 后台路径可设置绕过缓存:
/wp-admin/*
/wp-login.php
/cart/*
/checkout/*
/my-account/*
十一、Laravel / Node.js / Django 后端注意事项
如果你的应用运行在反向代理后面,除了 Nginx 恢复真实 IP 外,框架本身也要信任代理。
Laravel
Laravel 可在 TrustProxies 中配置代理信任。常见做法:
protected $proxies = '*';
protected $headers = \Illuminate\Http\Request::HEADER_X_FORWARDED_FOR |
\Illuminate\Http\Request::HEADER_X_FORWARDED_HOST |
\Illuminate\Http\Request::HEADER_X_FORWARDED_PORT |
\Illuminate\Http\Request::HEADER_X_FORWARDED_PROTO;
更安全的做法是只信任 Cloudflare IP 段。
Node.js Express
const express = require('express');
const app = express();
app.set('trust proxy', true);
app.get('/', (req, res) => {
res.send(`Your IP is ${req.ip}`);
});
app.listen(3000);
如果你希望更严格,应只信任 Cloudflare 代理地址。
Django
在 settings.py 中配置:
USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
同时确保 Nginx 正确传递请求头。
十二、Docker / 反向代理环境中的配置
如果网站运行在 Docker 中,Cloudflare 请求通常先到宿主机 Nginx,再转发到容器。此时要确保宿主机 Nginx 已恢复真实 IP,并将真实 IP 传给容器。
示例:
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header Real-IP $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header CF-Connecting-IP $http_cf_connecting_ip;
}
如果 Nginx 已经通过 real_ip_header CF-Connecting-IP 将 $remote_addr 改为真实用户 IP,那么后端容器通过 X-Real-IP 或 X-Forwarded-For 获取到的就是正确 IP。
十三、自动更新 Cloudflare IP 的脚本
Cloudflare IP 段可能会更新,虽然频率不高,但建议定期检查。可以使用脚本自动生成 Nginx 配置。
创建脚本:
nano /usr/local/bin/update-cloudflare-realip.sh
内容:
#!/bin/bash
CONF="/etc/nginx/conf.d/cloudflare-real-ip.conf"
echo "# Auto generated Cloudflare real IP config" > $CONF
echo "# Updated at: $(date)" >> $CONF
curl -s https://www.cloudflare.com/ips-v4 | while read ip; do
echo "set_real_ip_from $ip;" >> $CONF
done
curl -s https://www.cloudflare.com/ips-v6 | while read ip; do
echo "set_real_ip_from $ip;" >> $CONF
done
cat >> $CONF <
赋予执行权限:
chmod +x /usr/local/bin/update-cloudflare-realip.sh
添加定时任务:
crontab -e
加入:
0 3 * * 1 /usr/local/bin/update-cloudflare-realip.sh >/dev/null 2>&1
表示每周一凌晨 3 点自动更新。
十四、接入 Cloudflare 后的检查清单
接入完成后,建议逐项检查:
- [ ] DNS 记录是否为橙色云朵代理模式;
- [ ] Cloudflare SSL 是否设置为 Full Strict;
- [ ] 源站是否安装有效 HTTPS 证书;
- [ ] Nginx / Apache 是否恢复真实 IP;
- [ ] 访问日志是否显示真实用户 IP;
- [ ] 80/443 是否只允许 Cloudflare IP 访问;
- [ ] 后台路径是否绕过缓存;
- [ ] API 是否未被错误缓存;
- [ ] 静态资源是否设置合理缓存时间;
- [ ] 是否存在泄露源站 IP 的子域名;
- [ ] SSH、数据库、Redis 是否未暴露公网;
- [ ] Cloudflare 安全规则是否存在误拦截;
- [ ] 是否配置监控和日志告警。
十五、总结
Cloudflare 对服务器的影响非常明显。它不仅改变了用户访问网站的网络链路,也会影响服务器日志、真实 IP 获取、SSL/TLS、缓存、防火墙、安全策略和应用程序行为。正确使用 Cloudflare,可以显著提升网站速度、降低服务器负载、隐藏源站 IP,并增强网站抗攻击能力。
但如果配置不当,也可能带来真实 IP 获取错误、HTTPS 循环跳转、缓存异常、接口超时、误拦截等问题。因此,接入 Cloudflare 后不能只在 DNS 中点亮橙色云朵,还需要同步完成服务器侧配置。
最关键的几项配置是:
- 使用
Full (strict)SSL 模式; - 在 Nginx 或 Apache 中恢复真实访客 IP;
- 防火墙只允许 Cloudflare IP 访问 80/443;
- 动态页面、后台、API 谨慎缓存;
- 定期检查 Cloudflare IP 段和安全规则;
- 避免源站 IP 通过历史记录、子域名或其他服务泄露。
总体来说,Cloudflare 对服务器既是保护层,也是代理层。它能让服务器更安全、更轻量、更稳定,但前提是你必须理解它对访问链路和服务器配置造成的变化,并根据实际业务进行合理配置。