Skip to content

Earl9/subconv-next

Repository files navigation

SubConv Next

项目简介

SubConv Next 是面向 Mihomo / Clash Meta 的现代订阅转换工具。它以单个 Go 二进制提供内置 Web UI,用于聚合上游订阅、编辑节点、生成 Mihomo YAML,并发布随机私密订阅链接。

V1 重点面向自托管部署:Docker 运行形态、OpenWrt / Kwrt all-in-one IPK、订阅流量信息响应头、更安全的最终 YAML 校验,以及本地优先的 workspace 行为。

功能特性

  • 支持多订阅源聚合,每个订阅源可设置名称和 Emoji。
  • 节点名保留上游 raw name,只在前面添加 Emoji + sourceName 前缀;重复最终名称追加 #2#3
  • 支持节点编辑、禁用、删除、恢复、批量改名和手动节点。
  • 生成 Mihomo / Clash Meta YAML,支持规则策略组、分流组 full 模式节点列表,不生成国家 / 地区策略组。
  • 聚合上游 Subscription-Userinfo,让 Clash / Mihomo 显示流量用量和到期时间。
  • 使用 /s/{token}/mihomo.yaml 随机私密订阅链接。
  • 支持本机浏览器草稿,且不保存完整发布 token。
  • 最终 YAML 校验覆盖 proxy-group 引用、过滤节点、自动选择组内容和 MATCH 顺序。
  • Docker 镜像支持 /data 持久化,以及 linux/amd64linux/arm64
  • OpenWrt / Kwrt all-in-one IPK 包含后端服务、init.d、UCI 配置、procd、数据目录、LuCI 菜单和 LuCI 管理页。

支持协议包括 ssssrvmessvlesstrojanhysteria2tuicanytlswireguard。其中 anytlswireguard 在 V1 中仍按实验性支持处理。

Screenshots

Web UI
SubConv Next main configuration page

快速开始

Docker Compose

创建 docker-compose.yml

services:
  subconv-next:
    image: ghcr.io/earl9/subconv-next:latest
    container_name: subconv-next
    restart: unless-stopped
    ports:
      - "9876:9876"
    volumes:
      - ./data:/data
    environment:
      SUBCONV_HOST: 0.0.0.0
      SUBCONV_PORT: 9876
      SUBCONV_DATA_DIR: /data
      SUBCONV_LOG_LEVEL: info

启动:

docker compose up -d
curl -fsS http://127.0.0.1:9876/healthz

打开:

http://127.0.0.1:9876/

固定版本建议使用 ghcr.io/earl9/subconv-next:v1.0.0;跟随最新发布版可使用 ghcr.io/earl9/subconv-next:latest

OpenWrt / Kwrt

OpenWrt / Kwrt 支持以 all-in-one IPK 提供。aarch64_generic 已在 Kwrt 25.12.2 rockchip/armv8 上验证;其它 IPK 是实验性包。

opkg install /tmp/subconv-next_1.0.0-5_aarch64_generic.ipk
curl -fsS http://127.0.0.1:9876/healthz

安装路径:

/usr/bin/subconv-next
/etc/init.d/subconv-next
/etc/config/subconv-next
/etc/subconv-next/data
/usr/share/luci/menu.d/luci-app-subconv-next.json
/usr/share/rpcd/acl.d/luci-app-subconv-next.json
/www/luci-static/resources/view/subconv-next/index.js

当 UCI enabled=1 时,安装后会自动 enable 并启动服务。LuCI 入口为 Services / SubConv Next

Release Assets 中的多架构 IPK 是静态 Go 交叉编译二进制通过 ipkg-build 封装的包,不是使用每个目标平台官方 OpenWrt SDK 分别编译出的包。请按设备的 opkg print-architecture 选择文件。

下载

发布文件只放在 GitHub Release Assets,不提交到仓库:

  • GitHub Releases: https://github.com/Earl9/subconv-next/releases
  • subconv-next-linux-amd64
  • subconv-next-linux-arm64
  • Verified IPK: subconv-next_1.0.0-5_aarch64_generic.ipk
  • Experimental IPK: subconv-next_1.0.0-5_x86_64.ipk
  • Experimental IPK: subconv-next_1.0.0-5_arm_cortex-a7_neon-vfpv4.ipk
  • Experimental IPK: subconv-next_1.0.0-5_arm_cortex-a9_vfpv3-d16.ipk
  • Experimental IPK: subconv-next_1.0.0-5_mips_24kc.ipk
  • Experimental IPK: subconv-next_1.0.0-5_mipsel_24kc.ipk
  • checksums.txt

安全说明

SubConv Next V1 没有内置登录。请在本机或可信局域网中运行;如果需要暴露到可信网络之外,必须放在 HTTPS、认证、反向代理、VPN 或等效访问控制之后。

私密订阅 URL 是 bearer link:任何持有 /s/{token}/mihomo.yaml 的人都可以获取生成的 YAML。如果链接泄露,请在 Web UI 中重新生成私密链接。

日志和 API 会尽量脱敏完整 token、上游 URL 密钥、password、uuid、private-key、pre-shared-key、AuthorizationCookie。安全边界和漏洞报告方式见 SECURITY.md

文档

开发

需要 Go 1.22+。

go test ./...
go test -race ./...
go vet ./...

本地运行:

go run ./cmd/subconv-next serve \
  --host 127.0.0.1 \
  --port 9876 \
  --data-dir "$PWD/data" \
  --log-level info

构建二进制:

go build -o subconv-next ./cmd/subconv-next

许可证

SubConv Next 使用 MIT License 发布,详见 LICENSE

About

clash订阅转换

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors