零成本自建订阅转换保护你的订阅

前言

使用网上提供的订阅转换总觉得不安全,万一订阅泄露了就麻烦了。这次我搭建好了订阅转换的前端、后端,把经验分享出来。

搭建前端

准备工作

虚拟机Linux系统(以CentOS为例)

开始

安装必需应用

  1. 打开终端,输入su root运行,输入密码,以切换到root账户
  2. 更改yum源(自行百度)
  3. 运行yum update -y
    如果是第一次运行,时间会比较久,我花了将近半小时的时间
  4. 运行yum install -y curl wget sudo nodejs git
  5. 运行npm install -g cnpm --registry=https://registry.npm.taobao.org
  6. 运行cnpm install -g yarn

下载、安装sub-web

  1. 运行git clone https://github.com/CareyWang/sub-web.git,如果git未安装系统会有提示,按照提示安装即可
  2. 运行cd sub-web以进入该目录
  3. 运行yarn install以安装依赖
  4. 运行yarn serve以启动本地预览,在CentOS的Firefox浏览器中输入localhost:8080可以看到效果

优化sub-web

添加ACL4SSR规则

用文本编辑器打开/home/用户名/sub-web/src/views/Subconverter.vue文件,找到remoteConfig:,在[后面换行并插入一下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
{
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: "ACL4SSR 本地 默认版 分组比较全",
value: "config/ACL4SSR.ini"
},
{
label: "ACL4SSR_Mini 本地 精简版",
value: "config/ACL4SSR_Mini.ini"
},
{
label: "ACL4SSR_Mini_NoAuto.ini 本地 精简版+无自动测速",
value: "config/ACL4SSR_Mini_NoAuto.ini"
},
{
label: "ACL4SSR_Mini_Fallback.ini 本地 精简版+fallback",
value: "config/ACL4SSR_Mini_Fallback.ini"
},
{
label: "ACL4SSR_BackCN 本地 回国",
value: "config/ACL4SSR_BackCN.ini"
},
{
label: "ACL4SSR_NoApple 本地 无苹果分流",
value: "config/ACL4SSR_NoApple.ini"
},
{
label: "ACL4SSR_NoAuto 本地 无自动测速 ",
value: "config/ACL4SSR_NoAuto.ini"
},
{
label: "ACL4SSR_NoAuto_NoApple 本地 无自动测速&无苹果分流",
value: "config/ACL4SSR_NoAuto_NoApple.ini"
},
{
label: "ACL4SSR_NoMicrosoft 本地 无微软分流",
value: "config/ACL4SSR_NoMicrosoft.ini"
},
{
label: "ACL4SSR_WithGFW 本地 GFW列表",
value: "config/ACL4SSR_WithGFW.ini"
}
]
},

然后保存

若无法保存,在终端输入sudo chmod -R 777 /home/用户名/sub-web,以解锁该文件夹

修改默认后端地址

同样在该文件中找到backendOptions:,把http://127.0.0.1:25500/sub?改为你的后端地址。由于我后端准备部署在软路由上,所以我填http://192.168.1.2:25500/sub?。如果你准备在这台电脑上部署后端,那么填写loalhost:25500/sub?。请根据实际情况调整
当然这一步不用也没事,到时候手动填写就好了

打包前端

  1. 在终端里按【Ctrl+C】停止预览
  2. 输入yarn build,开始构建
  3. 构建完毕后,在sub-web目录下会出现一个dist目录,里面的文件就是打包后的前端网页文件
  4. 选中dist文件夹,拖动到Windows下
  5. 创建一个GitHub仓库,上传dist目录下的所有文件,然后在vercel或netlify上部署就好

搭建后端

准备工作

虚拟机Linux系统(以CentOS为例)、一台真实机器

开始

下载后端

依次执行

1
2
3
4
5
cd /root
wget https://github.com/tindy2013/subconverter/releases/download/v0.6.3/subconverter_linux64.tar.gz
tar -zxvf subconverter_linux64.tar.gz
cd subconverter
./subconverter

出现上图表明运行成功,按CTRL+C退出

为保证服务一直运行,安装screen

1
2
yum install screen -y #如用Ubuntu或Debian,改为apt install screen -y
screen -S subconverter

然后在新窗口中

1
2
cd /root/subconverter
./subconverter

保证正确运行后,按CRTL+ALT+A后台运行

你的后端地址为 http://你的IP:25500