将可能经常变化的订阅链接绑定到固定的链接上。如果订阅链接发生变化,就不用去多个设备上一个一个改了。
一个基于 Node.js 和 Vue.js 的 Clash/Surge 订阅代理管理工具,支持多订阅管理、代理转发和 Web 管理界面。
- 🔐 管理员认证 - 基于 HTTP Basic Auth 的安全访问控制
- 📝 多订阅管理 - 支持添加、编辑、删除多个订阅链接
- 🔄 代理转发 - 自动转发订阅内容,支持 Clash/Surge 格式
- 🎨 现代化 UI - 基于 Vue.js 的响应式 Web 界面
- 📱 移动端适配 - 支持手机和平板设备访问
- 🔗 一键复制 - 快速复制订阅链接到剪贴板
- 🐳 Docker 支持 - 提供 Dockerfile 便于容器化部署
- Node.js 16+
- npm 或 yarn
- 克隆项目
git clone https://github.com/lssb/sub_proxy.git
cd sub_proxy- 安装依赖
npm install- 启动服务
# 默认端口 3000
node server.js
# 或指定端口
PORT=5057 node server.js- 访问管理界面
http://your-server-ip:3000/admin
- 构建镜像
docker build -t subcover .- 运行容器
docker run -d -p 5057:3000 --name subcover subcover- 访问服务
http://your-server-ip:5057/admin
首次启动时,系统会自动创建默认配置文件 config/config.json:
{
"subscriptions": {},
"admin": {
"username": "your_admin_username",
"password": "your_admin_password"
}
}请务必修改默认的管理员账号密码!
- 访问管理页面
http://your-server-ip:3000/admin - 输入管理员账号密码
- 点击"➕ 添加新订阅"按钮
- 填写订阅名称和原始订阅链接
- 点击"添加订阅"保存
添加订阅后,系统会为每个订阅生成唯一的客户端链接:
http://your-server-ip:3000/sub?id=uuid
将生成的客户端订阅链接添加到你的 Clash 或 Surge 客户端:
- Clash: 在配置文件中添加订阅链接
- Surge: 在订阅管理中添加订阅链接
| 变量名 | 默认值 | 说明 |
|---|---|---|
PORT |
3000 |
服务监听端口 |
配置文件位于 config/config.json,包含:
subscriptions: 订阅列表(UUID -> 订阅信息)admin: 管理员账号信息
GET /api/get-urls
POST /api/update-url
Content-Type: application/json
{
"key": "订阅名称",
"targetUrl": "原始订阅链接",
"uuid": "可选,更新时提供"
}
POST /api/delete-url
Content-Type: application/json
{
"uuid": "订阅UUID"
}
GET /sub?id=uuid
- 所有管理操作都需要 HTTP Basic Auth 认证
- 建议在生产环境中使用 HTTPS
- 定期更换管理员密码
- 限制服务器防火墙端口访问
- 初始版本发布
- 支持多订阅管理
- Web 管理界面
- Docker 部署支持
欢迎提交 Issue 和 Pull Request!
MIT License
- Clash - 基于规则的跨平台代理工具
- Surge - 网络调试工具包
- Vue.js - 渐进式 JavaScript 框架
- Express.js - Node.js Web 应用框架