Skip to content

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

Latest

Choose a tag to compare

@github-actions github-actions released this 27 Oct 08:15
· 1 commit to main since this release

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.