IT

Cloudflare CDN 加速网站并隐藏真实 IP 的配置

AI智能摘要

想让网站更快又不想暴露源站 IP?这篇把 Cloudflare 的实操顺序讲清楚:NS 接入后保持橙云代理,源站防火墙只放行 Cloudflare IP 段,SSL 选 Full (strict),再用 WAF 规则加固。照着做,直接访问源站 IP 会超时,域名访问正常,加速和隐藏一步到位。

结论先行:把域名 NS 交给 Cloudflare,开启代理(橙云),源站只放行 Cloudflare IP 段,再配合 Full (strict) SSL 与防火墙规则,就能同时获得 CDN 加速和真实 IP 隐藏。下面按实操顺序拆解。

一、接入 Cloudflare 并开启代理

在 Cloudflare 添加站点后,到域名注册商处把 NS 改为 Cloudflare 分配的两个地址。等待生效后,进入 DNS 面板,确保网站记录(A/AAAA/CNAME)的代理状态为橙色云朵。橙色云朵代表流量经过 Cloudflare,灰色则直连源站,隐藏 IP 的前提就是保持橙色。

注意:源站 IP 一旦在历史 DNS 记录、邮件头或第三方扫描中泄露,隐藏效果会打折扣。建议源站使用独立 IP,并避免在源站直接发信。

二、源站只放行 Cloudflare IP 段

这是隐藏真实 IP 的关键一步。用防火墙只允许 Cloudflare 官方 IP 段访问 80/443,其他来源一律拒绝。以 iptables 为例(IP 段以官方列表为准,需定期更新):

# 允许 Cloudflare IPv4 段访问 80/443
for ip in $(curl -s https://www.cloudflare.com/ips-v4); do
  iptables -A INPUT -p tcp -s $ip --dport 80 -j ACCEPT
  iptables -A INPUT -p tcp -s $ip --dport 443 -j ACCEPT
done
# 拒绝其他来源
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 443 -j DROP

如果使用 Nginx,也可在 server 块里用 allow/deny 实现同样效果。放行后,直接访问源站 IP 会超时,而通过域名访问正常。

三、SSL 模式设为 Full (strict)

在 SSL/TLS 设置中选 Full (strict),要求源站证书有效且与域名匹配。这样 Cloudflare 到源站全程加密,避免 Flexible 模式下的回源明文和重定向循环。源站可用 Let’s Encrypt 免费证书,或用 Cloudflare Origin CA 证书(仅 Cloudflare 回源信任)。

同时开启 Always Use HTTPS 和 Automatic HTTPS Rewrites,减少混合内容问题。

四、用防火墙规则加固

在 Security → WAF 中添加规则:对登录页、后台路径启用 Managed Challenge;对已知恶意 UA 或高频请求做 Rate Limiting。还可设置一条规则,拒绝非 Cloudflare IP 访问源站(若源站防火墙不便配置)。

  • 开启 Bot Fight Mode 拦截简单爬虫;
  • 对 /wp-admin、/login 等路径加访问挑战;
  • 定期检查 DNS 历史泄露,必要时更换源站 IP。

完成以上四步后,用在线工具查询域名解析,只会看到 Cloudflare 的 IP;源站端口对外不可达,加速与隐藏同时生效。

发表评论