部署 sub2clash 订阅转换

部署 sub2clash 订阅转换

Jackson Lv3

本文涉及网络配置相关内容,请合理使用,遵守相关法律法规。

一、项目介绍

sub2clash是一个功能强大的订阅转换工具,具有以下特性:

  • 开箱即用的规则、策略组配置
  • 自动根据节点名称按国家划分策略组
  • 支持多订阅合并
  • 自定义Rule Provider和Rule
  • 支持多种代理协议:
    • Shadowsocks
    • ShadowsocksR
    • Vmess
    • Vless (Clash.Meta)
    • Trojan
    • Hysteria (Clash.Meta)
    • Hysteria2 (Clash.Meta)
    • Socks5

二、系统要求

1
2
3
支持架构:amd64, arm64
内存要求:≥ 64MB
存储空间:≥ 10MB
1
2
3
操作系统:Linux (包括OpenWrt)
依赖组件:curl, screen
可选组件:cron (定时更新)

前期准备

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Debian/Ubuntu 系统
apt-get update
apt-get install screen curl cron -y

# CentOS/RHEL 系统
yum install screen curl cron -y

# OpenWrt/软路由系统
opkg update
opkg install screen curl coreutils-nohup bash
opkg install cron

# 如果是 ash shell,建议安装 bash
opkg install bash
chsh -s /bin/bash
  • screen (用于保持服务运行)
  • curl (用于下载文件)
  • cron (用于定时任务)
  • bash (推荐安装,提供更好的脚本兼容性)

安装步骤

1. 下载并安装 sub2clash

首先从 GitHub 下载最新版本的 sub2clash:
注意:请根据您的系统架构选择对应的版本(amd64/arm64)

1
2
3
4
5
6
# 下载发布包
wget https://github.com/nitezs/sub2clash/releases/download/v0.0.10/sub2clash_0.0.10_linux_arm64.tar.gz

# 解压文件
tar -xzf sub2clash_0.0.10_linux_arm64.tar.gz
cd sub2clash_0.0.10_linux_arm64

2. 启动转换服务

1
2
3
4
5
6
# 使用 screen 保持服务运行
screen -dmS sub2clash ./sub2clash

# 检查服务状态
screen -ls
# 应该看到 sub2clash 会话

3. 创建更新脚本

更新脚本内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
cat > /root/update-clash.sh << 'EOF'
#!/bin/sh

echo "开始更新订阅配置..."

cd /root/sub2clash/sub2clash_0.0.10_linux_arm64
if ! pgrep -f sub2clash > /dev/null; then
echo "启动 sub2clash 服务..."
screen -dmS sub2clash ./sub2clash
sleep 3
fi

echo "下载新配置..."
wget -O /etc/clash-meta/config.yaml "http://<your-server-ip>:8011/meta?sub=你的订阅链接"

if [ $? -eq 0 ]; then
echo "重启 Clash Meta..."
systemctl restart clash-meta

echo "更新完成!"
echo "面板地址: http://<your-server-ip>:9090/ui/"
else
echo "配置下载失败,请检查 sub2clash 服务是否正常运行"
fi
EOF

# 添加执行权限
chmod +x /root/update-clash.sh

4. 配置自启动服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cat > /etc/init.d/clash << 'EOF'
#!/bin/sh /etc/rc.common

START=99
USE_PROCD=1

start_service() {
/root/update-clash.sh
}
EOF

# 设置权限并启用
chmod +x /etc/init.d/clash
/etc/init.d/clash enable

5. 设置定时更新

1
2
3
# 添加定时任务(每天凌晨 3 点更新)
echo "0 3 * * * /root/update-clash.sh" >> /etc/crontabs/root
/etc/init.d/cron restart

三、配置说明

1. 环境变量配置

支持的环境变量
变量名说明默认值
PORT服务端口8011
META_TEMPLATEmeta模板文件名template_meta.yaml
CLASH_TEMPLATEclash模板文件名template_clash.yaml
REQUEST_RETRY_TIMESGet请求重试次数3
REQUEST_MAX_FILE_SIZE订阅文件最大大小(byte)1048576
CACHE_EXPIRE订阅缓存时间(秒)300
LOG_LEVEL日志等级(debug,info,warn,error)info
SHORT_LINK_LENGTH短链长度6

四、使用说明

1. 转换接口

支持以下转换格式:

  • Clash配置:http://<your-ip>:8011/clash?sub=订阅链接
  • Meta配置:http://<your-ip>:8011/meta?sub=订阅链接
  • 短链接:http://<your-ip>:8011/short?url=目标链接

注意事项

  1. 请勿在公网环境直接暴露服务端口
  2. 建议限制可访问的IP范围
  3. 请妥善保管订阅链接
  4. 首次部署后需手动执行一次更新脚本

常见问题

  • 检查端口占用:lsof -i:8011
  • 确认执行权限:chmod +x sub2clash
  • 查看日志:tail -f clash.log
  • 检查网络连接
  • 验证订阅有效性
  • 确认服务状态:ps aux | grep sub2clash
项目仓库
  • Title: 部署 sub2clash 订阅转换
  • Author: Jackson
  • Created at : 2025-02-16 10:05:34
  • Updated at : 2025-02-17 23:26:54
  • Link: https://839738.xyz/posts/295d573e.html
  • License: This work is licensed under CC BY-NC-SA 4.0.