Skip to content

基于 subconverter 二次开发的 mihomo 专用订阅转换后端,优化处理订阅链接/节点链接的逻辑,无需读取订阅无视屏蔽,内置 mihomo 解析模块,同时自动扫描和添加新增协议支持,完美解决原版的兼容性滞后问题。

License

Notifications You must be signed in to change notification settings

Aethersailor/SubConverter-Extended

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SubConverter-Extended

A Modern Evolution of subconverter

GitHub Tag GitHub Actions Workflow Status Docker Pulls License

⚡ 现代化的订阅转换后端 | 完美兼容 Mihomo 内核 ⚡

项目简介立项原因核心特性快速开始使用文档Docker 部署


📖 项目简介

Note

SubConverter-Extended 是基于 asdlokj1qpi233/subconverter 深度二次开发的订阅转换后端增强版本。

它专为协同 Mihomo 内核工作优化,提供更现代、更强大的订阅转换服务。

核心定位转变: SubConverter-Extended 不再充当客户端和机场之间的"中转站",而是成为独立的**"配置融合器"**——只对客户端服务,不连接机场订阅服务器。同时基于 Mihomo 内核源码,在编译时自动跟进协议支持。

22

Warning

SubConverter-Extended 优先服务 Clash 客户端,对其他客户端如 Surge/Loon 的支持不作保证。


💡 立项原因

遇到的问题

在长期使用 subconverter 的过程中,我遇到了几个不如人意的痛点:

1. 协议支持滞后 🐢

subconverter 对新节点格式的支持完全取决于维护者的积极性。许多新兴协议(如 hysteria2tuicanytls 等)往往在相当长的时间内无法得到支持,而一些老协议至今也未能做到完美的转换。

2. 机场屏蔽问题 🚫

由于 subconverter 需要连接机场订阅服务器拉取节点,而部分机场出于安全考虑:

  • 屏蔽海外 IP 访问
  • 直接屏蔽 subconverter 的 User-Agent
  • 限制非客户端的订阅请求

这导致许多用户根本无法正常使用订阅转换服务。

3. 新手友好度不足 🤯

由于上述问题,subconverter 逐渐被一些开发者和 UP 主视为"过时产物",开始推崇使用 YAML 文件手动管理配置。但很多新手并没有兴趣和时间去研究 YAML 配置文件,更多的是希望“开袋即食”。

但由于 subconverter 的原因,许多人常遇到不能解析节点/不能拉取节点/拉下来的节点参数无效等等奇怪的问题,这对于很多新手来说,基本是没有能力去解决的。

但也正是基于这一点,正如 Custom_OpenClash_Rules 项目所坚持的:

Important

最适合新手以及最具普适性的操作流程,永远是基于 UI 界面的操作流程。

用户应当拿着订阅链接,点几下鼠标就能根据自己的实际情况配置出最佳效果,并自动享受完善的分流规则更新。

而不是繁琐的"上传文件"、"手动修改参数",甚至还得到处提问,问的太蠢了还会被人喷,一点儿都不优雅。

🎯 我们的解决方案

那就自己动手吧。 SubConverter-Extended 因此诞生,让转换工具更匹配现代 Clash 内核的使用场景,服务于所有保留“订阅转换”接口且使用 Mihomo 内核的 Clash 客户端


✨ 核心特性

🚀 相对原版的重大改进

功能 原版 Subconverter SubConverter-Extended
协议支持 🛠️ 人工维护解析器 🤖 集成 Mihomo 内核解析器,自动支持所有协议
订阅链接处理 📥 下载并解析节点 🔗 生成 proxy-provider,由用户的 Mihomo 内核直接拉取
节点链接处理 ⚠️ 有限的协议支持 内置 Mihomo 内核的解析模块,完美解析
新协议支持 ⏳ 人工添加维护 🔄 全自动维护,编译时自动扫描 Mihomo 源码添加支持
全局参数透传 📝 人工维护参数列表 🔍 全自动维护,编译时自动识别可覆写参数

🔥 独特功能

1. Proxy-Provider 模式 🛡️

使用 Mihomo 的 Proxy-Provider 机制

订阅链接不再下载解析,而是生成客户端可直接使用的配置,交由用户客户端的 Mihomo 内核自行拉取订阅:

proxy-providers:
  provider_1:
    type: http
    url: https://your-subscription-url  # <-- 客户端直接连接机场
    interval: 3600
    path: ./providers/provider_1.yaml
    health-check:
      enable: true
      interval: 600
      url: http://www.gstatic.com/generate_204

Tip

优势

  • ✅ 不再干涉用户节点,交由内核原生处理
  • ✅ 订阅更新由客户端控制,无需重新转换
  • ✅ 避免机场屏蔽转换服务器的问题

2. Mihomo 内核模块集成 🧩

直接使用 Mihomo Go 库解析节点链接,确保:

  • ✅ 支持 Mihomo 的所有协议(包括 hysteria2, tuic, anytls 等)
  • ✅ 参数完全兼容,无需手动适配
  • ✅ 新协议零延迟支持(编译时跟随 Mihomo 更新)

3. 兼容性保证 🤝

  • 无缝切换:完全兼容传统 subconverter 的 API 接口,确保客户端用户零学习成本,无缝切换。
  • 模板兼容:继续沿用传统的订阅转换外部模板,无需修正任何内容,由后端内置逻辑确保 proxy-provider 模式在分流规则中正确生成。
  • 无忧更新:编译时自动遍历 Mihomo 内核仓库,提取并写入当前最新支持的协议格式,确保永远支持最新协议。

4. 新手友好 👶

  • ✅ 使用 Custom_OpenClash_Rules 远程配置模板替代默认模板
  • ✅ 锁死 API 模式,避免新手误配置降低安全性
  • ✅ 简化参数,专注核心功能

🚀 快速开始

🌍 使用公共后端 (无需部署)

如果你不想折腾服务器,可以直接使用我们提供的公共后端:

Tip

公共后端地址https://api.asailor.org

你可以在任何支持自定义后端的订阅转换网站或客户端中填入此地址即可使用。

🐳 自行部署 (Docker)

如果你拥有自己的服务器,推荐使用 Docker 进行部署。

Warning

代码尚不完善,推荐优先使用公共后端。

由于开发者业余时间有限,以下部署指南部分内容由 AI 生成,仅供参考。

1. 一键启动

docker run -d \
  --name subconverter \
  -p 25500:25500 \
  --restart unless-stopped \
  aethersailor/subconverter-extended:latest

访问 http://localhost:25500/version 验证部署。

2. 自定义配置启动

# 1. 创建配置目录
mkdir -p ~/subconverter/base

# 2. 下载配置文件模板(可选)
wget -O ~/subconverter/base/pref.toml \
  https://raw.githubusercontent.com/Aethersailor/SubConverter-Extended/master/base/pref.example.toml

# 3. 启动容器并挂载配置
docker run -d \
  --name subconverter \
  -p 25500:25500 \
  -v ~/subconverter/base:/base \
  --restart unless-stopped \
  aethersailor/subconverter-extended:latest

📚 使用文档

使用方式与原版 subconverter 完全相同。

基础转换

将机场订阅转换为 Clash 配置:

curl "http://localhost:25500/sub?target=clash&url=https://your-sub-url"

🌟 推荐配置

配合 Custom_OpenClash_Rules 项目使用:

curl "http://localhost:25500/sub?target=clash&url=YOUR_SUB&config=https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/main/cfg/Custom_Clash.ini"

常用参数一览

参数 说明 示例
target 目标格式 clash, surge, quanx
url 订阅链接或节点链接(| 分隔) https://sub.com|vless://...
config 外部配置文件 https://config-url
include 包含节点(正则) (暂不支持) 香港|台湾
exclude 排除节点(正则) 过期|剩余
emoji 添加 Emoji true/false

🛠️ 配置说明

主配置文件

支持三种格式:pref.toml(推荐)、pref.ymlpref.ini

关键配置项:

[managed_config]
managed_config_prefix = "http://localhost:25500"  # 托管配置前缀

🔍 Docker Hub 镜像标签

标签 用途 更新频率
latest 🟢 稳定版本(master 分支) 有 release 时更新
dev 🟡 开发版本(dev 分支) 每次 dev 分支推送

🤝 致谢

本项目使用或引用了以下开源项目,在此表示感谢:


📄 开源协议

本项目基于 GPL-3.0 协议开源。

Tip

内置的 Mihomo 解析器模块遵循 MIT 协议。


⭐ 记录

Star History Chart

📊 数据统计

Alt


如果这个项目对你有帮助,请给个 ⭐ Star 支持一下!

Made with ❤️ by Aethersailor

About

基于 subconverter 二次开发的 mihomo 专用订阅转换后端,优化处理订阅链接/节点链接的逻辑,无需读取订阅无视屏蔽,内置 mihomo 解析模块,同时自动扫描和添加新增协议支持,完美解决原版的兼容性滞后问题。

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •