對於使用科學上網的用戶來說,購買的機場可能不止一個,因此他們通常會擁有多個訂閱地址。如下圖所示:
一個機場對應一個訂閱地址會帶來以下弊端:
-
訂閱地址變更成本高
當機場更改訂閱地址時,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
配置密鑰,以防他人獲取您的訂閱信息。