一什么是 Sub Store?
Sub Store 是一款专注于订阅转换与节点管理的开源工具,广泛应用于 Clash、Surge、Quantumult X 等代理客户端生态中。它的核心价值在于:
- 将各类机场订阅链接统一转换为目标客户端所需的配置格式
- 支持对节点进行分组、过滤、重命名、排序等精细化管理
- 提供 Web UI,操作直观,无需手动编辑 YAML / JSON
- 自建部署后永久可用,不依赖第三方转换服务,隐私更有保障
相比在线转换服务,自建 Sub Store 的最大优势是稳定性与可控性——订阅不会因为第三方服务关闭而失效。
二部署前的环境准备
本文以 Docker 方式部署为主线,这也是目前最简单、最推荐的方式。在开始之前,请确认以下条件:
2.1 服务器要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Ubuntu 20.04 / 22.04 / Debian 11+(推荐) |
| 内存 | 512MB 以上(建议 1GB+) |
| Docker 版本 | Docker 20.10+ 及 Docker Compose v2 |
| 开放端口 | 3000(Sub Store 默认端口,可自定义) |
2.2 安装 Docker(已安装可跳过)
执行以下命令,在 Ubuntu / Debian 上一键安装 Docker:
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER && newgrp docker安装完成后执行 docker --version 验证,输出版本号即为成功。
三一键 Docker 部署 Sub Store
Sub Store 官方提供了 Docker 镜像,整个部署过程只需三步,5 分钟内即可完成。
3.1 拉取镜像并启动容器
直接运行以下命令,Docker 会自动拉取最新镜像并后台启动:
docker run -d \
--name sub-store \
--restart always \
-p 3000:3000 \
-v $HOME/sub-store-data:/opt/app/data \
xream/sub-store参数说明:
-d:后台运行(守护进程模式)--restart always:服务器重启后自动拉起容器-p 3000:3000:将容器内 3000 端口映射到宿主机 3000 端口-v:数据持久化,订阅配置保存在宿主机~/sub-store-data目录
3.2 使用 Docker Compose(推荐生产环境)
新建目录并创建 docker-compose.yml 文件:
mkdir -p ~/sub-store && cd ~/sub-store
nano docker-compose.yml写入以下内容:
version: '3.8'
services:
sub-store:
image: xream/sub-store:latest
container_name: sub-store
restart: always
ports:
- '3000:3000'
volumes:
- ./data:/opt/app/data保存后执行启动命令:
docker compose up -d使用 Compose 文件的好处是便于版本管理和后续升级维护,强烈推荐。
3.3 验证部署状态
查看容器运行状态:
docker ps | grep sub-store若输出中显示 Up xx seconds/minutes,说明容器运行正常。在浏览器中访问:
http://你的服务器IP:3000能看到 Sub Store 的 Web 管理界面即部署成功。
四访问与基本安全配置
4.1 设置访问 Token(强烈建议)
默认情况下,Sub Store 无鉴权保护,任何人知道地址都可以访问管理界面。建议通过环境变量设置 Token:
docker run -d \
--name sub-store \
--restart always \
-p 3000:3000 \
-e SUB_STORE_FRONTEND_BACKEND_PATH=/你的随机字符串 \
-v $HOME/sub-store-data:/opt/app/data \
xream/sub-store请将「你的随机字符串」替换为一段随机字符,例如 /a8f3k2x9。此路径即为访问密钥,请妥善保管。
4.2 配合 Nginx 反向代理(可选)
如需绑定域名并启用 HTTPS,可在 Nginx 中添加如下配置:
server {
listen 443 ssl;
server_name sub.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}配合 Certbot 申请免费 SSL 证书,可实现全程 HTTPS 访问,安全性大幅提升。
五添加订阅与对接 Clash / Surge
5.1 在 Web UI 中添加订阅
打开 Sub Store Web 界面后,点击右上角「+」新建订阅,将机场的订阅链接粘贴进去,支持以下操作:
- 对节点按关键词过滤(如只保留「香港」「日本」节点)
- 批量重命名,统一节点命名风格
- 合并多个机场订阅为一个统一链接
- 设置地区分组,生成规则集
5.2 生成并使用转换链接
配置完成后,Sub Store 会生成一条专属的转换订阅 URL,格式如下:
http://你的IP:3000/download/你的订阅名称?target=clashtarget 参数对应目标客户端,常用值包括:
| 参数值 | 对应客户端 |
|---|---|
clash | Clash / Clash Meta |
surge | Surge 4 |
quanx | Quantumult X |
loon | Loon |
将此 URL 填入对应客户端的订阅地址栏,即可正常使用。
六常见问题排查
Q1部署后浏览器无法访问页面?
- 检查服务器安全组 / 防火墙是否开放了 3000 端口
- 执行
docker logs sub-store查看容器日志,确认无报错 - 确认
docker ps输出中容器状态为Up
Q2订阅转换后节点为空?
- 确认原始订阅链接可以正常访问(在浏览器中直接打开测试)
- 检查过滤规则是否过于严格,导致所有节点被过滤
- 部分机场使用了特殊编码格式,尝试在 Sub Store 中切换解析方式
Q3如何升级 Sub Store 到最新版本?
docker pull xream/sub-store:latest
docker stop sub-store && docker rm sub-store- 然后重新执行第三节的启动命令即可
- 数据目录已挂载到宿主机,升级不会丢失配置
总结
Sub Store 的 Docker 部署流程可以简化为三步:安装 Docker → 一条命令拉起容器 → 浏览器访问 Web UI。整个过程无需编译、无需配置复杂环境,对有基础 Linux 操作经验的用户来说非常友好。
相比依赖在线转换服务,自建的 Sub Store 不仅更稳定,还能充分利用其节点管理能力,实现更精细的订阅定制。如果你长期使用多个机场,这套方案值得一次性花时间部署好。
本文所有命令均在 Ubuntu 22.04 + Docker 24.x 环境下验证通过,如遇系统差异请参考 Sub Store 官方 GitHub 文档。


