- Deleted cached Vue.js and source map files from the documentation. - Updated template variable formatting in mobile logs, subscription management, and authentication control
285 lines
8.1 KiB
Markdown
285 lines
8.1 KiB
Markdown
<div v-pre>
|
|
|
|
# 订阅配置
|
|
|
|
配置订阅系统的全局设置和管理客户端应用的订阅模板。订阅配置决定用户如何获取和使用代理节点信息。
|
|
|
|
## 页面组成
|
|
|
|
订阅配置页面分为两大模块:
|
|
|
|
### 1. 订阅配置 (Subscription Configuration)
|
|
|
|
位于页面顶部的卡片,配置订阅系统的全局设置。
|
|
|
|
**配置选项:**
|
|
|
|
**单订阅模式 (Single Subscription Mode)**
|
|
- 类型: 开关
|
|
- 功能: 限制用户只能拥有一个激活的订阅
|
|
- 说明: 不影响已存在的订阅,仅对新订阅生效
|
|
- 使用场景: 控制订阅数量,防止账号共享
|
|
|
|
**泛域名解析 (Wildcard Resolution)**
|
|
- 类型: 开关
|
|
- 功能: 启用订阅的泛域名解析
|
|
- 说明: 允许使用通配符域名访问订阅链接
|
|
- 示例: `*.example.com` 可匹配 `sub1.example.com`, `sub2.example.com`
|
|
|
|
**订阅路径 (Subscription Path)**
|
|
- 类型: 文本输入
|
|
- 功能: 自定义订阅端点的 URL 路径
|
|
- 格式: `/your-custom-path`
|
|
- 说明: 系统重启后性能更佳
|
|
- 示例: `/api/v1/subscribe` 或 `/sub`
|
|
|
|
**订阅域名 (Subscription Domain)**
|
|
- 类型: 多行文本
|
|
- 功能: 自定义订阅链接的域名
|
|
- 格式: 每行一个域名
|
|
- 示例:
|
|
```
|
|
example.com
|
|
www.example.com
|
|
sub.example.com
|
|
```
|
|
- 使用场景:
|
|
- 使用 CDN 域名
|
|
- 多域名负载均衡
|
|
- 域名备份
|
|
|
|
**User-Agent 限制**
|
|
- 类型: 开关
|
|
- 功能: 启用基于 User-Agent 的访问控制
|
|
- 说明: 只允许白名单中的客户端访问订阅
|
|
- 使用场景: 防止爬虫、限制非法访问
|
|
|
|
**User-Agent 白名单**
|
|
- 类型: 多行文本
|
|
- 功能: 配置允许访问订阅的 User-Agent 列表
|
|
- 格式: 每行一个 User-Agent
|
|
- 示例:
|
|
```
|
|
ClashX
|
|
ClashForAndroid
|
|
Clash-verge
|
|
```
|
|
- 说明: 已配置的应用 User-Agent 会自动包含在内
|
|
|
|
### 2. 客户端管理 (Client Management)
|
|
|
|
管理不同代理客户端的订阅模板和下载链接。
|
|
|
|
**表格列信息:**
|
|
- **默认 (Default)**: 开关按钮,设置为默认客户端
|
|
- 默认客户端在订阅页面优先显示
|
|
- 同时只能有一个默认客户端
|
|
- **客户端名称 (Client Name)**: 显示客户端图标和名称
|
|
- **User-Agent**: 客户端标识符,用于识别不同客户端
|
|
- **输出格式 (Output Format)**: 订阅内容的格式类型
|
|
- Base64: Base64 编码格式
|
|
- YAML: YAML 配置文件格式
|
|
- JSON: JSON 数据格式
|
|
- CONF: 配置文件格式
|
|
- Plain Text: 纯文本格式
|
|
- **支持平台 (Supported Platforms)**: 显示该客户端支持的操作系统
|
|
- Windows, macOS, Linux, iOS, Android, HarmonyOS
|
|
- **描述 (Description)**: 客户端详细说明
|
|
|
|
**操作功能:**
|
|
- **预览 (Preview)**: 查看生成的订阅模板内容
|
|
- Base64 格式显示原始内容和解码内容
|
|
- 其他格式直接显示内容
|
|
- 支持语法高亮
|
|
- **编辑 (Edit)**: 修改客户端配置
|
|
- **删除 (Delete)**: 删除客户端配置
|
|
- **批量删除**: 选中多个客户端后批量删除
|
|
|
|
**顶部工具栏:**
|
|
- **Template Repo 链接**: 跳转到 GitHub 模板仓库
|
|
- 地址: https://github.com/perfect-panel/subscription-template
|
|
- 提供订阅模板示例和文档
|
|
- **添加 (Add)**: 创建新的客户端配置
|
|
|
|
## 客户端表单
|
|
|
|
点击"添加 (Add)"或"编辑 (Edit)"时打开的侧边栏表单,分为三个标签页。
|
|
|
|
### 基本信息 (Basic Info)
|
|
|
|
**图标 (Icon)**
|
|
- 类型: URL 输入 + 上传按钮
|
|
- 格式: 图片 URL 或 Base64 编码
|
|
- 示例: `https://example.com/icon.png`
|
|
- 功能: 支持直接上传图片,自动转换为 Base64
|
|
|
|
**名称 (Name)** - 必填
|
|
- 类型: 文本输入
|
|
- 功能: 客户端显示名称
|
|
- 示例: `Clash for Windows`, `V2rayN`
|
|
|
|
**User-Agent** - 必填
|
|
- 类型: 文本输入
|
|
- 功能: 客户端标识符,用于区分不同客户端
|
|
- 示例: `Clash`, `V2rayN`, `ClashX`
|
|
- 重要: 必须与客户端实际发送的 User-Agent 匹配
|
|
|
|
**描述 (Description)** - 可选
|
|
- 类型: 多行文本
|
|
- 功能: 客户端详细说明
|
|
- 内容: 客户端特性、使用说明等
|
|
|
|
### 模板 (Templates)
|
|
|
|
**输出格式 (Output Format)** - 必填
|
|
- 类型: 下拉选择
|
|
- 选项:
|
|
- **Base64**: 传统订阅格式,适用于大多数客户端
|
|
- **YAML**: Clash 系列客户端配置格式
|
|
- **JSON**: JSON 格式配置,适用于支持 JSON 的客户端
|
|
- **CONF**: 配置文件格式,如 Shadowrocket
|
|
- **Plain Text**: 纯文本格式
|
|
|
|
**Scheme** - 可选
|
|
- 类型: 文本输入
|
|
- 功能: 自定义 URL Scheme
|
|
- 示例: `clash://`, `vmess://`
|
|
- 用途: 一键导入订阅
|
|
|
|
**模板 (Template)** - 必填
|
|
- 类型: Go Template 编辑器
|
|
- 功能: 使用 Go 模板语法编写订阅内容
|
|
- 支持: 语法高亮、代码补全
|
|
- 变量:
|
|
- <code v-pre>{{.SiteName}}</code>: 网站名称
|
|
- <code v-pre>{{.SubscribeName}}</code>: 订阅名称
|
|
- <code v-pre>{{.Proxies}}</code>: 节点数组
|
|
- <code v-pre>{{.UserInfo}}</code>: 用户信息
|
|
|
|
**模板变量说明**
|
|
|
|
详细的模板变量参考请查看:[模板变量参考](./subscribe-variables.md)
|
|
|
|
用户信息 (UserInfo) 字段:
|
|
|
|
- `Password` - 用户密码
|
|
- `ExpiredAt` - 过期时间
|
|
- `Download` - 已下载流量
|
|
- `Upload` - 已上传流量
|
|
- `Traffic` - 总流量
|
|
- `SubscribeURL` - 订阅链接
|
|
|
|
### 下载链接 (Downloads)
|
|
|
|
配置客户端的下载地址,支持多平台:
|
|
|
|
- **Windows**: Windows 平台下载链接
|
|
- **macOS**: macOS 平台下载链接
|
|
- **Linux**: Linux 平台下载链接
|
|
- **iOS**: iOS 平台下载链接
|
|
- **Android**: Android 平台下载链接
|
|
- **HarmonyOS**: 鸿蒙系统下载链接
|
|
|
|
每个平台都是可选的,填写后会在客户端列表中显示对应的平台徽章。
|
|
|
|
## 使用场景
|
|
|
|
### 场景 1: 配置 Clash 客户端
|
|
|
|
1. 点击"添加 (Add)"
|
|
2. 基本信息:
|
|
- 名称: `Clash for Windows`
|
|
- User-Agent: `Clash`
|
|
- 图标: 上传 Clash 图标
|
|
3. 模板:
|
|
- 输出格式: 选择 `YAML`
|
|
- 模板: 编写 Clash YAML 配置模板
|
|
4. 下载链接:
|
|
- Windows: `https://github.com/Fndroid/clash_for_windows_pkg/releases`
|
|
- macOS: `https://github.com/yichengchen/clashX/releases`
|
|
5. 点击"确认 (Confirm)"
|
|
|
|
### 场景 2: 配置传统 Base64 订阅
|
|
|
|
1. 点击"添加 (Add)"
|
|
2. 基本信息:
|
|
- 名称: `Universal`
|
|
- User-Agent: `*`
|
|
3. 模板:
|
|
- 输出格式: 选择 `Base64`
|
|
- 模板: 编写标准 vmess/vless URI 列表
|
|
4. 设置为默认客户端
|
|
5. 点击"确认 (Confirm)"
|
|
|
|
### 场景 3: 限制订阅访问
|
|
|
|
1. 打开"订阅配置"
|
|
2. 启用"User-Agent 限制"
|
|
3. 在"User-Agent 白名单"中添加:
|
|
```
|
|
Clash
|
|
V2rayN
|
|
ClashX
|
|
Quantumult
|
|
```
|
|
4. 保存配置
|
|
5. 只有白名单中的客户端能访问订阅
|
|
|
|
### 场景 4: 使用自定义域名
|
|
|
|
1. 打开"订阅配置"
|
|
2. 在"订阅域名"中添加:
|
|
```
|
|
sub.example.com
|
|
cdn.example.com
|
|
```
|
|
3. 配置"订阅路径": `/api/sub`
|
|
4. 保存配置
|
|
5. 用户可使用 `https://sub.example.com/api/sub/{token}` 访问订阅
|
|
|
|
## 模板编写指南
|
|
|
|
### Base64 格式示例
|
|
```go
|
|
{{range .Proxies}}{{.Type}}://{{.UUID}}@{{.Server}}:{{.Port}}?security={{.Security}}&sni={{.SNI}}#{{.Name}}
|
|
{{end}}
|
|
```
|
|
|
|
### Clash YAML 格式示例
|
|
```yaml
|
|
proxies:
|
|
{{range .Proxies}}
|
|
- name: {{.Name}}
|
|
type: {{.Type}}
|
|
server: {{.Server}}
|
|
port: {{.Port}}
|
|
{{if eq .Type "vless"}}uuid: {{.UUID}}{{end}}
|
|
{{if eq .Type "vmess"}}uuid: {{.UUID}}{{end}}
|
|
{{if eq .Type "trojan"}}password: {{.Password}}{{end}}
|
|
{{end}}
|
|
```
|
|
|
|
### 条件判断示例
|
|
```go
|
|
{{range .Proxies}}
|
|
{{if eq .Type "vless"}}
|
|
vless://{{.UUID}}@{{.Server}}:{{.Port}}
|
|
{{else if eq .Type "vmess"}}
|
|
vmess://{{.UUID}}@{{.Server}}:{{.Port}}
|
|
{{end}}
|
|
{{end}}
|
|
```
|
|
|
|
## 注意事项
|
|
|
|
1. **User-Agent 匹配**: 必须与客户端实际发送的 User-Agent 完全匹配,否则无法正确识别
|
|
2. **模板语法**: 使用 Go Template 语法,语法错误会导致订阅生成失败
|
|
3. **输出格式**: 确保模板输出与选择的格式匹配,如 YAML 格式需要正确的缩进
|
|
4. **默认客户端**: 同时只能有一个默认客户端,设置新默认会取消旧的
|
|
5. **域名配置**: 自定义域名需要在 DNS 和 Web 服务器中正确配置
|
|
6. **路径更改**: 订阅路径更改后,需要重启系统以获得最佳性能
|
|
7. **预览功能**: 使用预览功能测试模板是否正确生成
|
|
8. **模板仓库**: 参考 GitHub 模板仓库获取更多示例和最佳实践
|
|
|
|
</div>
|