飘在云端

东西南北,海角天涯

· 前端 · · 1866次浏览

Subconverter 订阅转换API

更新:2024-04-17 更新了一下基于上游 v0.9.0-0c85747 版本的提交,在此基础上合并修复 vmess +tcp + http 转换异常问题,现在使用免流机场转换时能正确识别并转换 tcp + http 的 VMESS 链接
该版本为上游 https://github.com/tindy2013/subconverter/commit/0c8574755a8bce44dfb7ef8a2d9678a82273988c + 合并部分 PR,平台为 Linux AMD64

除此之外没有增加任何新功能,之前是考虑过要增加完善一些功能,比如支持 vless + hysteria + ss-2022 ciphers + Clash 的 ws-opts 添加了 Cookie 字段选项 + socks + Trojan xtls,把这些 PR 全部合并做成大杂烩(先画个大饼,以后再说) ......

更新:2023-06-19,本站后端已跟随上游更新至最新 committed 4205dee (UTC 2023-03-22 14:58),并在此基础上合并 pr ,修复 vmess + tcp + http 无法正确转换问题(常见于免流机场),经测试可以正常使用了

修复前:

 - {name: 🇨🇳 中国四川 100M 80 tcp_http 停机卡专用 MPTCP Standard, server: 1.1.1.1, port: 80, client-fingerprint: chrome, type: vmess, uuid: 12345678-1919-e5bb-fa70-e57927ff8b99, alterId: 0, cipher: auto, tls: false, tfo: false, skip-cert-verify: false, udp: true}

修复后:

  - {name: 🇨🇳 中国四川 100M 80 tcp_http 停机卡专用 MPTCP Standard, server: 1.1.1.1, port: 80, type: vmess, uuid: 12345678-1919-e5bb-fa70-e57927ff8b99, alterId: 0, cipher: auto, tls: false, skip-cert-verify: false, network: http, http-opts: {method: GET, path: ["/?ed=1024"], headers: {Host: [www.cloudflare.com]}}, udp: true}

接受远程配置规则投稿:https://t.me/subconapi

自行部署的编译步骤见文末,在 2c2g v2.7 Ghz kvm VPS 小鸡上面测试,并配合 make -j$(nproc)加快编译速度,用时 8 分钟


前端转换 UI:https://api-sub.0z.gs

前端版本: committed a81f2dd (2022-01-15 23:44 UTC+8)
后端版本: v0.7.2-35d2965(committed 35d2965 (2022-08-31 16:24 UTC+8)
基于 yacd v0.3.5 完善汉化的 Clash Web 控制台:https://clash.0z.gs

备注:本站采用跟上游完全一致的原版后端,不支持 Vless 和 Trojan xtls 这2个协议/特性,并且原版 Clash 内核、客户端都不支持,需要使用魔改的 Clash 内核,如 Clash Meta,本站完全跟随上游 Master 分支 同步更新,不进行魔改,除非 PR 被 上游 Clash 合并,才会实现支持,如需转换非标准支持协议或特性,请使用第三方魔改的订阅转换后端,如 品云肥羊或其他魔改后端

2022-09-12:因 ipip.net 的 GitHub ip 数据年久失修,已更换为 https://github.com/szkzn/China_IPv4_CIDR_list
不依赖 Clash 内置 GeoIP 数据库

提示:后端细节,后端使用了 DNS 分流(该功能已下线),根据请求 IP 归属地(国内/国外),转向国内、国外的后端进行转换,如需强制代理使用境外后端转换,以 Win Clash 为例,仅需开启 Clash 的系统代理,更新订阅,就会使用自身的订阅的节点去请求后端,自然会被 DNS 指向境外后端进行订阅转换


远程配置规则:

  1. 默认分流规则:国外 + OpenAI + Tlegram +Steam (国际版分流规则) + 哔哩哔哩 + 国内 共6个分组,如需更多规则可到进阶模式查看规则列表,或者参见 第 6 条说明进行投稿,或者自己使用远程配置上传功能进行自定义
  2. 基础广告拦截(ACL4SSR banAD + BanProgramAD);
  3. 国外分组的分流规则:局域网、保留地址直连,境外代理;
  4. 无需 GeoIP 支持,不依赖客户端内置的 GeoIP 数据库,使用精度更高的 https://github.com/szkzn/China_IPv4_CIDR_list
  5. 强制代理 Google 中国大陆直连域名、必应 bing.com 搜索引擎,强制代理 ipip.net,方便查询代理 IP 信息
  6. 如需投稿规则或反馈异常问题,可以加入 tg 群组:https://t.me/+BoggzaOLcOlmMDE1

简单使用方法:

  • 点击 API 前端 网址进入转换界面
  • 点击 基础模式
  • 订阅链接: 这里输入你的订阅连接
  • 客户端:选择你想转换的客户端
  • 点击网页底部的 生成订阅链接 ,点击 订阅复制 输入框右边的 复制 按钮,把转换后的订阅链接导入到你的客户端使用

更多高级用法见 Github 教程:https://github.com/tindy2013/subconverter/blob/master/README-cn.md


更新日志

  • 2022-7-31 跟随上游更新至 v0.7.2-e34add2 后端 [committed v0.7.2-e34add2],增加 ACL4SSR 默认在线版分组,增加 iOS Choc 客户端专用兼容的配置文件(使用进阶模式,远程配置选择 Choc),把王者荣耀的 DNS IP 182.256.116.117 加入到 IPIP.net 的 CIDR CN 列表,避免开着 Clash 打王者造成上百延迟(因为 DNS 被代理了),我这里写了一条 CIDR 182.254.116.0/24 到 境内 IP库, 此后更新日志发布在 Telegram 频道: https://t.me/subconapi,不再更新到文章内容, 。
  • 2022-6-3 修复 Steam 在使用后缀匹配规则 DOMAIN-SUFFIX,steampowered.com,直连情况下仍然会无法正常访问,Clash 日志显示红色字体 store.steampowered.com:443 dial tcp4 xxx.xxx.xxx.xxx : i/o timeout Steam (match DomainSuffix/store.steampowered.com),现已额外增加一个完全域名匹配规则修复该问题 DOMAIN,store.steampowered.com,经测试,在 SwitchyOmega 使用 系统代理(clash 开启系统代理)和 SwitchyOmega 监听 Clash 的 7890 socks5 协议端口下,能够在匹配到规则后正常直连,并且同时修复其他类似 Steam 的后缀匹配规则时报 timeout 问题,目前个人推测是匹配规则问题,后缀匹配应该不是 完全的通配符匹配,出现了一些预期外的问题。
  • 2022-4-30 修复 使用境外 IP 访问后端时返回 http 状态码 400 错误
  • 2022-4-14 跟随上游更新至 v0.7.2-a24cb7c 后端 [committed v0.7.2-a24cb7c]
  • 2022-4-5,跟随上游更新至 v0.7.2-ce8d2bd 后端 [committed v0.7.2-ce8d2bd]
  • 2022-4-3,跟随上游更新至 v0.7.2 后端 [committed 7703d55]
  • 2022-3-29 修复 回国分组 覆盖了其他分组的分流规则导致冲突的问题
  • 2022-3-27,已对订阅后端进行了速度优化,并做了简单的负载均衡,并增加境外 Cloudflare 接入
    使用境外 IP 更新订阅,走 Cloudflare CDN 网络,使用境内 IP 更新订阅,走国内网络

原订阅分组规则路径发生变更,需要重新到前端界面转换一次订阅即可。

  • 2022-3-26,因带宽被跑满导致订阅转换后端宕机 4 小时,计划迁移至 Cloudflare 继续提供服务
  • 2022-3-21,同步后端到上游最新 committed 406b0f2-2022-03-20 17:34
  • 2022-3-20,增加回国分组
  • 2022-3-19 已知当安卓系统 ≥ 9 版本,并开启了安卓自带的的加密 DNS 功能(DOT DNS),会导致 Clash For Android 无法劫持 DNS 数据包进行修改,网络会异常。
  • 2022-02-11 订阅转换后端跟随上游最新 committed 升级至 v0.7.1 backend-80cda7b ,
    增加 Steam (非中国特供版)分流规则分组,可自行决定是否代理 Steam,注意 Steam 中国特供版是默认直连,没放进steam分组里。
    增加 哔哩哔哩 港澳台分组,可自行决定是否代理。
    由于一些 BUG,我砍掉了前端对 PWA 的支持。
  • 2021-11-10 修复首次访问页面时,默认勾选的 启用UDP 参数不生效问题
  • 2021-9-14 修复 PC端 Clash CIDR 规则失效问题,增加更多保留地址

  • 即刻起,不再自行编译,直接去 GitHub action 下载最新版即可
  • subconverter GitHub 最新源码 Linux x64 平台编译步骤,使用 docker 搭建编译环境,没什么配置要求,推荐 1c1g +
    在 Ubuntu 20.04.4 LTS 编译成功,编译步骤:
  1. 自行安装好 docker、git 等命令,并最好在国外 VPS 编译,以解决 github 无速度问题或使用 github 镜像 加速 git clone
  2. mkdir -p ~/latestsubc/final && cd latestsubc/
  3. git clone --recursive https://github.com/tindy2013/subconverter.git && cd subconverter/
  4. SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h
  5. docker run -v ~/latestsubc/subconverter:/root/workdir multiarch/alpine:amd64-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"

    此时编译完成,我这里用时大概 3 分钟(4 vcpu 2.7 Ghz KVM ),还是很快的,接下来从容器中提取编译好的文件并打包成压缩文件即可。

  6. docker ps -a
  7. docker cp 825054cad0ac:/root/workdir/subconverter ~/latestsubc/final

    825054cad0ac 为第六步 docker ps -a 命令输出的列表中最后退出的容器 ID

  1. cd ~/latestsubc/final && tar cvJf subconverter.tar.xz -C ~/latestsubc/final .
  2. 此时当前目录下的 subconverter.tar.xz 即为编译好的成品,解压命令为 tar xvJf subconverter.tar.xz
鸣谢,相关项目地址:

https://github.com/tindy2013/subconverter
https://github.com/CareyWang/sub-web
https://github.com/17mon/china_ip_list

评论 (0条)