Cloudflare怎么限速?单IP→全站/规则3种核心方案 附实操+CF帧数限制技巧
本文聚焦Cloudflare多维度限速实操核心,涵盖三大主流方案及“限制帧数”的适配思路,三大方案包括:单IP精准限速,用速率限制规则绑定源IP,设置请求/带宽阈值与封禁、验证等触发动作;全站通用覆盖,创建无特定路径的CDN带宽限制或防火墙速率规则;规则定制化控制,基于路径、User-Agent等构建差异化规则,适配重点资源与普通访问需求,CF无直接帧数功能,可通过精细化限速单IP拉取视频带宽间接调控。
很多人对Cloudflare的默认认知是「加速+防护」,但实际运营中,合理限速反而能优化体验、节约带宽、防刷资源——比如免费版图片站不想被爬虫拖垮下载,付费API站控制用户调用次数或单文件限速,甚至临时限特定恶意IP的访问速度。
这篇文章梳理了Cloudflare官网支持的、操作门槛从低到高的3种限速方案,附保姆级步骤和注意事项,新手也能快速上手。
方案1:免费版必看!用「防火墙规则」给特定对象/场景限速(基础防刷)
Cloudflare免费版、Pro版、Business版都能用防火墙规则里的「Rate Limiting」模块,属于最简单直接的针对性限速——可以限单IP、限国家地区、限特定路径/文件后缀、限请求 *** (只防刷POST/GET不影响HEAD预检)。
限速逻辑
免费版最多设置5条规则,每个规则有两个核心参数:
- 触发阈值:1分钟内访问>100次”
- 惩罚措施:CF官网叫「Challenge」或「Block」?不对,免费版Business版以下限速惩罚只有「Challenge CAPTCHA」「 *** Challenge」「Managed Challenge」「Wait Room(需要Business/Enterprise)」「Block IP(Business/Enterprise)」——哦对,免费版本质不是直接「降速访问」,是强制拦截恶意高频访问入口,间接让正常流量更顺畅,间接达到「全站友好型限速」的效果;如果是Pro/Business版,Business版以下有没有其他间接?或者后面的Workers方案可以直接降速。
操作步骤
- 登录Cloudflare官网,进入要限速的域名面板
- 左侧菜单栏选「安全」→「WAF」→「防火墙规则」
- 点击「创建规则」,填写规则名称(防图片爬虫刷取”)
- 之一步:筛选触发对象(Field下拉框选条件,Value填内容)
- 例1:限全站所有访问IP → 筛选条件留空(默认匹配所有)
- 例2:只限
.jpg/.png/.gif图片下载 → Field选「URI路径」,操作符选「包含」,Value填.jpg,.png,.gif - 例3:只限API路径POST请求 → Field选「URI路径」包含
/api/,再加「请求 *** 」是POST
- 第二步:设置惩罚触发
- 下方找到「Rate Limiting」模块(免费版是蓝色小字展开的)
- 参数设置:
- 请求窗口:建议60秒-300秒(1-5分钟)
- 请求数:根据业务来——免费博客单IP5分钟100次足够,小电商API单IP1分钟50次合理
- 惩罚时长:建议300秒-3600秒(5分钟-1小时),太短没用,太长可能误伤
- 惩罚方式:新手选「Managed Challenge」(CF智能判断真人/爬虫,真人不用输验证码),老站用户多可选「 *** Challenge」(更隐蔽但对旧浏览器不友好)
- 点击「部署防火墙规则」生效
方案2:Workers/KV方案!给全站/单路径直接降速访问(精细控制)
如果需要真正的“降速传输”(比如100KB/s的单文件下载,200KB/s的全站非核心页面),或者免费版想突破5条规则、Pro/Business版想省Cloudflare Workers的付费门槛?(免费版每天有10万次请求额度,足够中小站用),这是最推荐的方案。
限速逻辑
用Workers写一段JavaScript代码,拦截用户的HTTP请求→根据规则筛选要限速的对象→调用CF的Response.body.pipeThrough()接口,给传输数据加“节流阀”。
保姆级代码+操作步骤
步骤1:创建Workers脚本
- 登录Cloudflare,进入域名面板→左侧「Workers和Pages」→右上角「创建应用程序」→「创建Worker」
- 删掉默认的Hello World代码,粘贴下方通用图片限速+全站可选限速的代码(代码里有中文注释,可以根据需要改参数):
// 自定义限速参数(单位:字节/秒,1KB=1024字节) const GLOBAL_SPEED_LIMIT = 0; // 全站限速:0=不限,比如204800=200KB/s const IMAGE_SPEED_LIMIT = 102400; // 图片专属限速:102400=100KB/s const IMAGE_EXTENSIONS = ['.jpg', '.jpeg', '.png', '.gif', '.webp', '.svg']; // 要限速的图片后缀
// 节流函数:给数据加传输限制 function createThrottle(limitBytesPerSec) { if (limitBytesPerSec <= 0) { return new TransformStream(); // 不限速直接返回原数据 } let lastTime = Date.now(); let bytesSent = 0; return new TransformStream({ transform(chunk, controller) { bytesSent += chunk.length; const now = Date.now(); const elapsed = now - lastTime; if (elapsed > 0) { // 计算应该延迟的时间 const bytesToSend = (limitBytesPerSec elapsed) / 1000; if (bytesSent > bytesToSend) { // 超过限速就暂停 const delayMs = (bytesSent - bytesToSend) 1000 / limitBytesPerSec; return new Promise(resolve => { setTimeout(() => { controller.enqueue(chunk); lastTime = Date.now(); bytesSent = bytesSent - bytesToSend; resolve(); }, delayMs); }); } } // 没超过限速直接发送 controller.enqueue(chunk); if (elapsed >= 1000) { // 每1秒重置一次基准时间和已发送字节(避免误差累积) lastTime = now; bytesSent = 0; } } }); }
export default { async fetch(request, env, ctx) { // 1. 先获取原请求的响应 let response = await fetch(request); // 2. 检查是否需要限速(必须是文本/二进制以外的流式响应?不,所有响应都能试) const url = new URL(request.url); const isImage = IMAGE_EXTENSIONS.some(ext => url.pathname.toLowerCase().endsWith(ext)); const speedLimit = isImage ? IMAGE_SPEED_LIMIT : GLOBAL_SPEED_LIMIT; // 3. 如果需要限速,就把原响应的body通过节流器传输 if (speedLimit > 0) { const throttle = createThrottle(speedLimit); response = new Response(response.body.pipeThrough(throttle), response); } return response; }, };
3. 点击右上角「保存并部署」→给Worker起个名字(image-limiter`)→点击「部署」
#### 步骤2:把Worker绑定到你的域名
1. 部署成功后,回到「Workers和Pages」面板→点击刚创建的Worker→左侧「设置」→「触发器」→「添加自定义域名」
2. 输入你的完整域名(www.yourdomain.com`或`img.yourdomain.com`)→点击「添加自定义域名」
3. 等待1-5分钟生效(CF会自动帮你添加DNS解析,不用自己手动改)
---
## 方案3:Business/Enterprise专属!用「Origin Rules/Page Rules/Argo Smart Routing补充」
如果是付费的Business/Enterprise版,除了上面的方案,还有更稳定、更官方的直接降速工具:
### 1. Page Rules(即将被Origin Rules替代,但目前还能用)
- 位置:域名面板→左侧「规则」→「Page Rules」
- 限速设置:筛选对象(同方案1)→然后添加「设置」→找到「Speed Limiting」→设置单IP的峰值带宽/请求速率
- 注意:Business版最多20条Page Rules,Enterprise版无限
### 2. Origin Rules(官方推荐替代Page Rules的规则集)
- 位置:域名面板→左侧「规则」→「Origin Rules」
- 限速设置:筛选对象→添加「修改响应头」?不对,Origin Rules目前主要限源站返回的状态码、缓存键、请求头,但可以结合「WAF Rate Limiting Pro/Business版」的「限制源站带宽」功能一起用,更精准
---
## 小彩蛋:如果搜错了「CF=CrossFire(穿越火线)」怎么限速?
CrossFire官方是**不支持玩家给自己的账号/客户端限速**的,也不建议第三方限速软件(容易被误封)——如果是家长想给孩子玩CF的电脑限速,可以用**路由器的QoS功能**(大部分家用路由器都有,限孩子的设备MAC地址的下载/上传带宽)。
---
##
| 方案 | 适用版本 | 限速类型 | 操作难度 |
|------|----------|----------|----------|
| 防火墙规则Rate Limiting | 免费版以上 | 间接防刷入口 | 低 |
| Workers/KV脚本 | 免费版以上 | 直接降速传输 | 中(***粘贴改参数即可) |
| Page Rules/Origin Rules | Business/Enterprise | 直接降速+源站带宽优化 | 低-中 |
最后提醒:限速前一定要测试!用`curl -o /dev/null -w %{speed_download} https://yourdomain.com/image.jpg`(Linux/macOS终端)或「Speedtest by Ookla网页版单文件测速」检查限速是否生效,避免误伤正常用户。 本文地址:https://www.gengreen.cn/34702.html
转载声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。
- 最近发表
-
- PUBG枪声里,你是我的移动掩体,也是最暖的快乐2026-05-30
- Steam换新手机怕登不上?超保姆令牌迁移3步走+硬核避坑5提醒2026-05-30
- CSGO冷门苏打套路,1瓶骗预瞄转点,专杀信息差,路人局偷爽!2026-05-30
- LOL无限视距争议+已禁用!现版本官方替代方案与视距设置全解2026-05-30
- 单排卡瓶颈?野区二选一双通杀!整活躺赢局都稳,LOL玩剑圣还是小丑爽?2026-05-30
- 指尖按下和平精英开火键,惊觉它还对味、还好玩吗?2026-05-30
- 别再说PUBG三个极高锁帧是信仰!我锁的是3块最核心刚枪爽度2026-05-30
- LOL打野必中4个砸键盘 *** 破防瞬间!2026-05-30
- 雷劫逆锋的真相!逆战藏在雷切背后的两把雷神杀器2026-05-30
- LOL端游皎月女神攻略,双位称霸中野 月刃连招横扫峡谷2026-05-30
- 标签列表
