前言

通常我们于机场获取订阅链接时都会直接导入进客户端进行使用,但是部分机场的订阅配置可能不支持你正在使用的客户端,通过订阅转换功能我们就能在Clash、V2ray、shadowrocket等客户端进行转换使用,此外,订阅转换允许你加入分流规则配置,极大地增加了代理客户端的分流体验。

开始搭建

准备工作

  • VPS一台并装好主流的系统(演示用CentOS)
  • 域名托管
  • 解析两个域名(一个用于前端,一个用于后端)

域名解析

首先我们解析两个域名到自己的vps

前端,我们使用sub.itleaf.xyz

后端,我们使用suc.itleaf.xyz

搭建Sub-web前端

更新系统并安装 Node 与 Yarn

依次运行下面四行代码,若是 Debian/Ubuntu 系统,请自行替换下面前两行命令中的 yumapt

yum update -y
yum install -y curl wget sudo nodejs git
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install -g yarn

命令执行完毕以后,请运行下面的代码查询 Node 与 Yarn 是否安装成功,若是成功会返回版本号,如下图。

node -v
yarn --version

安装 Sub-Web

拉取 sub-web 程序,并进入 sub-web 文件夹

cd /root
git clone https://github.com/CareyWang/sub-web.git
cd sub-web

在项目目录中安装构建依赖项

yarn install

使用 webpack 运行 Web 客户端以进行本地开发。

yarn serve

浏览器访问http://服务器ip:8080/即可预览sub-web

别忘了安全组放行8080端口号

修改默认后端地址及配置

我们需要找到 Subconverter.vue 文件修改一下默认后端地址

cd /root/sub-web/src/views

然后打开Subconverter.vue

vi Subconverter.vue

也可以可以使用宝塔面板或ftp工具修改,这里用宝塔 面板演示

大概在250行附近,找到backendOptions,将其改为你刚刚解析的后端的地址,需要加上https

此外你还可以修改并添加更多的后端地址,格式如下比如:

customBackend: {
          "我的专属后端": "https://suc.itleaf.xyz/sub?",
          "id9.cc (品云提供)": "https://v.id9.cc",
          "api.v1.mk(肥羊提供-四端八核负载)": "https://api.v1.mk/sub?",
        },
        backendOptions: [
          { value: "https://suc.itleaf.xyz/sub?" },
          { value: "https://v.id9.cc" },
          { value: "https://api.v1.mk/sub?" },
        ],

注意此处https://suc.itleaf.xyz/sub?中相较于你解析的域名suc.itleaf.xyz中需要加上/sub?
( 均为英文小写输入)

更换远程规则

远程规则可使订阅转换时附加上一系列分流规则
remoteConfig: [
          {
            label: "fl0w1ndの专属规则",
            options: [
              {
                label: "fl0w1ndの自用分组",
                value:
                  "https://raw.githubusercontent.com/fl0w1nd/clash/main/%E4%B8%AA%E4%BA%BA%E8%87%AA%E7%94%A8%E8%A7%84%E5%88%99/leaf.ini"
              },
              {
                label: "全分组-地区自动选择",
                value:
                  "https://cdn.jsdelivr.net/gh/lhl77/sub-ini@main/tsutsu-full-urltest.ini"
              },
              {
                label: "超精简分组-含国内分流",
                value:
                  "https://cdn.jsdelivr.net/gh/lhl77/sub-ini@main/tsutsu-mini-gfw.ini"
              },
            ]
          },
          {
            label: "ACL4SSR",
            options: [
              {
                label: "ACL4SSR_Online 默认版 分组比较全 (与Github同步)",
                value:
                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online.ini"
              },
              {
                label: "ACL4SSR_Online_AdblockPlus 更多去广告 (与Github同步)",
                value:
                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_AdblockPlus.ini"
              },
              {
                label: "ACL4SSR_Online_NoAuto 无自动测速 (与Github同步)",
                value:
                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_NoAuto.ini"
              },
              {
                label: "ACL4SSR_Online_NoReject 无广告拦截规则 (与Github同步)",
                value:
                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_NoReject.ini"
              },
              {
                label: "ACL4SSR_Online_Mini 精简版 (与Github同步)",
                value:
                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini.ini"
              },
              {
                label: "ACL4SSR_Online_Mini_AdblockPlus.ini 精简版 更多去广告 (与Github同步)",
                value:
                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_AdblockPlus.ini"
              },
              {
                label: "ACL4SSR_Online_Mini_NoAuto.ini 精简版 不带自动测速 (与Github同步)",
                value:
                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_NoAuto.ini"
              },
              {
                label: "ACL4SSR_Online_Mini_Fallback.ini 精简版 带故障转移 (与Github同步)",
                value:
                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_Fallback.ini"
              },
              {
                label: "ACL4SSR_Online_Mini_MultiMode.ini 精简版 自动测速、故障转移、负载均衡 (与Github同步)",
                value:
                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_MultiMode.ini"
              },
              {
                label: "ACL4SSR_Online_Full 全分组 重度用户使用 (与Github同步)",
                value:
                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full.ini"
              },
              {
                label: "ACL4SSR_Online_Full_NoAuto.ini 全分组 无自动测速 重度用户使用 (与Github同步)",
                value:
                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_NoAuto.ini"
              },
              {
                label: "ACL4SSR_Online_Full_AdblockPlus 全分组 重度用户使用 更多去广告 (与Github同步)",
                value:
                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_AdblockPlus.ini"
              },
              {
                label: "ACL4SSR_Online_Full_Netflix 全分组 重度用户使用 奈飞全量 (与Github同步)",
                value:
                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_Netflix.ini"
              }
            ]
          },
          {
            label: "特殊",
            options: [
              {
                label: "基础无规则",
                value:
                  "https://subconverter.oss-ap-southeast-1.aliyuncs.com/Rules/RemoteConfig/special/basic.ini"
              }
            ]
          }
        ]
      },

复制代码并替换从remoteConfig开始直到出现form:{间的内容

全部替换完后保存,刷新刚刚的预览网页,即可实时显示效果,确认自己的配置没有问题后,按 ctrl+c停止调试,然后输入以下代码构建程序

yarn build

随后会在 /root/sub-web目录下生成dist文件夹,网页信息就都在里面了。如果需要修改配置可以直接在该文件下改,或者删除改目录,然后 build 重建

宝塔搭建网站

点击添加站点,输入前端域名,其它设置如图所示

然后等待片刻网站创建完毕后,进入网站根目录,删除所有文件,user.ini 的防跨站文件不用管他

然后去 /root/sub-web/dist目录下复制所有文件粘贴到网站根目录

注意是dist文件夹内的文件不是dist整个目录

随后即可通过域名访问你的前端

后端搭建

安装并修改配置文件

放置于/root目录下,目前是0.7.2最新版本,若有更新请前往github项目Release查看并替换地址

cd /root
wget https://github.com/tindy2013/subconverter/releases/download/v0.7.2/subconverter_linux64.tar.gz
tar -zxvf subconverter_linux64.tar.gz

然后用 vi\ 宝塔 \finashell等文本编辑功能打开 /root/subconverter/pref.ini 文件

修改 api_access_tokenmanaged_config_prefixlisten

应该在第 6 行和第 130 行和 249 行

改为

api_access_token=                            #随意设置
managed_config_prefix=https://suc.itleaf.xyz #后端地址
listen=127.0.0.1                             ##这里改成 127.0.0.1 进行反代

创建服务进程并启动

接下来我们需要创建一个服务,让VPS每次重启或是开机自动运行后端程序

找到VPS目录 /etc/systemd/system,创建一个名为 sub.service 的文件

打开文件,贴入以下内容,保存。

[Unit]
Description=A API For Subscription Convert
After=network.target
 
[Service]
Type=simple
ExecStart=/root/subconverter/subconverter
WorkingDirectory=/root/subconverter
Restart=always
RestartSec=10
 
[Install]
WantedBy=multi-user.target

检查运行状态以及设置开机自启

systemctl daemon-reload
systemctl start sub
systemctl enable sub
systemctl status sub

显示active即为成功

宝塔反代

新建一个站点,域名为刚刚解析的后端域名,其它设置不变

提交后点击网站名,选择反向代理,添加如下所示的反向代理

随后访问你的后端域名,显示如下即可说明后端搭建成功

到此为此,前端与后端都搭建成功,现在访问前端即可进行订阅转换

最后修改:2022 年 11 月 07 日
如果觉得我的文章对你有用,请随意赞赏