Skip to content

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。

个人笔记,写给未来忘事的自己。