(思路)Sing-Box 自建节点客户端配置转换成订阅链接

查看 45|回复 1
作者:Happig_Muse   
   
只是个人思路,各位有意见也可以发表。发不了链接,用 h-t-t-p-s 代替(包括代码部分)
Sing-Box 自建节点的客户端配置是 json 文件,每次修改完配置,手机端都需要手动修改,很麻烦。而网络上的在线订阅转换网站,都是对 V2rayN 和 Clash For Windows 的 URL 链接进行转换,并没有对 json 文件进行转换。
手机端要使用远程订阅的话,可以将 json 文件部署到自己的 VPS 中或者 Github,输入指定网址进行订阅。我的思路是在 Github 创建一个私有库,将节点配置 json 文件放入,用 CloudFlare Pages 进行同步,Pages 会自动分配一个域名,通过这个域名输入指定路径显示对应 json 文件内容。下面简单的给出步骤:
在 Github 点击右上角个人头像选择 "Your Repositories",然后创建新库,记得勾选 Private(私人)来到 h-t-t-p-s://github.com/settings/tokens 创建 Github Token,填写 Note(Token 名称),权限记得勾选 repoVSCode 克隆刚刚创建的仓库:按下组合键 "ctrl + shift + p",输入 "clone" 回车,输入仓库的 git 链接(由于是私有库,链接有特定格式:h-t-t-p-s://tokens-name:[email protected]/YOUR-USERNAME/YOUR-REPOSITORY.git)在 VSCode 新建 json 文件,将节点配置放入。然后新建 _worker.js 文件:[ol]let tokens = {
  'uuid1': 'Fake.json',
  'uuid2': 'ALL_Fake.json',
  'uuid3': 'Hy2_Fake.json'
};        // 建议随机生成一串 uuid 替换前面的键,后面的值对应你的配置文件,之后输入正确的网址才会显示对应文件内容(例如,我的 Pages 域名是 test.config.com,那么我在浏览器输入 h-t-t-p-s://test.config.com/uuid2 就会对应显示文件 ALL_Fake.json 的内容)
let githubUsername = 'Github_username'; // 替换为你的 GitHub 用户名
let repoName = 'REPOSITORY_name'; // 替换为你的 GitHub 仓库名
let githubToken = 'Token'; // 替换为你的 GitHub Token
export default {
  async fetch(request) {
    const url = new URL(request.url);
    const token = url.pathname.substring(1);
    if (tokens[token]) {
      const fileName = tokens[token];
      const githubUrl = `h-t-t-p-s://raw.githubusercontent.com/${githubUsername}/${repoName}/main/${fileName}`;
      try {
        const response = await fetch(githubUrl, {
          headers: {
            'Authorization': `Bearer ${githubToken}`,
          },
        });
        if (response.ok) {
          const content = await response.text();
          return new Response(content, {
            headers: { 'Content-Type': 'application/json' },
          });
        }
      } catch (error) {
        // 如果需要可以添加日志记录或调试信息,但不显示给用户
      }
    }
    return new Response('密码错误,应输入纯字母的 md5 加密和光栅加密!', {
      status: 404,
      headers: { 'Content-Type': 'text/plain' },
    });
  },
};[/ol]复制代码
编辑好后,在 VSCode 左侧点击 "源码管理",全部提交(记得写 git commit),然后推送在 CloudFlare 左侧点击 "Worker/Pages",新建一个 Pages,连接你的 Github 仓库即可之后 Pages 会分配一个域名,根据 _worker.js 的配置,输入对应网址就会显示对应的节点配置,手机端 singbox 填上这个网址就行了

文件, 节点, 链接

hcyme   
订阅不是事,负载均衡故障转移才是真正的麻烦
您需要登录后才可以回帖 登录 | 立即注册

返回顶部