sub2api 是一个轻量级的订阅转换 API 服务,主要用于将各种订阅格式进行转换和统一管理。它基于 subconverter 核心,提供简单易用的 RESTful API 接口,方便用户快速搭建自己的订阅转换服务。
确保服务器已安装 Docker:
# 检查 Docker 是否安装
docker --version
# 如未安装,执行以下命令
curl -fsSL https://get.docker.com | bash
docker pull tindy2013/sub2api:latest
mkdir -p /opt/sub2api/config
mkdir -p /opt/sub2api/logs
docker run -d \
--name sub2api \
-p 8080:8080 \
-v /opt/sub2api/config:/app/config \
-v /opt/sub2api/logs:/app/logs \
--restart always \
tindy2013/sub2api:latest
参数说明:
-p 8080:8080:映射端口(可根据需要修改)-v:挂载配置和日志目录--restart always:容器自动重启# 查看容器状态
docker ps | grep sub2api
# 测试 API 是否正常
curl http://localhost:8080/health
返回 {"status":"ok"} 表示部署成功。
git clone https://github.com/tindy2013/sub2api.git
cd sub2api
# 安装 Python 依赖
pip install -r requirements.txt
编辑 config/config.yaml:
server:
port: 8080
host: 0.0.0.0
subconverter:
path: /path/to/subconverter
log:
level: info
file: logs/app.log
# 前台运行
python main.py
# 后台运行(推荐)
nohup python main.py > logs/app.log 2>&1 &
创建服务文件 /etc/systemd/system/sub2api.service:
[Unit]
Description=sub2api Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/sub2api
ExecStart=/usr/bin/python3 main.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
启动服务:
systemctl daemon-reload
systemctl enable sub2api
systemctl start sub2api
systemctl status sub2api
curl http://your-server:8080/health
curl -X POST http://your-server:8080/convert \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/subscription",
"target": "clash",
"rules": "default"
}'
curl http://your-server:8080/targets
| 变量名 | 说明 | 默认值 |
|---|---|---|
PORT |
服务端口 | 8080 |
HOST |
监听地址 | 0.0.0.0 |
LOG_LEVEL |
日志级别 | info |
CONFIG_PATH |
配置文件路径 | ./config |
编辑 config/config.yaml 可配置:
解决方案:
# 查看占用端口的进程
lsof -i :8080
# 修改配置中的端口或终止占用进程
kill -9 <PID>
解决方案:
# 查看容器日志
docker logs sub2api
# 检查挂载目录权限
chmod -R 755 /opt/sub2api
解决方案:
server {
listen 443 ssl;
server_name sub2api.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
cache:
enabled: true
ttl: 3600 # 缓存 1 小时
对于高并发场景,可在前端配置 CDN 加速。
多实例部署时,使用 Nginx 或 HAProxy 进行负载均衡。
# Docker 方式
docker logs -f sub2api
# 源码部署
tail -f logs/app.log
#!/bin/bash
RESPONSE=$(curl -s http://localhost:8080/health)
if [[ $RESPONSE == *'"status":"ok"'* ]]; then
echo "Service is healthy"
exit 0
else
echo "Service is down"
exit 1
fi
sub2api 是一个强大且易用的订阅转换 API 服务,通过简单的部署即可实现:
无论是个人使用还是团队部署,sub2api 都是一个值得考虑的选择。
项目地址:https://github.com/tindy2013/sub2api
文档:参考官方 GitHub 仓库
社区支持:欢迎提交 Issue 和 PR
希望本教程对你有所帮助!如有问题,欢迎在评论区留言讨论。