对于使用科学上网的用户来说,购买的机场可能不止一个,因此他们通常会拥有多个订阅地址。如下图所示:
一个机场对应一个订阅地址会带来以下弊端:
-
订阅地址变更成本高
当机场更改订阅地址时,Clash 客户端需要手动更新订阅地址。如果同时使用多个订阅地址,修改的工作量会成倍增加。尤其当订阅在多个设备上使用时,每台设备都需要单独修改,操作更加繁琐。 -
订阅切换不便
Clash 客户端每次只能选择一个订阅,尽管不同订阅可能有更优质的节点,但需要切换订阅才能使用,过程较为麻烦且效率低下。
针对以上问题,我们迫切需要一种方案,能够将多个订阅中的节点合并到一个订阅中。这样,用户只需面对一个统一的订阅地址即可使用,极大简化操作。
Sub-Store#
Sub-Store 正是为了解决这一问题而设计的一款工具。它可以将多个订阅中的节点合并到一个统一的订阅中,用户只需使用这个统一的订阅地址即可方便地管理和使用所有节点。通过 Sub-Store,大幅降低了订阅地址变更的复杂性,同时无需频繁切换订阅,轻松实现最优节点的灵活使用。
搭建#
准备目录结构#
.
├── docker-compose.yaml
├── .env
└── redis
└── redis.conf
.env
#容器名称前缀
COMPOSE_PROJECT_NAME=sub-store
#容器数据根目录
PROJECT_HOME=/opt/sub-store
#订阅定时更新周期
SUB_STORE_BACKEND_SYNC_CRON='55 23 * * *'
#安全密钥(勿泄露)
SUB_STORE_FRONTEND_BACKEND_PATH=/h1j2k3l4m5n6o7p8q9r0s1t2u3v
.redis.conf
# Redis configuration file example
# Enable RDB persistence
save 900 1
save 300 10
save 60 10000
# Enable AOF persistence
appendonly yes
docker-compose.yaml
假设我们的服务器 IP 为:198.22.145.117
services:
# 订阅转换服务
sub:
image: stilleshan/sub
restart: always
environment:
- API_URL=http://198.22.145.117:13001
- SHORT_URL=http://198.22.145.117:13003
- SITE_NAME=SigeShuo
ports:
- "13001:80"
# Sub-Store 订阅管理服务
app:
image: xream/sub-store
restart: always
environment:
- SUB_STORE_BACKEND_SYNC_CRON=${SUB_STORE_BACKEND_SYNC_CRON}
- SUB_STORE_FRONTEND_BACKEND_PATH=${SUB_STORE_FRONTEND_BACKEND_PATH}
ports:
- "13002:3001"
volumes:
- ${PROJECT_HOME}/data:/opt/app/data
# 短链服务
myurls:
image: stilleshan/myurls:latest
restart: always
environment:
- MYURLS_DOMAIN=198.22.145.117:13003
- MYURLS_PROTO=http
volumes:
- ${PROJECT_HOME}/myurls/logs:/app/logs
ports:
- "13003:8080"
depends_on:
- redis
# 短链缓存服务
redis:
image: redis:latest
restart: always
volumes:
- ${PROJECT_HOME}/redis:/data
- ./redis/redis.conf:/usr/local/etc/redis/redis.conf
command: [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
# 容器自己更新监听服务
watchtower:
image: containrrr/watchtower
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# docker-compose.yaml 同级目录下执行以下命令即可部署
docker compose up -d
如果使用域名或 nginx 反代,仅需要变更以上配置中的 IP 调整为域名即可。
使用#
Sub-Store#
Sub-Store 访问地址:
http://198.22.145.117:13002?api=http://198.22.145.117:13002/h1j2k3l4m5n6o7p8q9r0s1t2u3v
h1j2k3l4m5n6o7p8q9r0s1t2u3v
这是在 .env 文件中配置的安全密钥,您可以随意修改。当密钥更新后,以上地址中的密钥需要替换为更新后的值。
添加单条订阅#
添加组合订阅#
Subconverter 订阅转换#
首先拷贝 Sub-Store 中的聚合订阅地址
通过 Subconverter 转换成含分组的订阅地址
Clash 导入订阅转换地址#
导入 Subconverter 转换后的订阅地址,也可以使用短地址生成的短链接
总结:
在使用 Sub-Store 管理多个订阅地址时,您只需在 Sub-Store 后台进行增、删、改操作,或在聚合订阅管理中修改包含的单个订阅信息,即可轻松管理 Clash 客户端的节点信息。Clash 客户端只需在需要时进行刷新,变更即可生效,无需手动调整 Clash 配置。
请注意,当 Sub-Store 部署在公网时,务必保护
.env
文件中的SUB_STORE_FRONTEND_BACKEND_PATH
配置密钥,以防他人获取您的订阅信息。