本文转载自 CMLiussss Blog,作者:杨幂的脚,原文链接:https://blog.cmliussss.com/p/BPSUB/

本文采用 CC BY-NC-SA 4.0 许可协议转载,原文内容未作修改。

🛠️ 部署 Cloudflare Snippets 节点

⚠️ 免责声明

Snippets 目前仍处于灰度 / 新功能阶段,免费额度只向部分账号开放,不排除未来会因为部署该服务导致封禁账号或关闭你账号的Snippets功能。请务必谨慎部署,更不要在生产环境中部署代理服务!!!

当前相对更稳妥的方式是:使用全新注册的小号通过 CF Pages 部署方式部署。单账号每日请求上限 10 万次,不够就再注册(无额外成本)。

🧪 部署方式优缺点速览

这期图文教程为大家准备了三种部署方法,以应对你当前的账号情况:

1、CF Snippets 部署方式 — 自有付费域名 优点:功能最全,支持自定义域名并可使用全部 Snippets 功能 缺点:必须使用并在账号中开启 Snippets 的付费域名,免费域名不支持

2、CF Snippets 部署方式 — 使用 cloudns 域名 优点:免费获取域名,同样可使用完整功能,支持自定义域名 缺点:需配置双向解析,相比正

常付费域名有更多且更繁琐的设置步骤

🔍 检测是否具备 Snippets 功能

🤖 自动检测

如果我们的域名很多,可以使用下面的自动检测脚本进行批量检测。

首先我们先登录 Cloudflare,查看一下我们的域名是否具备Snippets功能。

登录账号后,点击 F12,进入浏览器的开发者模式,点击控制台,输入以下命令:

(async function main() {

const zonesUrl = (page = 1) =>

`https://dash.cloudflare.com/api/v4/zones?type=full,partial,secondary&per_page=100&page=${page}`;

async function fetchJson(url) {

const res = await fetch(url, { credentials: "include" });

if (!res.ok) throw new Error(HTTP ${res.status} ${res.statusText});

return res.json();

}

try {

const results = [];

let page = 1;

while (true) {

const zonesData = await fetchJson(zonesUrl(page));

const zones = Array.isArray(zonesData.result) ? zonesData.result : [];

if (zones.length === 0) break;

for (const zone of zones) {

const entitlementsUrl = `https://dash.cloudflare.com/api/v4/zones/${zone.id}/entitlements`;

const entData = await fetchJson(entitlementsUrl);

const entResults = Array.isArray(entData.result) ? entData.result : [];

const rule = entResults.find(r => r.feature?.key === "rulesets.snippets_rule_max");

const value = rule?.allocation?.value ?? 0;

if (value > 0) {

results.push({

zone_id: zone.id,

zone_name: zone.name,

rulesets_snippets_rule_max: value

});

}

}

const info = zonesData.result_info || {};

if (!info.page || info.page >= (info.total_pages || info.page)) break;

page++;

}

console.log(results);

} catch (err) {

console.error("请求失败:", err);

}

})();

检测代码来源:https://www.nodeseek.com/post-464626-1

如果您看到如下内容,恭喜你!说明当前账号下有域名开启Snippets功能。

[

{"zone_id":"a7f4c9e12b3d4f6a9c0e12345678abcd","zone_name":"cm.google.com","rulesets_snippets_rule_max":5},

{"zone_id":"d41e2f9b7c8a0b3c4d5e6f7890ab12cd","zone_name":"cmliu.google.com","rulesets_snippets_rule_max":5},

{"zone_id":"9b8a7c6d5e4f3a2b1c0d9e8f7a6b5c4d","zone_name":"cmliussss.google.com","rulesets_snippets_rule_max":5},

{"zone_id":"f0e1d2c3b4a5968778695a4b3c2d1e0f","zone_name":"jinxa.me","rulesets_snippets_rule_max":5}

]

自动检测结果

如果返回的结果是一个空数组 [],很遗憾!说明当前账号下没有任何域名没有Snippets功能。

🧭 手动检测

如果域名并不多的话也可以手动查看是否具备Snippets功能。

1、登录 Cloudflare 选择一个域名进入,点击左侧的 规则(Rules) > Snippets 如下图所示,提示 欢迎使用 Snippets! 说明当前域名具备Snippets功能!

欢迎使用 Snippets

如果提示 升级计划 说明当前域名不具备Snippets功能,请继续往下看备用方案。

升级计划提示

1️⃣ CF Snippets 部署方式 — 付费域名

功能最全,支持自定义域名并可使用全部 Snippets 功能。

1、前往 BPSUB 网站,点击 CF Snippets 部署,选择你心仪的源码并点击生成UUID验证。

BPSUB 部署选择

2、生成UUID后,直接点击源码文本框即可复制源码。(注意保存UUID方便以后使用!)

源码文本框

1、前往 CF 域名管理页面,选择一个具备Snippets功能的域名,点击左侧的规则(Rules) > Snippets > 创建片段。

创建片段

2、填写片段名称,片段规则,并点击创建。

1、片段名称随意填写,例如 sp。

2、snippet.js文本框中 Ctrl + A 全选后 Ctrl + V 粘贴源码,并点击片段规则。

填写片段

3、片段规则填写如下:

1、选择自定义筛选表达式

2、字段 > 主机名

3、运算符 > 等于

4、值 > 你的自定义域名,例如 bp.jinxa.me 注意!你的域名如果是 jinxa.me,则必须多加一级域名,例如 bp.jinxa.me

5、点击完成。

片段规则填写

4、点击部署,

点击部署

5、如提示此规则可能不适用于您的流量,选择创建新代理 DNS 记录,选择以下任意一种方式:类型 A > 名称 你的自定义域名 > IPv4地址 192.0.2.1 > 创建记录和部署规则

创建代理 DNS 记录

6、自动返回上级页面,代表部署完成!

3、配置 Snippets 订阅生成器获取节点订阅链接

前往 BPSUB 网站,HOST 填写你的自定义域,例如 bp.jinxa.me。

订阅生成器 HOST 填写

拖至底部点击生成订阅即可获取节点订阅链接。

生成订阅

将节点订阅链接粘贴至梯子中直接订阅使用即可!就是这么简单!就是这么方便!!!

2️⃣ CF Snippets 部署方式 — Cloudns 域名

大多数Cloudns免费域名均获得了可使用Snippets功能,但是因为双向解析域名特殊,所以特殊配置步骤,相比正常付费域名有更多且更繁琐的设置步骤。

1、前往 BPSUB 网站,点击 CF Snippets 部署,选择你心仪的源码并点击生成UUID验证。

BPSUB 部署选择

2、生成UUID后,直接点击源码文本框即可复制源码。(注意保存UUID方便以后使用!)

源码文本框

1、前往 CF 域名管理页面,选择一个具备Snippets功能的域名,点击左侧的规则(Rules) > Snippets > 创建片段。

创建片段

2、填写片段名称,片段规则,并点击创建。

1、片段名称随意填写,例如 sp。

2、snippet.js文本框中 Ctrl + A 全选后 Ctrl + V 粘贴源码,并点击片段规则。

填写片段

3、片段规则填写如下:

1、选择自定义筛选表达式

2、字段 > 主机名

3、运算符 > 等于

4、值 > 你的自定义域名,例如 bp.cmliussss.cloudns.org 注意!你的域名如果是 cmliussss.cloudns.org,则必须多加一级域名,例如 bp.cmliussss.cloudns.org

5、点击完成。

片段规则填写 Cloudns

4、点击部署,

点击部署

5、如提示此规则可能不适用于您的流量,选择创建新代理 DNS 记录,选择以下任意一种方式:类型 CNAME > 名称 你的自定义域名 > 值 cf.090227.xyz > 创建记录和部署规则

创建代理 DNS 记录 CNAME

6、自动返回上级页面,代表部署完成!

3、前往 Cloudns,登录你的账号,进入域名管理页面,点击添加新纪录。

1、类型 CNAME > 主机 * > 指向到 cf.090227.xyz

Cloudns CNAME 记录

2、复制出你主域名的NS记录的值,例如 damien.ns.cloudflare.com 或 kim.ns.cloudflare.com。

Cloudns NS 记录

3、添加 NS 记录 > 主机 _acme-challenge > 指向到 你的NS记录值 > 保存。

Cloudns NS 记录添加

4、等待解析生效,通常几分钟到半小时不等。

4、配置 Snippets 订阅生成器获取节点订阅链接

前往 BPSUB 网站,HOST 填写你的自定义域,例如 bp.cmliussss.cloudns.org。

订阅生成器 HOST 填写 Cloudns

拖至底部点击生成订阅即可获取节点订阅链接。

生成订阅 Cloudns

将节点订阅链接粘贴至梯子中直接订阅使用即可!就是这么简单!就是这么方便!!!

🧰 BPSUB - Cloudflare Snippets 订阅生成器

BPSUB面板是一个运行在 Cloudflare Workers 上的 Snippets 订阅生成器,其主要功能就只是负责生成订阅内容,有需要的朋友可以自行部署 https://github.com/cmliu/CF-Workers-BPSUB 。

1、支持自定义优选域名、优选订阅生成器,并可生成 Snippets 订阅链接。

2、自定义 ProxyIP、Socks5(Socks5支持全局代理)、HTTP(仅支持Snippets部署模式)。

3、自适应订阅转化 Clash、SingBox订阅格式。

🧩 实用工具

CF优选域名汇总

ProxyIP可用性检测

Socks5/HTTP代理检测

Notif 💬

新人 Youtuber,需要您的支持,请务必帮我点赞、关注、打开小铃铛,十分感谢!!!