Repository navigation
Releases: linux-jin/sublinkPro
Releases · linux-jin/sublinkPro
Release list
v1.16.0 — HTTP/Mixed 代理网关与检测界面精简
v1.16.0 — HTTP/Mixed 代理网关与检测界面精简
新增:HTTP / Mixed 代理入口
- 监听入口增加 SOCKS5 / HTTP / Mixed 三种协议选择;HTTP 支持普通代理请求与 HTTPS CONNECT,Mixed 可在同一端口兼容 SOCKS5 和 HTTP 客户端。
- 复用独立账号、原用户名路由、默认 Profile、Mihomo Adapter、节点池、健康/冷却、粘性会话和拨号阶段重试,不增加额外代理进程。
- HTTP 长连接的每个请求重新认证、重新选路,不沿用上一个账号或目标的出站连接;代理认证及逐跳头不会转发给目标站点。
- CONNECT 保留预读的后续字节,HTTPS 原样透传、不解密。底层传输支持时可半关闭隧道并排空反向响应。
- 上传和响应并行流式转发;上游提前拒绝、断开或返回非法响应头时,中断未完成上传并释放连接,避免卡死。仅在拨号阶段重试,已发送的 POST/上传不会自动换节点重放。
- 连接限制、空闲/时长限制、管理员断开、停止/重载、流量统计与监控覆盖 HTTP/CONNECT,并显示实际协议和 CONNECT 方法。
检测中心与智能分组
- 检测中心与上游 PR 对齐,仅保留 检测方案 / 自动任务;移除这两者之外新增的独立运行记录、节点结果页和专用接口。原节点管理与任务中心的结果、记录、单节点/选中节点检测仍保留。
- 保留智能分组候选范围、定时/机场更新检测、方案引用保护与订阅入组规则;删除重复横幅和内部机制说明,以 已入组 / 未入组 表达当前成员状态。
- 保留来源机场、排除原因、时区、字段约束和真实错误提示,统一中英文标签;修复候选弹框标题嵌套和订阅加载智能分组时的 Hook 警告。
- 智能分组只响应任务完成事件刷新,不再因每条进度事件产生无用重绘。
修复
- 订阅成功完成时的主动 context 取消不再被误判为更新失败,继续执行用量保存、自动标签及后续检测;真实加载失败仍停止检测。
- 暂停且清空 Cron 的原有任务仍校验节点范围,避免空筛选意外扩大到全库。
- 自动任务的五字段 Cron 由服务端校验;命名月份/星期及单值步进不再被浏览器数字预览误拦截。
升级与兼容
- 升级前请备份
db、template等运行数据。 此次网关协议保存在原监听器 JSON 中,不新增表、全局协议设置、环境变量或固定端口。 - 旧监听入口继续使用 SOCKS5,不会自动切成 HTTP/Mixed;在 系统设置 → 代理网关 → 监听入口 → 编辑 中手动选择。
- 旧客户端更新入口时未传协议会保留当前选择;HTTP/Mixed 的非回环监听仍强制认证。HTTP Basic 与 SOCKS5 凭据本身不加密,请使用可信内网、防火墙或安全隧道。
- 含冒号
:的旧用户名仍可用于 SOCKS5,但不能用于 HTTP Basic;HTTP/Mixed 请使用不含冒号的账号。 - HTTPS 网站通过 CONNECT 访问,
HTTP_PROXY/HTTPS_PROXY两者均使用http://代理地址。本次不包含 UDP/BIND、HTTP/2 入站、HTTP Upgrade/WebSocket 或代理入口自身的 TLS。 - 从 v1.15.0 升级后,检测中心入口会精简;检测方案、自动任务和原有引用不因移除独立展示页而删除。回滚前请确认入口协议与旧版兼容并保留备份。
快速验证(以 Mixed 入口 127.0.0.1:7890 为例)
curl --proxy http://127.0.0.1:7890 -U 'proxy:your-password' http://example.com
curl --proxy http://127.0.0.1:7890 -U 'proxy:your-password' https://example.com
curl --proxy socks5h://127.0.0.1:7890 -U 'proxy:your-password' https://example.com验证
- 发布候选通过 Go 1.26.4 的全量测试、gofmt、golangci-lint 2.12.2(0 issues)、前端全量 ESLint(0 warnings)与前后端构建。
- HTTP/Mixed 回归覆盖认证与逐请求隔离、真实 TLS CONNECT、混合分流、预读字节、逐跳头清理、流式上传/响应、提前拒绝、上游 EOF/非法响应头、超时释放、旧 PUT 保留协议及不重放 POST。
- 实际 React/MUI 组件配合合成 API 检查新建/编辑、旧入口默认协议、中英文及桌面/手机明暗主题;不代表真实机场的网络可用性。
- 本地缺少 CGO 编译器,未运行 race 检测;保留既有非阻断的构建体积及 MUI 选项加载提示。
安装与镜像
ghcr.io/linux-jin/sublink-pro:v1.16.0
ghcr.io/linux-jin/sublink-pro:latest
镜像支持 Linux amd64、arm64、arm/v7、386。Release 附 Linux、Windows、macOS 共 8 个二进制安装包。
English summary
- Add per-listener HTTP forwarding, HTTPS CONNECT and SOCKS5/HTTP Mixed mode, reusing gateway accounts, profiles, routing, health, retries, sticky sessions and connection controls without an extra proxy process.
- Authenticate and route every keep-alive request separately, strip proxy/hop headers, retain pre-read tunnel bytes and stream uploads/responses concurrently. Abort incomplete uploads on early rejection or upstream failures; never replay a sent POST on another node.
- Keep legacy SOCKS5 defaults and preserve omitted protocol values in old-client updates. Non-loopback authentication is mandatory; credentials need a trusted network or secure tunnel. Colon-containing usernames remain SOCKS5-only.
- Simplify the detection center to Plans and Automatic Jobs while preserving the existing node/task result and history flows. Retain smart-group membership/schedules/references, simplify copy and refresh only after task completion.
- Fix successful subscription-completion cancellation handling, paused-schedule scope validation and browser rejection of server-supported Cron expressions.
- Back up runtime data before upgrading. Explicitly select HTTP/Mixed after upgrading; HTTPS destinations use CONNECT through an
http://proxy address. No UDP/BIND, inbound HTTP/2, Upgrade or listener TLS is added. - Full Go tests, lint and production builds pass; protocol/lifecycle regression and light/dark/mobile browser tests are included. Local race testing was unavailable without a CGO compiler. Existing non-blocking warnings remain.
Release v1.15.0
v1.15.0 — 检测中心与独立自动任务
新增功能
- 检测中心拆分为 检测方案 / 自动任务 / 运行记录 / 节点结果 四个入口,方案支持组合连通性与延迟、下载速度、出口 IP/国家、IP 质量、AI 服务和流媒体模块。
- 自动任务复用检测方案,独立设置全部节点、机场/原分组/标签交集或智能分组候选范围。支持服务时区的五段 Cron,以及机场更新成功后的事件触发。
- 定时任务可先更新指定机场,等待全部成功、自动标签完成后再解析最新范围和检测;前置更新失败/取消就停止,不递归启动更新后检测。
- 同一独立任务防重;检测期间收到的机场事件合并为一批补跑,重新读取启用状态及范围。空候选与空筛选不会回退全库。
- 分页查看最新节点检测状态、原机场、Provider 状态/原因/详情及检测时间;查看当前智能分组入组或排除原因,并可直接重测单个节点。
- 运行记录复用现有任务系统,显示触发来源、执行进度与详情,支持停止任务。
兼容与保护
- 保留节点列表的单节点/选中节点检测,明确传递节点 ID,避免误扫分组或全库。
- 旧检测方案 ID、机场引用、智能分组绑定、旧 API 和 Telegram 定时操作保持兼容;旧策略调度显示为“兼容任务”,不复制、不重复注册。
- 编辑检测方案不清空已有定时配置;删除兼容任务只移除其调度,不删除方案。保护被引用的方案和智能分组,避免悬空任务。
- 切换下载测速模块保留各模式的自定义 URL;兼容空数组、请求乱序、分页越界与运行详情状态刷新,折叠设置支持键盘操作。
- 数据库恢复包含独立任务及关联候选分组,保留原 ID;旧备份恢复时不遗留目标实例的旧任务。
升级注意
- 升级前建议备份数据库:本版本新增自动任务表,首次启动会自动迁移。降级前请保留备份。
- 节点结果页是各检测项目的最新状态,不是某次运行的逐节点历史快照;运行记录保存执行摘要。
- “可供订阅”仅表示符合当前智能分组规则,不等于分组已被订阅选用;最终输出仍受订阅自身过滤影响。
- AI 服务探测与 IP 风险参考不证明账号能登录或模型能调用;AI 检测结果不会自动成为智能分组入组条件。
- OpenClash 在 OpenWrt 独立运行,本应用不控制其订阅刷新;请按节点规模、并发和超时预留检测缓冲。
- 防重按任务隔离,并非全局节点锁。避免为同一批节点同时开启重复的独立任务、智能分组或机场更新后检测。
验证
- 全量 Go 测试、gofmt、golangci-lint(0 issues)、前端 lint(0 errors)和生产构建通过。
- 新增 15 个回归测试函数,覆盖范围、防重/队列、前置更新、旧策略兼容、引用保护、分页与备份恢复。
- 真实 React/MUI 页面配合合成 API 数据验证 11 类交互,覆盖单节点范围、配置保存、任务详情刷新、自定义 URL、键盘操作、中英文及桌面/手机明暗主题;未使用生产节点进行测试。
- 保留既有的非阻塞格式、构建体积及 MUI Grid 弃用警告。
Docker
ghcr.io/linux-jin/sublink-pro:v1.15.0
ghcr.io/linux-jin/sublink-pro:latest
支持 Linux amd64、arm64、arm/v7、386。Release 附 Linux、Windows、macOS 共 8 个二进制安装包。
English summary
- Split the detection center into reusable plans, independent automatic jobs, run history and paginated latest node results.
- Combine latency, optional downloads, exit information, IP quality and metadata-driven AI/streaming checks. Preserve single/selected-node testing and existing profile IDs/references.
- Schedule explicit scopes or react to successful airport updates. Optional synchronous airport pre-updates and auto-tag completion precede scope resolution; failed updates stop checks. Per-job overlap protection coalesces airport follow-ups, and empty scopes never expand to all nodes.
- Map old schedules as compatibility jobs without copying them. Protect referenced plans/groups and preserve independent jobs and candidate-group IDs during restore.
- Inspect source airports, provider evidence, timestamps and current membership reasons. Latest node state is not a run snapshot; membership is not guaranteed subscription inclusion, and probes are not account/model verification or new AI membership rules.
- Back up the database before upgrading: a new automatic-job table is migrated on startup. OpenClash remains independent; allow enough time before its refresh and avoid duplicate automation paths.
- Full Go tests, lint/build and regression/browser checks passed; existing non-blocking warnings remain.
Release v1.14.1
v1.14.1 — 大量节点性能与兼容性更新
性能优化
- 浅分页使用有界 Top-K 筛选,不再复制并排序所有匹配节点;仍返回精确总数,保留不分页调用。
- 先执行低成本筛选,按需解析解锁 JSON,规则只规范化一次;国家/分组/来源统计使用维护中的索引计数。
- 节点页不再消费高频任务进度状态,稳定列表回调;取消过时请求、保留乱序保护,250 ms 内完成事件合并刷新。
- 拖动列宽只移动预览线,不逐帧重绘整张表格。
- 智能分组预览共用一次候选快照和有效期 cutoff,保留统计、成员、排除原因和响应字段。
上游更新与兼容修复
- 合入上游至
f361753:保留 VMess/VLESS WebSocket 的 Host 之外请求头,修复 Gemini 页面可用标记识别。 - VMess 同时兼容 JSON 字符串和对象型 headers;未知扩展类型不会导致整条节点解析失败。
- 升级 regexp2 2.9.0、GeoIP2 2.5.0、React/React DOM 19.3.1 及相关 Go/i18n/开发依赖。
性能证据(合成测试,不代表所有部署)
Windows amd64 / Intel i5-10210U,50,000 合成节点,每页 50 条,两次基准均值:
| 场景 | 优化前 | 优化后 |
|---|---|---|
| 首页模型查询 | 41.1 ms | 14.5 ms |
| 名称排序 | 89.2 ms | 28.8 ms |
| 名称搜索 | 207.9 ms | 26.7 ms |
| 分组+解锁规则 | 142.2 ms | 32.0 ms |
| 首页内存分配 | 26.0 MB/op | 56.4 KB/op |
真实 Edge + mocked API、100 行测试:20 次进度事件的页面/表格重绘 11→0;10 个完成事件的列表请求 10→1;快速搜索取消旧请求且保留最新结果。选择、列宽保存、桌面/手机明暗主题检查通过。
兼容性和限制
- 相同主排序值现在按 ID 升序稳定排列;无效延迟/速度仍在末尾。
- 无数据库迁移或权限变化;保留智能分组、原生 Loon 及其他 fork 功能。
- 精确计数仍扫描缓存,深分页仍可能全量排序;不是 SQL 真分页。
- 客户端取消请求不保证后端计算同步中断。
-race未在本机运行(CGO/C 编译器不可用);不宣称已通过。
验证
全量 Go 测试、golangci-lint、前端 lint/生产构建、分页/筛选/并发缓存/排序/索引/智能分组回归测试均通过。前端存在既有非阻塞格式及构建警告。详见仓库中英文 CHANGELOG 和 development 文档。
Docker
ghcr.io/linux-jin/sublink-pro:v1.14.1
ghcr.io/linux-jin/sublink-pro:latest
支持 Linux amd64 / arm64 / armv7 / 386;另附 Linux、Windows、macOS 共 8 个二进制安装包。
English summary
- Bounded shallow pagination with exact totals, lazy unlock parsing, indexed counts and deterministic ID tie-breaking.
- Isolated progress rendering, cancellable stale list requests, coalesced completion refreshes and lightweight column-resize previews.
- Single candidate snapshot/cutoff for smart-group previews, without changing eligibility or response fields.
- Upstream sync through
f361753, VMess/VLESS WS header preservation, Gemini marker fixes and dependency updates; object-shaped VMess headers remain compatible. - No database migration or permission change. Synthetic benchmarks exclude network latency and do not guarantee production speedups. Deep pages still sort full matches; client cancellation is not server cancellation. Local race detection was unavailable.
Release v1.14.0
🚀 更新内容 (v1.13.2 -> v1.14.0)
📝 提交记录:
- chore(release): prepare v1.14.0 (38ddf81)
- fix(smart-groups): separate country abbreviations from protocol names (33108aa)
- chore: merge upstream updates through fc37921 (5ce74a0)
- ci: add manual trigger for dev image publication (2e3ea20)
- feat(smart-groups): add scheduled and airport-refresh checks (4dd8f4d)
- chore(deps)(deps): bump the production-dependencies group (ZeroDeng01#329) (fc37921)
- chore(deps)(deps): bump github.com/dlclark/regexp2/v2 (ZeroDeng01#328) (44b08fd)
- fix(protocol): 修正 TUIC 跳过证书校验参数名以兼容主流客户端 (ZeroDeng01#325) (b699fef)
- refactor(menu): reorder 'System Monitor' item in subscription menu (d9d9e5a)
- Merge branch 'dev' (72a6fa8)
- chore(deps)(deps-dev): bump the development-dependencies group (ZeroDeng01#324) (c1f8978)
- chore(deps)(deps): bump vite (ZeroDeng01#323) (04c2991)
- chore(deps)(deps): bump the go-dependencies group with 2 updates (ZeroDeng01#322) (e5dc41e)
- fix(protocol): preserve Hysteria2 userpass credentials (ZeroDeng01#321) (793ebb3)
- feat(socks5): prepare standalone gateway contribution (ZeroDeng01#319) (400c03a)
- feat(backup): add WebDAV backup restore and scheduling (ZeroDeng01#318) (3fd5202)
- feat(protocol): support OpenVPN in Clash and Mihomo YAML (ZeroDeng01#317) (f993874)
📦 发布文件:
sublinkPro-linux-amd64- Linux x64sublinkPro-linux-arm64- Linux ARM64sublinkPro-linux-armv7- Linux ARMv7 (32-bit)sublinkPro-linux-x86- Linux x86 (32-bit)sublinkPro-windows-amd64.exe- Windows x64sublinkPro-windows-x86.exe- Windows x86 (32-bit)sublinkPro-darwin-amd64- macOS x64sublinkPro-darwin-arm64- macOS ARM64 (Apple Silicon)
Release v1.13.2
🚀 更新内容 (v1.13.1 -> v1.13.2)
📝 提交记录:
- release: prepare v1.13.2 (917b0e0)
- chore(deps): merge upstream dependency updates (3654b7a)
- chore(dependencies): 升级 monaco-editor 至 0.57.0 及 react-router 至 7.18.4 (11479da)
- chore(deps)(deps): bump the production-dependencies group across 1 directory with 9 updates (ZeroDeng01#316) (a622935)
- chore(deps)(deps-dev): bump the development-dependencies group across 1 directory with 4 updates (ZeroDeng01#313) (de6b39f)
- chore(deps)(deps): bump the go-dependencies group across 1 directory with 5 updates (ZeroDeng01#312) (32749d5)
📦 发布文件:
sublinkPro-linux-amd64- Linux x64sublinkPro-linux-arm64- Linux ARM64sublinkPro-linux-armv7- Linux ARMv7 (32-bit)sublinkPro-linux-x86- Linux x86 (32-bit)sublinkPro-windows-amd64.exe- Windows x64sublinkPro-windows-x86.exe- Windows x86 (32-bit)sublinkPro-darwin-amd64- macOS x64sublinkPro-darwin-arm64- macOS ARM64 (Apple Silicon)
Release v1.13.1
🚀 更新内容 (v1.13.0 -> v1.13.1)
📝 提交记录:
- release: prepare v1.13.1 (c08c538)
- style(smart-groups): simplify candidate dialog layout (7390a60)
- feat(smart-groups): show source airport and eligibility (55684f2)
📦 发布文件:
sublinkPro-linux-amd64- Linux x64sublinkPro-linux-arm64- Linux ARM64sublinkPro-linux-armv7- Linux ARMv7 (32-bit)sublinkPro-linux-x86- Linux x86 (32-bit)sublinkPro-windows-amd64.exe- Windows x64sublinkPro-windows-x86.exe- Windows x86 (32-bit)sublinkPro-darwin-amd64- macOS x64sublinkPro-darwin-arm64- macOS ARM64 (Apple Silicon)
Release v1.13.0
🚀 更新内容 (v1.12.0 -> v1.13.0)
📝 提交记录:
- release: prepare v1.13.0 (96733d6)
- feat(smart-groups): match countries or node names (96b8b72)
- feat(smart-groups): simplify subscription selection (6066b78)
- fix(smart-groups): guard pagination before members load (260442c)
- fix(smart-groups): show candidates and test inside dialog (f5355a0)
- fix(smart-groups): expand filters and accept latency-only nodes (8dcd417)
- feat(smart-groups): add independent country-based node views (acbeb49)
📦 发布文件:
sublinkPro-linux-amd64- Linux x64sublinkPro-linux-arm64- Linux ARM64sublinkPro-linux-armv7- Linux ARMv7 (32-bit)sublinkPro-linux-x86- Linux x86 (32-bit)sublinkPro-windows-amd64.exe- Windows x64sublinkPro-windows-x86.exe- Windows x86 (32-bit)sublinkPro-darwin-amd64- macOS x64sublinkPro-darwin-arm64- macOS ARM64 (Apple Silicon)
Release v1.12.0
🚀 更新内容 (v1.11.0 -> v1.12.0)
📝 提交记录:
- release: prepare v1.12.0 (c6f09ca)
- test(socks5): satisfy workflow lint checks (3930fbe)
- feat(socks5): add accounts and multi-listeners (d7deae3)
- docs(readme): prioritize fork feature highlights (473f03f)
- fix(i18n): add node import result translations (3953427)
- feat(loon): add sanitized public profile template (bdcbd28)
- fix(loon): repair legacy template assignments (e18b35c)
- fix(loon): satisfy backend lint (4c94340)
- feat(loon): add native template support (5deebff)
📦 发布文件:
sublinkPro-linux-amd64- Linux x64sublinkPro-linux-arm64- Linux ARM64sublinkPro-linux-armv7- Linux ARMv7 (32-bit)sublinkPro-linux-x86- Linux x86 (32-bit)sublinkPro-windows-amd64.exe- Windows x64sublinkPro-windows-x86.exe- Windows x86 (32-bit)sublinkPro-darwin-amd64- macOS x64sublinkPro-darwin-arm64- macOS ARM64 (Apple Silicon)
Release v1.11.0
🚀 更新内容 (v1.10.0 -> v1.11.0)
📝 提交记录:
- docs(release): prepare v1.11.0 (64a8672)
- docs(readme): clarify fork and feature highlights (4859243)
- Merge remote-tracking branch 'upstream/main' into dev (954b03e)
- feat(socks5): add routing profiles (6f72f24)
- Merge branch 'dev' (09dee34)
- fix(clash): preserve unmodeled proxy fields (ZeroDeng01#303) (02f8673)
- fix(speedtest): 让测速支持节点的 DialerProxyName 前置代理 (ZeroDeng01#287) (8732954)
- chore(deps)(deps): bump the production-dependencies group (ZeroDeng01#305) (f11c8a2)
- chore(deps)(deps): bump the go-dependencies group with 2 updates (ZeroDeng01#304) (069838e)
📦 发布文件:
sublinkPro-linux-amd64- Linux x64sublinkPro-linux-arm64- Linux ARM64sublinkPro-linux-armv7- Linux ARMv7 (32-bit)sublinkPro-linux-x86- Linux x86 (32-bit)sublinkPro-windows-amd64.exe- Windows x64sublinkPro-windows-x86.exe- Windows x86 (32-bit)sublinkPro-darwin-amd64- macOS x64sublinkPro-darwin-arm64- macOS ARM64 (Apple Silicon)
Release v1.10.0
🚀 更新内容 (v1.9.0 -> v1.10.0)
📝 提交记录:
📦 发布文件:
sublinkPro-linux-amd64- Linux x64sublinkPro-linux-arm64- Linux ARM64sublinkPro-linux-armv7- Linux ARMv7 (32-bit)sublinkPro-linux-x86- Linux x86 (32-bit)sublinkPro-windows-amd64.exe- Windows x64sublinkPro-windows-x86.exe- Windows x86 (32-bit)sublinkPro-darwin-amd64- macOS x64sublinkPro-darwin-arm64- macOS ARM64 (Apple Silicon)