Skip to content

Releases: linux-jin/sublinkPro

v1.16.0 — HTTP/Mixed 代理网关与检测界面精简

Choose a tag to compare

@github-actions github-actions released this 27 Oct 08:15

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

Choose a tag to compare

@github-actions github-actions released this 22 Oct 02:08

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

Choose a tag to compare

@github-actions github-actions released this 21 Oct 05:58

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

Choose a tag to compare

@github-actions github-actions released this 21 Oct 01:57

🚀 更新内容 (v1.13.2 -> v1.14.0)

📝 提交记录:

📦 发布文件:

  • sublinkPro-linux-amd64 - Linux x64
  • sublinkPro-linux-arm64 - Linux ARM64
  • sublinkPro-linux-armv7 - Linux ARMv7 (32-bit)
  • sublinkPro-linux-x86 - Linux x86 (32-bit)
  • sublinkPro-windows-amd64.exe - Windows x64
  • sublinkPro-windows-x86.exe - Windows x86 (32-bit)
  • sublinkPro-darwin-amd64 - macOS x64
  • sublinkPro-darwin-arm64 - macOS ARM64 (Apple Silicon)

Release v1.13.2

Choose a tag to compare

@github-actions github-actions released this 30 Sep 01:58

🚀 更新内容 (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 x64
  • sublinkPro-linux-arm64 - Linux ARM64
  • sublinkPro-linux-armv7 - Linux ARMv7 (32-bit)
  • sublinkPro-linux-x86 - Linux x86 (32-bit)
  • sublinkPro-windows-amd64.exe - Windows x64
  • sublinkPro-windows-x86.exe - Windows x86 (32-bit)
  • sublinkPro-darwin-amd64 - macOS x64
  • sublinkPro-darwin-arm64 - macOS ARM64 (Apple Silicon)

Release v1.13.1

Choose a tag to compare

@github-actions github-actions released this 28 Sep 08:45

🚀 更新内容 (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 x64
  • sublinkPro-linux-arm64 - Linux ARM64
  • sublinkPro-linux-armv7 - Linux ARMv7 (32-bit)
  • sublinkPro-linux-x86 - Linux x86 (32-bit)
  • sublinkPro-windows-amd64.exe - Windows x64
  • sublinkPro-windows-x86.exe - Windows x86 (32-bit)
  • sublinkPro-darwin-amd64 - macOS x64
  • sublinkPro-darwin-arm64 - macOS ARM64 (Apple Silicon)

Release v1.13.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 06:53

🚀 更新内容 (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 x64
  • sublinkPro-linux-arm64 - Linux ARM64
  • sublinkPro-linux-armv7 - Linux ARMv7 (32-bit)
  • sublinkPro-linux-x86 - Linux x86 (32-bit)
  • sublinkPro-windows-amd64.exe - Windows x64
  • sublinkPro-windows-x86.exe - Windows x86 (32-bit)
  • sublinkPro-darwin-amd64 - macOS x64
  • sublinkPro-darwin-arm64 - macOS ARM64 (Apple Silicon)

Release v1.12.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 09:13

🚀 更新内容 (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 x64
  • sublinkPro-linux-arm64 - Linux ARM64
  • sublinkPro-linux-armv7 - Linux ARMv7 (32-bit)
  • sublinkPro-linux-x86 - Linux x86 (32-bit)
  • sublinkPro-windows-amd64.exe - Windows x64
  • sublinkPro-windows-x86.exe - Windows x86 (32-bit)
  • sublinkPro-darwin-amd64 - macOS x64
  • sublinkPro-darwin-arm64 - macOS ARM64 (Apple Silicon)

Release v1.11.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 09:36

🚀 更新内容 (v1.10.0 -> v1.11.0)

📝 提交记录:

📦 发布文件:

  • sublinkPro-linux-amd64 - Linux x64
  • sublinkPro-linux-arm64 - Linux ARM64
  • sublinkPro-linux-armv7 - Linux ARMv7 (32-bit)
  • sublinkPro-linux-x86 - Linux x86 (32-bit)
  • sublinkPro-windows-amd64.exe - Windows x64
  • sublinkPro-windows-x86.exe - Windows x86 (32-bit)
  • sublinkPro-darwin-amd64 - macOS x64
  • sublinkPro-darwin-arm64 - macOS ARM64 (Apple Silicon)

Release v1.10.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 08:20

🚀 更新内容 (v1.9.0 -> v1.10.0)

📝 提交记录:

  • docs(release): prepare v1.10.0 (457e2c5)
  • feat(socks5): add node routing observability (e49203d)

📦 发布文件:

  • sublinkPro-linux-amd64 - Linux x64
  • sublinkPro-linux-arm64 - Linux ARM64
  • sublinkPro-linux-armv7 - Linux ARMv7 (32-bit)
  • sublinkPro-linux-x86 - Linux x86 (32-bit)
  • sublinkPro-windows-amd64.exe - Windows x64
  • sublinkPro-windows-x86.exe - Windows x86 (32-bit)
  • sublinkPro-darwin-amd64 - macOS x64
  • sublinkPro-darwin-arm64 - macOS ARM64 (Apple Silicon)