更新:2024-10-03
更新了一下基于上游 v0.9.0-79a7e888 版本的提交,在此基础上合并修复 vmess +tcp + http 转换异常问题,现在使用免流机场转换时能正确识别并转换 tcp + http 的 VMESS 链接
该版本为上游 https://github.com/tindy2013/subconverter/commit/79a7e888b11c343d18a064f08065e7962f1a1f49 + 合并部分 PR
截止到目前的最新 commits
subconverter v0.9.0-79a7e88 built on 2024-09-30 at 06:39 UTC+8 backend
部分 PR:https://github.com/tindy2013/subconverter/issues/764#issuecomment-2211793253
修改 httplib.h
的 URL 最大请求长度限制为 819200
,支持在线传入转换更多节点,避免返回 http 状态码 414
我自行编译了一份 Linux AMD64 平台的打包成了 exe 自解压格式放网盘,需要的自取
https://www.alipan.com/s/cUTtLhXXMqt
提取码 n5y4
更新: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 指向境外后端进行订阅转换
远程配置规则:
- 默认分流规则:国外 + OpenAI + Tlegram +Steam (国际版分流规则) + 哔哩哔哩 + 国内 共6个分组,如需更多规则可到进阶模式查看规则列表,或者参见 第 6 条说明进行投稿,或者自己使用远程配置上传功能进行自定义
- 基础广告拦截(ACL4SSR banAD + BanProgramAD);
- 国外分组的分流规则:局域网、保留地址直连,境外代理;
- 无需 GeoIP 支持,不依赖客户端内置的 GeoIP 数据库,使用精度更高的 https://github.com/szkzn/China_IPv4_CIDR_list ;
- 强制代理 Google 中国大陆直连域名、必应 bing.com 搜索引擎,强制代理 ipip.net,方便查询代理 IP 信息
- 如需投稿规则或反馈异常问题,可以加入 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 编译成功,编译步骤:
- 自行安装好 docker、git 等命令,并最好在国外 VPS 编译,以解决 github 无速度问题或使用 github 镜像 加速 git clone
mkdir -p ~/latestsubc/final && cd latestsubc/
git clone --recursive https://github.com/tindy2013/subconverter.git && cd subconverter/
SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h
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 ),还是很快的,接下来从容器中提取编译好的文件并打包成压缩文件即可。
docker ps -a
docker cp 825054cad0ac:/root/workdir/subconverter ~/latestsubc/final
825054cad0ac 为第六步 docker ps -a 命令输出的列表中最后退出的容器 ID (CONTAINER ID)
cd ~/latestsubc/final && tar cvJf ~/latestsubc/final/subconverter.tar.xz subconverter
- 此时当前目录下的
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