外观
DNS 与代理模式
灰云和橙云
Cloudflare 的每条 DNS 记录有个云朵图标:
- 灰云(DNS only):只做解析,访问直连你的服务器 IP
- 橙云(Proxied):解析到 CF 的 IP,流量经过 CF 边缘再回源
橙云带来 CDN、隐藏源站 IP、免费证书、WAF;代价是很多东西要跟着改。
橙云只代理特定端口
不在列表里的端口开橙云直接打不通:
- HTTP:80、8080、8880、2052、2082、2086、2095
- HTTPS:443、2053、2083、2087、2096、8443
跑在随机端口上的服务(面板之类)不能直接套橙云,要么换端口,要么走 Tunnel。
套橙云之后要改的
| 项目 | 设置 | 不改会怎样 |
|---|---|---|
| SSL/TLS 模式 | Full (Strict) | Flexible 和源站的 80→443 跳转形成无限重定向 |
| Bot Fight Mode | 关闭 | 拦截非浏览器 UA,各种客户端 App、API 调用失败,浏览器却正常 |
| Browser Integrity Check | 建议关闭 | 同上 |
| Rocket Loader | 关闭 | 改写页面 JS,可能弄坏前端 |
| Auto Minify | 关闭 | 可能改坏返回内容 |
| Brotli | 开启 | 边缘再压一层 |
Bot Fight Mode 在 域名 → Security → Settings,筛 "Bot traffic"。
要保留 Bot 防护但放过某个子域名,用 WAF 自定义规则:表达式 (http.host eq "api.example.com"),动作 Skip,勾选跳过 Bot 检测。
源站看到的 IP 全是 CF 的
橙云之后源站日志里的客户端 IP 全是 CF 边缘节点。要拿真实 IP 得让反代信任 CF 的 IP 段,从 X-Forwarded-For 里取。CF 的 IP 段在 https://www.cloudflare.com/ips/,会变,定期核对。
nginx:
nginx
set_real_ip_from 173.245.48.0/20;
# ... 其它段
real_ip_header CF-Connecting-IP;签证书失败
橙云会挡住 HTTP-01 验证。临时切灰云签完切回,或者改用 DNS-01。
控制台点不动
CF 控制台对老浏览器支持很差,Firefox ESR 128 上会出现按钮点了没反应。换 Chrome。