# CatMata Sub2Proxy 这是一个用于获取 Clash / Sing-box 订阅节点并自动进行跨平台格式转换、重命名及整合的轻量控制面板与工具。 ## 功能特性 * **一键拉取转换**:支持 Clash (YAML) 与 Sing-box (JSON) 订阅的获取,并进行双向转换。 * **节点智能重命名**:自动重命名节点为 `[订阅源]-[协议]`,如有同协议重名节点,自动附带递增数字。 * **规则整合替换**:根据预置的 `CatMata.optimized.yaml` 和 `CatMata.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 的配置模板 ## 快速开始 ### 运行环境 * [Node.js](https://nodejs.org/) (建议 v18+) ### 启动可视化面板 (GUI) 双击运行 `sub2proxy.bat`,或者在终端运行: ```bash node sub2proxy.js ``` 启动后会在默认浏览器中打开控制面板:`http://localhost:3000` ### 命令行编译 (CLI) 在终端运行: ```bash node sub2proxy.js --cli ``` 配置会自动输出到 `out/CatMata-sub.yaml` 和 `out/CatMata-sub.json`,并归档于 `out/history`。