70 lines
2.7 KiB
Markdown
70 lines
2.7 KiB
Markdown
# 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`。
|
|
|
|
## Docker / 飞牛部署
|
|
|
|
### 使用 Compose
|
|
先确认当前目录下存在 `subs.json`,再运行:
|
|
```bash
|
|
docker compose up -d --build
|
|
```
|
|
|
|
默认访问地址:
|
|
```text
|
|
http://飞牛IP:3000
|
|
```
|
|
|
|
需要持久化的数据:
|
|
* `subs.json` - 订阅源配置,控制面板修改后会写入这里
|
|
* `out/` - 当前输出和历史配置
|
|
* `templates/` - Clash / Sing-box 模板,默认只读挂载
|
|
|
|
### 手机/电脑一键导入
|
|
如果手机或电脑通过 `http://飞牛IP:3000` 打开控制面板,导入链接会自动使用这个地址生成,Clash 客户端可以直接从飞牛拉取配置。
|
|
|
|
如果你通过反向代理、域名或 HTTPS 访问,建议在 `docker-compose.yml` 中设置:
|
|
```yaml
|
|
PUBLIC_BASE_URL: "https://你的域名"
|
|
```
|
|
|
|
如果使用局域网固定 IP,也可以显式设置:
|
|
```yaml
|
|
PUBLIC_BASE_URL: "http://192.168.1.10:3000"
|
|
```
|
|
|
|
注意:不要让导入链接使用 `127.0.0.1` 或 `localhost`,手机/电脑上的 Clash 会把它理解为设备自己,而不是飞牛服务器。
|