【CF 防护 02】Cloudflare + VPS:免费 CDN 加速、隐藏源站与防攻击

源站 IP 一暴露就被扫端口、被 CC/DDOS 打?用 Cloudflare 免费层给 VPS 套 CDN:隐藏真实 IP、边缘缓存加速静态、缓解攻击,并讲清免费额度限制与哪些场景不适合套。

你有没有过这种经历:刚在 LET 上晒了新买的便宜 VPS,没两天服务器就莫名其妙 CPU 飙到 100%,或者 /var/log 里全是境外 IP 的暴力破解,甚至直接被一波流量打瘫、商家一封邮件告诉你"你的 IP 已被黑洞"。问题往往不在你的程序写得多烂,而在于一件事——你的源站真实 IP 暴露了。只要别人知道你的服务器 IP,就能对着这个地址无脑打、无脑扫;而一旦给 VPS 套上一层 Cloudflare,把真实 IP 藏起来,前面挡着人家的是 Cloudflare 遍布全球的机房,很多麻烦就消失了。这篇文章就手把手讲清楚:CDN 到底怎么帮你加速、怎么接、免费层有哪些坑、以及什么情况其实不适合套。

延伸阅读

更多相关攻略推荐:Ollama AI系列(2):VPS上的AI推理与API应用Ollama AI系列(2):VPS上的AI推理与API应用【CPU选型 01】搭载 AMD Ryzen 9950X 的 VPSARM / Ampere 席卷 VPS:性价比真香还是兼容陷阱?Ollama AI系列(2):VPS上的AI推理与API应用

一、CDN 到底在干啥?边缘缓存与回源

先说人话版。CDN(内容分发网络)本质是一堆分布在世界各地、离用户很近的"缓存副本站"。你原来的 VPS 叫源站(Origin),Cloudflare 在全球 335+ 个城市有数据中心,这些节点叫边缘节点(Edge)。用户访问你的网站时,请求先打到离他最近的边缘节点:

  • 缓存命中:如果这份内容(比如一张图、一段 CSS)边缘节点已经有了,直接就返给用户,根本不碰你的 VPS,延迟低、还省你带宽。
  • 缓存未命中:边缘节点没有这份内容,它才转身去你的源站把数据"拉"回来(这步叫回源 / Origin Pull),存一份在自己这儿,再返给用户。之后同一个地区的其他访客就都能直接吃缓存了。

Cloudflare 用的是 Anycast 技术:全世界的节点共用同一段 IP,用户的请求会被路由到物理上最近的那个。官方说法是他们的网络在 95% 全球人口 50 毫秒以内可达。所以套了 CDN,相当于把内容"挪到了离用户更近的地方"——爱因斯坦早就说过,光速是通信的硬上限,到那一步唯一能做的就是把内容放近点。

除了延迟,缓存还帮你省钱。每一条在边缘被响应的请求,你的源站就少扛一条,源站带宽直接往下掉。Cloudflare 默认还开着 GZip / Brotli 压缩,传输文件能缩水 50%–70%——这又是一笔悄悄的速度与成本双赢。

二、怎么把 VPS 接进 Cloudflare:改 NS 还是仅代理

接 Cloudflare 有两条路:

  • 改 NS(Nameserver)托管:把域名的 NS 从注册商改成 Cloudflare 提供的那对,域名解析全交给 Cloudflare。好处是 DNS、CDN、SSL、防火墙一把梭,最省心;缺点是你得把 DNS 全迁过去。
  • 仅代理(CNAME 接入):某些场景你只想给某个子域套代理,可以用 CNAME Flattening 让那条记录走代理、NS 仍留在原处。对个人站长来说,最顺手还是直接改 NS。

接好之后,DNS 记录里每条记录右侧有个小云朵图标:橙色(Orange-cloud / 代理开)表示流量走 Cloudflare,会缓存、会挡攻击、真实 IP 被藏;灰色(Gray-cloud / 仅 DNS)表示 Cloudflare 只当个 DNS 解析、流量直连你的源站,等于没套。绝大多数网页业务,A/AAAA 记录请保持橙色云朵。注意:MX(邮件)记录不能被代理,永远灰色,邮件不走 CDN。

三、缓存规则怎么设:Cache Rules 与 Page Rules

Cloudflare 默认就会缓存静态后缀(图片、CSS、JS、字体等)。想更精细控制,靠两条:

  • Cache Rules(缓存规则):新版主力。可以按主机名、路径、文件类型设置"缓存一切 / 绕过缓存 / 按源站头"等,还能单独设边缘缓存 TTL。免费层有少量条数额度(够一般站点用),高级玩法(Tiered Cache 分层缓存、Cache Reserve 大缓存)是付费功能。
  • Page Rules(页面规则):老工具,免费层给 3 条。能设"始终缓存""边缘缓存 TTL""转发/重定向"等。新站直接用 Cache Rules 更香,Page Rules 慢慢在退场。

两个容易混的概念:浏览器缓存 TTL是告诉访客浏览器"这份东西你本地存多久";边缘缓存 TTL是 Cloudflare 边缘节点存多久。动态页面(比如带登录态的 /dashboard)千万别设成缓存,否则别人能看到你的私人内容——敏感路径记得用规则绕过缓存(Bypass)。改完规则记得去仪表盘点"清除缓存 / Purge Everything"让设置马上生效。

四、隐藏源站 IP 才是真保命

套了橙色云朵 ≠ 真的安全。Cloudflare 只是"挡在前面",如果你的 VPS 仍然对任何 IP 开放 80/443,攻击者完全可以绕过 CDN 直接打你的真实 IP——只要在之前扫到过,或者从证书透明度日志(crt.sh)、DNS 历史里翻到旧解析,源站就裸奔了。真隐藏要三步走:

  1. 换掉被污染的 IP:如果老 IP 已经泄露,迁移后顺手在商家后台换一个全新 IP(很多商家免费或低价提供),旧 IP 直接弃用。
  2. 防火墙只放行 Cloudflare:在 VPS 的 iptables / ufw 里,把 80 和 443 只允许 Cloudflare 公布的 IP 段(cloudflare.com/ips 里有完整列表,IPv4 + IPv6),其余一律拒绝;同时给自己留一个管理端口(如 SSH)只允许你自家 IP。
  3. 别在别处泄露:邮件服务、第三方监控、GitHub Actions、webhook 回调里如果写死了旧 IP,赶紧改。只要有一处直连,隐藏就破功。

做到这步,外界只能打到 Cloudflare,源站成了"暗盒"。再配合 Cloudflare 的 Under Attack Mode(攻击模式),遇到异常流量会先给访客弹一个浏览器质询,真人能过、脚本 bot 被挡。

五、免费层到底有哪些限制

  • 请求数:CDN 本身对免费层是"不限量(unmetered)"的,不用担心流量超标被收钱;但你如果顺手用 Workers,免费额度是每日本地请求 10 万次,超了才计费。
  • 规则数:Cache Rules 免费层条数有限,Page Rules 仅 3 条,WAF 自定义规则也少;够小站,复杂业务得上 Pro。
  • 端口限制(重点):免费层只能代理固定的一批端口。HTTP 支持 80、8080、8880、2052、2082、2086、2095;HTTPS 支持 443、2053、2083、2087、2096、8443。其中那堆 2xxx/8xxx 备用端口默认不缓存。如果你的服务跑在 22(SSH)、3306(MySQL)、非标端口上,橙色云朵根本代理不了,只能灰云直连,或者上 Spectrum(仅企业版,支持全端口 TCP/UDP)。
  • 其他:图像压缩 Polish、Argo 智能路由、中国网络节点、WAF 托管规则深度,都是付费增强。免费层的 WAF 是"基础广覆盖",挡大面攻击够用,定制化弱。

六、和 VPS 配合的坑

  • SSL/TLS 模式:推荐设成 Full (Strict),并且源站自己也装一张有效证书(用 Let's Encrypt 或 Cloudflare Origin CA)。千万别选 Flexible,否则 Cloudflare 到你的源站是明文 http,中间人能窃听,还容易陷入"无限重定向"。
  • 回源与端口:你的 Web 服务监听什么端口,回源就得对应。标准 443 最稳;想用别的端口,得在 DNS 记录里写 域名:端口 形式(如 xxx.example.com 指向 2053),且记住备用端口不缓存。
  • 动态内容别乱缓存:博客、官网这类"大部分静态"的站点收益最大;纯动态 API、实时仪表盘,缓存帮不上忙,反而要小心误缓存泄露数据。
  • 真实访客 IP:套了 CDN 后,源站看到的连接来源全是 Cloudflare 的 IP。要拿到真实访客 IP,得在 Nginx/Apache 里开启 Real IP 模块、信任 Cloudflare 的 IP 段,否则统计和封禁都会失效。

七、哪些场景不适合套 Cloudflare

  • 高度动态、零静态:如果你的业务是纯实时 API、长连接 WebSocket 为主、几乎没可缓存内容,CDN 加速效果有限,该打还是打;这种更适合上源站高防或架构优化。
  • 必须用非标端口:游戏服务器、SSH 隧道、数据库直连、自定义端口服务,免费层代理不了,灰云又等于裸奔,除非你只接受直连(并做好源站防火墙)。
  • 合规/数据驻留要求:某些业务要求数据不出境、或必须直连审计,经过 CDN 边缘节点可能不满足合规;这种要评估 Cloudflare 的 China Network / 数据驻留选项(多为付费且复杂)。
  • 源站本就需要被直连:比如你用 VPS 当 VPN/代理节点、或跑 P2P、或对等连接,流量根本不是 HTTP,CDN 管不到,套了反而多一层绕路。

一句话总结:Cloudflare 免费层对"普通网站型 VPS"是性价比神器——加速、隐藏 IP、挡大部分攻击,零成本;但它不是万能盾,动态业务、非标端口、合规直连这些场景,要么上付费能力,要么换思路。先用起来把源站 IP 藏好,你已经解决 80% 的"被盯上"问题。

💡 延伸阅读:关于架构与基础设施的更多深潜指南,请前往 VPS 主题导读中心 (Hub) 获取全盘策略。