sublinkPro 是基于优秀的开源项目 sublinkX /sublinkE 进行二次开发,仅在原项目基础上做了部分定制优化。建议用户优先参考和使用原项目,感谢原作者的付出与贡献。
- 前端基于 vue3-element-admin;
- 后端采用 Go + Gin + Gorm;
- 默认账号:admin 密码:123456,请安装后务必自行修改;
- 修复部分页面BUG
- 支持 Clash
dialer-proxy属性 - 允许添加并使用 API KEY 访问 API
- 导入、定时更新订阅链接中的节点
- 支持AnyTLS、Socks5协议
- 订阅节点排序
- 支持插件扩展(实验性)
- 支持订阅的IP黑/白名单功能
- ...
- 高自由度与安全性,支持访问订阅记录及简易配置管理;
- 支持多种客户端协议及格式,包括:
- v2ray(base64 通用格式)
- clash(支持 ss, ssr, trojan, vmess, vless, hy, hy2, tuic, AnyTLS, Socks5)
- surge(支持 ss, trojan, vmess, hy2, tuic)
- 新增 token 授权及订阅导入功能,增强安全性和便捷性。
docker run --name sublinke -p 8000:8000 \
-v $PWD/db:/app/db \
-v $PWD/template:/app/template \
-v $PWD/logs:/app/logs \
-v $PWD/plugins:/app/plugins \
-d zerodeng/sublink-pro wget https://raw.githubusercontent.com/ZeroDeng01/sublinkPro/refs/heads/main/install.sh && sh install.sh⚠ 注意
在 Alpine Linux 上运行一键安装脚本时,由于 Alpine 使用musl而非glibc,插件模块无法正常工作。 推荐优先使用 Docker 部署 以获得最佳兼容性,或可选择 Debian / Ubuntu 等发行版。
sublinkPro 提供了灵活的插件系统,允许开发者扩展系统功能而无需修改核心代码。
- 创建插件文件:参照
plugins_examples/email_plugin.go编写自定义插件 - 编译插件:使用
plugins_examples/build_plugin.sh email_plugin.go编译成.so文件 - 部署插件:将编译好的
.so文件放入plugins目录
所有插件必须实现 plugins.Plugin 接口,包含以下核心方法:
// 必须实现的方法
Name() string // 插件名称
Version() string // 插件版本
Description() string // 插件描述
DefaultConfig() map[string]interface{} // 默认配置
SetConfig(map[string]interface{}) // 设置配置
Init() error // 初始化
Close() error // 关闭清理
// 事件处理方法 (API 事件监听)
OnAPIEvent(ctx *gin.Context, event plugins.EventType, path string,
statusCode int, requestBody interface{},
responseBody interface{}) error
// 声明插件关注的 API 路径和事件类型
InterestedAPIs() []string
InterestedEvents() []plugins.EventType系统内置以下示例插件,供开发者参考学习(版本更新可能失效,建议自己编译):
| 插件名称 | 功能描述 | 源代码 | 编译版本 |
|---|---|---|---|
| 邮件通知插件 | 监控登录事件并发送邮件通知 | email_plugin.go | 下载 .so 文件 |
可通过 Web 界面管理插件:
- 启用/禁用插件
- 配置插件参数
- 查看插件状态
自定义插件开发流程:
- 创建插件 Go 文件,实现
plugins.Plugin接口 - 导出
GetPlugin()函数,返回插件实例 - 定义插件关心的 API 路径和事件类型
- 实现事件处理逻辑
- 使用构建脚本编译插件
# 编译插件
wget https://raw.githubusercontent.com/ZeroDeng01/sublinkPro/main/plugins_examples/build_plugin.sh
chmod +x build_plugin.sh
./build_plugin.sh your_plugin.go
# 将生成的 .so 文件复制到插件目录
cp your_plugin.so ../plugins/更多高级功能和详细 API 文档,请参阅代码示例。