# KR VPS 分流管理器 LLM 上下文

这个链接是给另一个 LLM 或自动化代理看的项目说明。它的目的不是执行管理操作，而是让对方快速理解这个服务是什么、能做什么、怎么和用户协作。

## 一句话说明

`split-manager` 是部署在 `ssh kr` 上的 Web/API 分流管理器，用来管理服务器端 sing-box 的分流规则、线路、最近连接日志、节点测速和 VPS 状态。用户本地和手机 Karing 不属于默认修改范围。

## 当前入口

- 管理页面：`https://fenliu.sysmeng.com/`
- LLM 说明 Markdown：`https://fenliu-api.sysmeng.com/`
- LLM 说明 JSON：`https://fenliu-api.sysmeng.com/json`
- VPNGate 集成状态 API：`https://fenliu-api.sysmeng.com/vpngate`
- 服务器工作目录：`/opt/split-manager`
- Node 后端：`/opt/split-manager/server.js`
- 前端静态文件：`/opt/split-manager/public/`
- 项目文档：`/opt/split-manager/PROJECT.md`
- LLM 上下文文档：`/opt/split-manager/LLM_CONTEXT.md`
- aimili-vpngate 目录：`/opt/aimilivpn`

## 它管理什么

- sing-box 配置文件：`/etc/s-box/sb.json`
- sing-box 服务：`sing-box.service`
- 分流管理器服务：`split-manager.service`
- Clash API 连接来源：`http://127.0.0.1:19090`
- Cloudflare Tunnel：`/root/.cloudflared/config.yml`
- 旧路径兼容：`https://sysmeng.com/yisal/fenliu/`
- aimili-vpngate 服务：`aimilivpn.service`
- aimili-vpngate 本机代理：`127.0.0.1:7928`
- split-manager 桥接线路：`vpngate-native`

## 它不是干什么的

- 不是本地 Karing 配置管理器。
- 不是手机配置管理器。
- 不是订阅生成器本体。
- 不是 AdGuardHome。

订阅管理器是另一个服务，通常在 `/opt/sub-manager`，订阅入口是 `https://sysmeng.com/yisal/dingyue`。

## 与 aimili-vpngate 的关系

这台 VPS 上还安装了 `baoweise-bot/aimili-vpngate`：

- GitHub：`https://github.com/baoweise-bot/aimili-vpngate`
- 目录：`/opt/aimilivpn`
- 服务：`aimilivpn.service`
- 节点缓存：`/opt/aimilivpn/vpngate_data/nodes.json`
- 状态文件：`/opt/aimilivpn/vpngate_data/state.json`
- 本机代理：`127.0.0.1:7928`

两个项目的桥接方式是：

```text
split-manager 规则 -> sing-box outbound vpngate-native -> 127.0.0.1:7928 -> aimili-vpngate 当前 OpenVPN 节点 -> VPNGate 原生 IP
```

`vpngate-native` 是 sing-box 里的 SOCKS5 outbound，负责把被分配到这条线路的网站交给 `aimili-vpngate`。`aimili-vpngate` 自己负责维护 VPNGate 节点池、自动连接 OpenVPN、切换失效节点，并把出口代理暴露在本机 `7928` 端口。

split-manager 的集成 API：

- `GET https://fenliu-api.sysmeng.com/vpngate`：需要 split-manager 管理 token，返回脱敏的 aimili-vpngate 状态、当前活动节点、节点数量、节点摘要和 `vpngate-native` 桥接状态。
- 可用参数：`limit`、`country`/`region`、`status`、`active=1`。

示例：

```bash
curl -H "Authorization: Bearer <ADMIN_TOKEN>" \
  "https://fenliu-api.sysmeng.com/vpngate?country=KR&status=available&limit=10"
```

这个 API 不会暴露 `aimili-vpngate` 的 API token，不会返回 OpenVPN 完整配置 `config_text`，也不会直接提供切换节点的写操作。

## 用户常见目标

- 查看最近连接，看某个域名实际走了哪条线路。
- 把某个域名、域名后缀或关键词分配到指定 outbound。
- 比较各线路延迟和下载速度。
- 查看 VPS 运行状态。
- 通过 Web UI 保存规则，并自动检查 sing-box 配置。

## API 概览

公开只读 API：

- `GET https://fenliu-api.sysmeng.com/`：返回本文 Markdown，不需要 token。
- `GET https://fenliu-api.sysmeng.com/json`：返回本文 JSON 包装数据，不需要 token。

需要管理 token 的 API：

- `POST /api/login`：登录并写入 Cookie。
- `GET /api/state`：返回配置摘要、规则、线路、最近连接、服务状态。
- `GET /api/connections`：返回实时连接。
- `GET /api/vps`：返回 VPS CPU、内存、磁盘、负载等状态。
- `GET /api/speed`：测试各 outbound 的延迟和下载速度。
- `GET /vpngate`：返回 `aimili-vpngate` 和 `vpngate-native` 的桥接状态。
- `POST /api/rules`：新增或合并分流规则。
- `DELETE /api/rules/:index`：删除指定规则。
- `POST /api/check`：运行 sing-box 配置检查。
- `POST /api/restart`：检查通过后重启 sing-box。
- `GET /api/project`：返回完整项目文档 JSON。
- `GET /api/project.md`：返回完整项目文档 Markdown。

管理 API 的认证方式：

- Header：`Authorization: Bearer <ADMIN_TOKEN>`
- Query：`?token=<ADMIN_TOKEN>`
- Cookie：登录后写入 `split_manager_token`

这里不会公开 `ADMIN_TOKEN`。如果另一个 LLM 需要调用管理 API，必须让用户自己提供 token 或通过已登录浏览器上下文操作。

## 修改规则的协作原则

如果用户要新增或调整分流规则：

1. 先查看最近连接或当前规则，确认目标域名。
2. 优先用域名后缀或明确域名规则，不要随便扩大到大范围关键词。
3. 保存前必须检查 sing-box 配置。
4. 保存成功后才重启 sing-box。
5. 不要默认修改用户手机、本地电脑或 Karing。

## 安全边界

- 不要要求用户把 `ADMIN_TOKEN` 发到公开位置。
- 不要把 `/etc/s-box/sb.json` 完整内容贴到公开回答里。
- 不要把任何私钥、订阅 token、Cloudflare token、节点密码写进文档。
- 不要直接假设 `5203333.xyz` 或 `sysmeng.com/yisal/fenliu` 是当前主入口；当前主入口是 `fenliu.sysmeng.com`。

## 给 LLM 的建议回答方式

当用户把这个链接给你时，请先说明你已经理解：

- 这是 KR VPS 上的 `split-manager`。
- 它通过 `https://fenliu.sysmeng.com/` 管理服务器端 sing-box 分流。
- 公开链接只提供说明，真实管理 API 需要 token。
- 默认不要动用户手机、本地 Karing 或电脑网络设置。
- `vpngate-native` 不是普通固定节点，而是由 `aimili-vpngate` 当前 OpenVPN 节点动态提供的原生 IP 出口。

如果用户要求实际修改，请先确认你是否有可用的管理 token、SSH 权限或浏览器登录态；没有这些权限时，只能给出操作建议，不能声称已经修改。
