利用 Cloudflare Workers 实现个人网络配置的自动化分组管理

在移动端使用网络代理客户端(如 NekoBox)时,如果手中拥有多个独立的远程服务配置(如不同协议的 Server 配置),直接手动导入容易导致所有条目混在一起,缺乏结构化管理。

而客户端的分组管理与动态更新功能,通常需要依赖一个标准的 HTTP 订阅接口。为了避免使用不信任的第三方配置转换服务(存在服务器配置与密钥泄露风险),本文将介绍如何使用 Cloudflare Workers 配合自定义域名,搭建一个纯个人控制、数据安全传输、支持国内直连的私有配置聚合服务。


🛠️ 前置准备

  1. 个人手头拥有的服务器配置链接(如自定义协议 URL 文本)。

  2. 一个免费的 Cloudflare 账号。

  3. 一个已托管在 Cloudflare 上的域名(用于提高国内网络连接成功率)。


🚀 部署步骤

一、创建 Cloudflare Worker 实例

  1. 登录 Cloudflare 控制台

  2. 在左侧导航栏依次展开 构建 -> 计算 -> Workers 和 Pages

  3. Cloudflare Worker 实例1

  4. 点击 创建应用程序(Create application),然后选择 从 Hello World! 开始(Start with Hello World)。

  5. Cloudflare Worker 实例2

    Cloudflare Worker 实例3

  6. Worker name 中输入项目名称(如 my-config-sub),直接滑动到页面底部点击 部署(Deploy)。

  7. 4


二、编写与部署配置转换逻辑

  1. 实例创建完成后,点击右上角的 编辑代码(Edit code)进入编辑器。

  2. 5

  3. 清空编辑器中的所有默认代码,将以下标准转换脚本完整复制并粘贴进去:

  4. 6

export default {
  async fetch(request, env, ctx) {
    // 1. 将你的个人配置链接逐行填入下方数组中(注意保留单引号和末尾逗号)
    const nodes = [
      'protocol-a://example1...',
      'protocol-b://example2...',
      'protocol-c://example3...',
      'protocol-d://example4...',
      'protocol-e://example5...'
    ];

    // 2. 拼接配置并通过 UTF-8 标准转为标准 Base64 文本
    const rawText = nodes.join('\n');
    const encodedText = btoa(
      Array.from(new TextEncoder().encode(rawText))
        .map(b => String.fromCharCode(b))
        .join('')
    );

    // 3. 返回标准 HTTP 响应头
    return new Response(encodedText, {
      headers: {
        'content-type': 'text/plain; charset=utf-8',
        'cache-control': 'no-cache, no-store, must-revalidate',
        'subscription-userinfo': 'upload=0; download=0; total=1073741824000; expire=0'
      },
    });
  },
};
  1. 将代码中 nodes 数组里的示例替换为你自己的实际配置 URL。

  2. 【关键步骤】 点击右上角蓝色的 部署(Deploy)按钮以应用更改。


三、绑定自定义域名(解决网络连通性问题)

7

由于 Cloudflare 默认分配的 *.workers.dev 域名在部分网络环境下可能存在解析阻断,绑定自定义二级域名可以确保配置获取的稳定性。

  1. 进入该 Worker 的管理主页,点击顶部的 设置(Settings)选项卡。

  2. 点击左侧菜单的 触发器(Triggers)或 自定义域(Domains & Routes)。

  3. 点击 添加自定义域(Add Custom Domain)。

  4. 输入你想要分配的二级域名(例如 sub.*****.com),点击保存。Cloudflare 将自动同步 DNS 解析。

  5. 等待状态更新为 有效(Active)。


四、验证与客户端绑定

  1. 服务验证:在手机浏览器中访问你的自定义域名([https://sub.*****.com](https://sub.******.com))。若页面正常返回一长串加密字符(Base64 密文),说明服务运行正常。

  2. 客户端导入

  • 打开 Android 客户端(NekoBox)。

  • 打开 分组(Groups)界面 -> 点击 + 创建新分组。

  • 分组类型选择 **订阅 (Subscription)**。

  • 订阅 URL 中粘贴你的自定义域名([https://sub.*****.com](https://sub.*****.com))。

  • 点击保存并执行 更新订阅,所有配置即可完成结构化导入与自动归类。


🔒 安全性说明

  • 完全私有:所有数据处理均运行在个人账户下的 Worker 沙箱中,不经过任何第三方转接服务器。

  • 传输安全:全程依赖 HTTPS 加密协议,防止传输过程中的配置被非法篡改或拦截。

  • 维护便捷:若后续需要更新或增加配置项,只需登录控制台修改 Worker 中的数组并重新部署即可。