CatMata Sub2Proxy

这是一个用于获取 Clash / Sing-box 订阅节点并自动进行跨平台格式转换、重命名及整合的轻量控制面板与工具。

功能特性

  • 一键拉取转换:支持 Clash (YAML) 与 Sing-box (JSON) 订阅的获取,并进行双向转换。
  • 节点智能重命名:自动重命名节点为 [订阅源]-[协议],如有同协议重名节点,自动附带递增数字。
  • 规则整合替换:根据预置的 CatMata.optimized.yamlCatMata.json / CatMata-tun.json 模板,动态替换策略组/出站节点,保留原分流和 DNS 规则。
  • 可视化控制面板:基于本地 Node.js 精美单网页 (Glassmorphism),可方便管理订阅、修改节点字段、配置 DNS。
  • 客户端一键唤醒导入:历史记录面板支持一键唤醒本地 Clash / Sing-box 客户端,直接将配置导入客户端。
  • CLI 静默模式:支持 --cli 无界面静默转换,方便接入自动化定时脚本。

目录结构

  • public/index.html - 控制面板前端网页
  • sub2proxy.js - 后端及 CLI 转换引擎
  • subs.json - 订阅源配置
  • CatMata.* - Clash 与 Sing-box 的配置模板

快速开始

运行环境

启动可视化面板 (GUI)

双击运行 sub2proxy.bat,或者在终端运行:

node sub2proxy.js

启动后会在默认浏览器中打开控制面板:http://localhost:3000

命令行编译 (CLI)

在终端运行:

node sub2proxy.js --cli

配置会自动输出到 out/CatMata-sub.yamlout/CatMata-sub.json,并归档于 out/history

Docker / 飞牛部署

使用 Compose

先确认当前目录下存在 subs.json,再运行:

docker compose up -d --build

默认访问地址:

http://飞牛IP:3000

需要持久化的数据:

  • subs.json - 订阅源配置,控制面板修改后会写入这里
  • out/ - 当前输出和历史配置
  • templates/ - Clash / Sing-box 模板,默认只读挂载

手机/电脑一键导入

如果手机或电脑通过 http://飞牛IP:3000 打开控制面板,导入链接会自动使用这个地址生成,Clash 客户端可以直接从飞牛拉取配置。

如果你通过反向代理、域名或 HTTPS 访问,建议在 docker-compose.yml 中设置:

PUBLIC_BASE_URL: "https://你的域名"

如果使用局域网固定 IP,也可以显式设置:

PUBLIC_BASE_URL: "http://192.168.1.10:3000"

注意:不要让导入链接使用 127.0.0.1localhost,手机/电脑上的 Clash 会把它理解为设备自己,而不是飞牛服务器。

S
Description
No description provided
Readme 291 KiB
Languages
HTML 66.5%
JavaScript 32.9%
Dockerfile 0.5%