Skip to content

简单订阅服务器。主要为了方便在配置文件完全自己编写的情况下,快速导入Surge、QuantumultX、Loon等客户端。

License

Notifications You must be signed in to change notification settings

alecthw/simple-sub-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sub-server

基于文件的简单订阅服务器。

主要为了方便在配置文件完全自己编写的情况下,快速导入 Surge、QuantumultX、Loon 等客户端。

同时也为了与家人或亲友分享时,隐藏原始订阅地址,避免被滥用。

编译

git clone https://github.com/alecthw/simple-sub-server.git
cd simple-sub-server
export GOOS=linux GOARCH=amd64 # 可选,交叉编译
go build -o sub-server

使用

配置文件存放:{workdir}/sub/{uuid}/{file}

uuid必须是合法的uuid,做了校验。

代码中做了防越级处理,不能添加父子路径,即 file 的值中不能包含字符 /\..

请求url:http://127.0.0.1:8080/{uuid}/{file}

运行

./sub-server -dir /path/to/workDir -host 127.0.0.1:8080 -subcnv "http://127.0.0.1:25500"

工作目录示例

{workdir}
├── sub
│   ├── 56d00b21-554d-5a90-6daa-52537050fb20
│   │   ├── Loon.conf
│   │   ├── QuantumultX.conf
│   │   ├── Stash.yaml
│   │   └── Surge.conf
│   └── 58cfbff0-18c8-1f7d-400a-ba07a305b1e6
│       ├── clash.ini
│       ├── ClashMeta.yaml
│       └── ClashMetaOnlyCN.yaml
└── sub-server

文件重定向支持

重定向的判断是判断文件内容以 [Redirect] 开头,内容是 ini 格式。

[Redirect]
file=clash.ini # 必填
uuid=58cfbff0-18c8-1f7d-400a-ba07a305b1e6 # 选填,不填则沿用原 uuid

PS: 重定向视为可信输入,不再校验外部输入逻辑,此时重定向文件中所填写的 uuid 可为任意字符串。

subconverter 调用支持

subconverter 服务器默认地址 http://127.0.0.1:25500,可以通过启动参数 -subcnv 修改。

当前文件后缀为 ini 时,则认为是 subconverter 配置文件,将调用 subconverter 服务。文件内容写法与 subconverter 配置档案相同。调用时,是将配置拆解成独立参数,然后调用的。

ini 文件集中存放

支持将 ini 文件放到 template 目录下集中管理,ini 文件中不填 url 订阅链接,然后在各个目录下创建 subscribe.txt 文件,文件中一行填一个订阅链接。

{workdir}
├── sub
│   ├── 56d00b21-554d-5a90-6daa-52537050fb20
│   │   └── subscribe.txt
│   ├── 58cfbff0-18c8-1f7d-400a-ba07a305b1e6
│   │   └── subscribe.txt
│   └── template
│       ├── clash.ini
│       ├── singbox.ini
│       └── surfboard.ini
└── sub-server

MANAGED-CONFIG 支持

当 target 为 surge 或 surfboard 时,会自动补充与原始 url 一致的 MANAGED-CONFIG。

systemd 服务

参考文件:sub-server.service

About

简单订阅服务器。主要为了方便在配置文件完全自己编写的情况下,快速导入Surge、QuantumultX、Loon等客户端。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages