subconverter完全手册:从入门配置到API高级技巧 – wiki基地


Subconverter 完全手册:从入门配置到 API 高级技巧

Subconverter 是一款功能强大的代理订阅转换工具,它可以帮助用户在不同的代理客户端(如 Clash, Surge, Quantumult X 等)之间无缝转换订阅链接,并提供了丰富的自定义功能。本手册将从入门配置讲起,逐步深入到 API 调用和高级技巧,帮助你完全掌握这个神器。

一、 Subconverter 是什么?

1.1 功能简介

Subconverter 的核心功能是在多种代理订阅格式之间进行转换。无论你手上的订阅是 V2Ray, Trojan 还是 SS 格式,Subconverter 都能轻松地将其转换为 Clash, Surge, Quantumult X, Mellow 等客户端支持的格式。

1.2 为什么需要 Subconverter?

  • 格式兼容:机场提供的订阅链接格式不一,而 Subconverter 可以作为统一的中间层,抹平不同客户端与订阅源之间的差异。
  • 规则定制:很多代理客户端支持强大的分流规则,但手写规则非常繁琐。Subconverter 可以聚合多种规则,自动生成适用于不同客户端的配置。
  • 节点处理:可以对订阅中的节点进行过滤、重命名、排序甚至删除,只保留你需要的节点。
  • 远程配置:支持引用远程服务器上的规则片段,方便统一管理和更新。

1.3 核心优势

  • 灵活性:支持高度自定义的模板和规则,满足各种复杂需求。
  • 跨平台:提供 Windows, Linux, macOS 等多种平台的预编译版本,也支持 Docker 部署。
  • API 驱动:提供强大的 API,可以轻松地将其集成到自动化流程中。

二、 快速上手

2.1 安装与部署

你可以从 Subconverter 的 GitHub Releases 页面下载最新的版本。

2.1.1 Windows

  1. 下载适用于 Windows 的压缩包,例如 subconverter_win64.zip
  2. 解压后,直接运行 subconverter.exe 即可启动。

2.1.2 Linux (使用 PM2)

在 Linux 服务器上,推荐使用 pm2 来管理 Subconverter 进程,以确保其在后台稳定运行。
1. 创建并进入一个新目录,例如 mkdir /home/sub && cd /home/sub
2. 下载并解压 Linux 版本:
bash
wget https://github.com/tindy2013/subconverter/releases/download/v0.8.0/subconverter_linux64.tar.gz # 请替换为最新版本链接
tar -xvf subconverter_linux64.tar.gz

3. 进入解压后的 subconverter 目录。
4. 使用 pm2 启动并管理服务:
bash
npm install -g pm2 # 如果尚未安装 pm2
pm2 start ./subconverter
pm2 startup # 设置开机自启
pm2 save # 保存当前进程列表

2.1.3 Docker

对于熟悉 Docker 的用户,使用 Docker 部署既方便又实现了环境隔离。
bash
docker run -d \
--name subconverter \
-p 25500:25500 \
--restart=always \
tindy2013/subconverter:latest

2.2 访问 Subconverter

启动后,Subconverter 的默认服务地址是 http://127.0.0.1:25500。你可以通过这个地址来访问它的 web 界面(如果有前端面板)或 API。

三、 核心概念与配置

Subconverter 的强大之处在于其灵活的配置系统。核心配置文件是位于程序根目录的 pref.ini (或 pref.toml)。

3.1 配置文件 pref.ini

这个文件定义了 Subconverter 的全局行为。
api_mode: 如果设置为 true,则会禁止直接通过 URL 加载本地文件,增强安全性,此时访问需要携带 Token。
api_access_token: API 访问令牌,强烈建议设置一个复杂的密码,以防止你的 Subconverter 服务被滥用。

3.2 远程配置与规则

rules 目录下,你可以找到各种规则片段。Subconverter 会在生成配置文件时,将这些规则合并到最终的配置中。你可以在 config/remote-config.ini 中引用这些规则,或者直接在订阅链接中通过 url 参数传递。

3.3 模板文件 all_base.tpl

位于 base 目录下的 all_base.tpl 文件是生成各种客户端配置的模板。通过修改这个文件,你可以自定义最终生成的配置文件内容,例如修改 DNS 设置、添加自定义代理组等。

四、 API 使用详解

Subconverter 的精髓在于其 API。通过 API,你可以动态生成订阅,而无需手动操作。

4.1 getprofile API

这是最核心的 API 之一,用于通过预设的配置文件(Profile)来生成订阅。
调用地址: http://<your-ip>:25500/getprofile?name=<profile-name>&token=<your-token>
name: 指定 profiles 目录下的配置文件名,例如 myconfig.ini
token: 你在 pref.ini 中设置的 api_access_token

示例 myconfig.ini:
ini
[Profile]
target=clash
url=https://example.com/your-sub-link
config=config/remote-config.ini
emoji=true
udp=true

这个 Profile 会将 url 指定的订阅转换为 Clash 格式,并应用 remote-config.ini 中的规则,同时启用 emoji 和 UDP。

4.2 API Token 安全

务必为你的 api_access_token 设置一个强密码,特别是当你的 Subconverter 部署在公网上时。否则,任何人都可以使用你的服务,可能会带来不必要的麻烦。

五、 高级技巧与最佳实践

5.1 自定义分流规则

你可以创建自己的规则文件,放在 rules 目录下,然后在 remote-config.ini 或订阅链接中引用。例如,创建一个 my-rules.list 文件,内容为:
DOMAIN-SUFFIX,mylocalservice.com,DIRECT
然后在 remote-config.ini 中加入 ruleset=my-rules.list,DIRECT 即可生效。

5.2 DNS 配置优化

Clash 等客户端在某些情况下可能存在 DNS 泄露风险。通过修改 base/all_base.tpl 文件中的 DNS 部分,可以强制指定 DNS 服务器,解决此问题。
yaml
dns:
enable: true
ipv6: false
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- 8.8.8.8
- 1.1.1.1

5.3 使用 Profile 简化长链接

当你的订阅链接因为包含了大量的规则、节点过滤等参数而变得非常长时,getprofile API 就派上了用场。将所有参数预设在服务端的 .ini 文件中,客户端只需要一个简短的 URL 即可获取完整的配置。

5.4 搭配 Clash 的进阶玩法

  • Fake-IP 模式:通过在模板中配置 Fake-IP,可以有效解决部分应用(如微信)的网络连接问题。
  • GeoIP/GeoSite:在 pref.ini 中配置 GeoIP/GeoSite 的 mmdb 文件路径,可以实现基于地理位置的精准分流。

六、 总结

Subconverter 是一个功能极其丰富的工具,从简单的订阅转换到复杂的规则定制和 API 集成,它都能胜任。通过仔细阅读和实践本手册,你应该能够完全发挥出 Subconverter 的潜力,打造出最适合自己的代理环境。不断探索,你会发现更多高级玩法。

滚动至顶部