日度归档:2022年1月11日

玩转订阅地址转换神器 subconverter,含部分进阶参数设置 2022-1-11

更新记录 
+ 2022-01-11 编辑文章
+ 2023-11-22 更新文章,增加对于URL-TEST参数URL的修改,章节七

需求描述

在本篇文章中,会教会大家配置一个自己的subconverter,订阅地址转换,用自己配置的,也就不用担心自己购买的梯子被无良的人窃取使用了。

时间线

2022-1-11 完成基础配置,基础的订阅转换的讲解,视频地址,

2022-1-15 完成更新,如何自己使用项目源码,进行Linux x86_64平台的编译。

项目地址 https://github.com/tindy2013/subconverter

本篇文章发布的时候是2022-1-11,当前最新的release发布版本是0.7.1

https://github.com/tindy2013/subconverter/releases/tag/v0.7.1

第一章、基础配置,及订阅转换的讲解

// 获取对应平台版本的压缩包,我这里环境是linux x64的,就下载对应版本,不必root用户



user@server:~$ mkdir ./subc
user@server:~$ cd subc
user@server:~$ wget https://github.com/tindy2013/subconverter/releases/download/v0.7.1/subconverter_linux64.tar.gz
user@server:~$ tar -zxvf subconverter_linux64.tar.gz
user@server:~$ cd subconverter
// 常驻后台,启动服务
user@server:~$ nohup ./subconverter &
user@server:~$ ss -tnl | grep 25500
// 能看到25500的端口监听就对了
user@server:~$ 
// 服务器上,这个正常进程在,就可以了
// 通用的API接口参数格式
http://127.0.0.1:25500/sub?target=%TARGET%&url=%URL%&config=%CONFIG%


// 刚刚的服务端启动好了后,假设102.199.166.159为刚刚搭建subconverter的服务器公网地址,那么,普通地址转换为其他客户端地址,典型示例样例如下
http://102.199.166.159:25500/sub?target=clash&url=机场普通订阅地址的URLEncode后的字符串
http://102.199.166.159:25500/sub?target=surge&ver=4&url=机场普通订阅地址的URLEncode后的字符串

将上面的对应的,添加到对应客户端即可!!

第二章,修改subconverter的监听端口

修改程序目录下的 pref.toml
如果需要修改为本地监听,修改listen,从'0.0.0.0'到'127.0.0.1',设置为本地的目的,主要是方便后续用Nginx之类的给它套HTTPS,连接更安全,你们可以不修改这个。
如果需要修改监听端口,修改port,从25500到你想要设置的端口(端口需要未被占用的)
[server]
listen = "127.0.0.1"  
port = 6419
serve_file_root = "web"预留位置,后面讲解

第三章,适配Clash新的内核

在2022-01-02附近,Dreamacro发布的新版的Clash内核,v1.9.0

https://github.com/Dreamacro/clash/releases

新版clash v1.9.0内核的配置文件,格式已有变化,之前全部版本的配置文件,在新版内核的各平台客户端上,已无法正常使用线路。我们也无法直接用subconverter v0.7.1版本进行直接订阅地址转换的适配

使用subconverter适配 clash v1.9.0内核的过程

https://github.com/tindy2013/subconverter/issues/442

查看修改更新的内容:

https://github.com/tindy2013/subconverter/commit/6e3324be50ecd6d7484c38722db572ff288415ef

获取新版clash v1.9.0内核的适配 6e3324be50ecd6d7484c38722db572ff288415ef

https://github.com/tindy2013/subconverter/actions

通过观察作者的修改,其实只需要替换一个文件 src/generator/config/subexport.cpp

https://github.com/tindy2013/subconverter/blob/master/src/generator/config/subexport.cpp

  1. 可直接从action里下载编译好的版本 by zhongfly
    相关链接:https://github.com/tindy2013/subconverter/actions/workflows/build.yml
  2. 可选用原作者提供的docker项目
  3. 可选自己根据项目源码进行编译

2022-1-15 更新:作者已经将这个改进合并到主线,故而,直接自己下载该项目的全部源码,整体编译一下即可。

自己编译生成对应平台的subconverter程序

# 执行编译的过程,系统OS推荐: Debian 10 / Ubuntu 20.04
# 自己的海外VPS上面编译,可以减少异常
# 我的VPS只有1核心1GB内存,故而,略微修改了编译脚本

apt-get update
apt-get install git
mkdir -p /root/src
cd /root/src
git clone https://github.com/tindy2013/subconverter.git
sed -i 's/j4/j1/g' /root/src/subconverter/scripts/build.alpine.release.sh
sed -i 's/j2/j1/g' /root/src/subconverter/scripts/build.alpine.release.sh
docker pull multiarch/alpine:amd64-latest-stable
docker run -v /root/src/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"

完成编译后,会在该目录下,生成subconverter的目录,打包传输到需要运行subconverter的服务器,运行即可!!!

实在懒的动手的,就等原作者下次正式版本的release更新吧。

第四章,适配TikTok的规则

修改程序目录下的 rules/DivineEngine/Surge/Ruleset/StreamingMedia/Streaming.list
修改TikTok段落就对应的规则可以,如果是其他流媒体,也是类似的操作。
# > TikTok
USER-AGENT,TikTok*
DOMAIN-SUFFIX,akamaized.net
DOMAIN-SUFFIX,app-measurement.com
DOMAIN-SUFFIX,appsflyer.com
DOMAIN-SUFFIX,byteoversea.com
DOMAIN-SUFFIX,googleapis.com
DOMAIN-SUFFIX,ibytedtos.com
DOMAIN-SUFFIX,ibyteimg.com
DOMAIN-SUFFIX,ipstatp.com
DOMAIN-SUFFIX,muscdn.com
DOMAIN-SUFFIX,musical.ly
DOMAIN-SUFFIX,snapkit.com
DOMAIN-SUFFIX,tik-tokapi.com
DOMAIN-SUFFIX,tiktokcdn.com
DOMAIN-SUFFIX,tiktokcdn-us.com
DOMAIN-SUFFIX,tiktok.com
DOMAIN-SUFFIX,tiktokv.com
DOMAIN-KEYWORD,-tiktokcdn-com

第五章,WEB前端搭配

见地址 https://dasmz.com/?p=1289

第六章,增加对steam规则的适配 2022-02-18

修改 rules/DivineEngine/Surge/Ruleset/China.list

删除
# > Steam
DOMAIN-SUFFIX,steamcontent.com
DOMAIN-SUFFIX,steampowered.com
DOMAIN-SUFFIX,steamstatic.com


修改 rules/DivineEngine/Surge/Ruleset/StreamingMedia/Streaming.list

增加
# > Steam
DOMAIN-SUFFIX,steamcontent.com
DOMAIN-SUFFIX,steampowered.com
DOMAIN-SUFFIX,steamstatic.com

章节七,增加对URL-TEST参数的修改

近日发现猫咪的URL-TEST不工作了,排查发现,是 http://www.gstatic.com/generate_204 有点问题,如果是这样,那就好办了,无非就是不用谷歌的这个地址呗,直接从外面找一个 http://xx.xx.xx.xx/ 这样的IP:80类似格式,可以通的HTTP/WEB地址,修改到配置文件即可

修改配置文件 ./snippets/groups.toml

< url = "http://23.xx.xx.18/"
---
> url = "http://www.gstatic.com/generate_204"

修改完配置文件,直接重启一下subconverter即可。

= = = = = = 分割线 = = = = = =

v-000059
v-000060