结论先行:把域名 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;源站端口对外不可达,加速与隐藏同时生效。
