Files
sub2clash/README.md
2025-06-12 02:17:31 +10:00

123 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# sub2clash
将订阅链接转换为 Clash、Clash.Meta 配置
[预览](https://www.nite07.com/sub)
## 特性
- 开箱即用的规则、策略组配置
- 自动根据节点名称按国家划分策略组
- 多订阅合并
- 自定义 Rule Provider、Rule
- 支持多种协议
- Shadowsocks
- ShadowsocksR
- Vmess
- Vless Clash.Meta
- Trojan
- Hysteria Clash.Meta
- Hysteria2 Clash.Meta
- Socks5
- Anytls Clash.Meta
## 使用
### 部署
- [docker compose](./docker-compose.yml)
- 运行[二进制文件](https://github.com/bestnite/sub2clash/releases/latest)
### 配置
支持多种配置方式,按优先级排序:
1. **配置文件**支持多种格式YAML、JSON、TOML、INI按以下优先级搜索
- `config.yaml` / `config.yml`
- `config.json`
- `config.toml`
- `config.ini`
- `sub2clash.yaml` / `sub2clash.yml`
- `sub2clash.json`
- `sub2clash.toml`
- `sub2clash.ini`
2. **环境变量**:使用 `SUB2CLASH_` 前缀,例如 `SUB2CLASH_PORT=8080`
3. **默认值**:内置默认配置
| 配置项 | 环境变量 | 说明 | 默认值 |
| --------------------- | ------------------------------- | --------------------------------------- | -------------- |
| port | SUB2CLASH_PORT | 服务端口 | `8011` |
| meta_template | SUB2CLASH_META_TEMPLATE | 默认 meta 模板 URL | [默认模板链接] |
| clash_template | SUB2CLASH_CLASH_TEMPLATE | 默认 clash 模板 URL | [默认模板链接] |
| request_retry_times | SUB2CLASH_REQUEST_RETRY_TIMES | 请求重试次数 | `3` |
| request_max_file_size | SUB2CLASH_REQUEST_MAX_FILE_SIZE | 请求文件最大大小byte | `1048576` |
| cache_expire | SUB2CLASH_CACHE_EXPIRE | 订阅缓存时间(秒) | `300` |
| log_level | SUB2CLASH_LOG_LEVEL | 日志等级:`debug`,`info`,`warn`,`error` | `info` |
| short_link_length | SUB2CLASH_SHORT_LINK_LENGTH | 短链长度 | `6` |
#### 配置文件示例
参考示例文件:
- [config.example.yaml](./config.example.yaml) - YAML 格式
- [config.example.json](./config.example.json) - JSON 格式
- [config.example.toml](./config.example.toml) - TOML 格式
**YAML 格式** (`config.yaml`):
```yaml
port: 8011
meta_template: "https://example.com/meta.yaml"
clash_template: "https://example.com/clash.yaml"
request_retry_times: 5
request_max_file_size: 2097152 # 2MB
cache_expire: 600 # 10 minutes
log_level: "debug"
short_link_length: 8
```
**JSON 格式** (`config.json`):
```json
{
"port": 8011,
"meta_template": "https://example.com/meta.yaml",
"clash_template": "https://example.com/clash.yaml",
"request_retry_times": 5,
"request_max_file_size": 2097152,
"cache_expire": 600,
"log_level": "debug",
"short_link_length": 8
}
```
**TOML 格式** (`config.toml`):
```toml
port = 8011
meta_template = "https://example.com/meta.yaml"
clash_template = "https://example.com/clash.yaml"
request_retry_times = 5
request_max_file_size = 2097152
cache_expire = 600
log_level = "debug"
short_link_length = 8
```
### API
[API 文档](./API.md)
### 模板
可以通过变量自定义模板中的策略组代理节点
具体参考下方默认模板
- `<all>` 为添加所有节点
- `<countries>` 为添加所有国家策略组
- `<地区二位字母代码>` 为添加指定地区所有节点,例如 `<hk>` 将添加所有香港节点
#### 默认模板
- [Clash](./templates/template_clash.yaml)
- [Clash.Meta](./templates/template_meta.yaml)