Skip to content

Releases: xinggaoya/sing-box-windows

v2.3.1

Choose a tag to compare

@github-actions github-actions released this 17 Jun 10:02

[v2.3.1] - 2026-06-17

🐛 问题修复

  • 修复发布版本启动白屏 - 将 naive-ui 及其强依赖(vueuc、css-render、vooks、treemate 等)合并到同一打包 chunk,修复 Rollup 跨 chunk 循环引用导致的 Cannot access 'ac' before initialization 运行时错误

✨ 新功能

  • 首页显示本地代理端口(#50 - 首页新增本地代理端口卡片,直接展示浏览器插件常用的 HTTP / SOCKS5 地址;当前 sing-box 使用 mixed 入站,因此两种协议共用同一个代理端口,并可从首页快速打开端口设置
  • Release 增加 Intel macOS 产物(#51 - 预发布流水线新增 x86_64-apple-darwin 构建,后续 Release 会同时上传 Apple Silicon 与 Intel Mac 安装包

🔧 优化改进

  • 设置页侧边栏导航重构 - 将原有分段 Tab 导航替换为左侧图标导航栏 + 右侧内容面板的现代布局,通用/内核/网络/更新备份/关于 五大分区一目了然,切换时带平滑过渡动画;内核有新版本或应用有可用更新时,对应导航项会显示提示圆点;移动端自动切换为水平图标导航栏
  • 通用设置常用项优先 - 主题模式、强调色、紧凑模式等高频设置移至页面顶部,采用自定义主题切换按钮组与色彩圆点选择器替代原有 Naive UI radio/picker;启动设置(开机自启等)移至底部,子选项按条件展开
  • 内核管理卡片化 - 内核版本状态以醒目 badge 展示(绿色已安装/红色未安装),下载进度独立区域,子操作按钮更紧凑
  • 高级设置可折叠分组 - 网络、代理高级、sing-box Profile 三个大组改为手风琴式可折叠布局,默认仅展开最常用的网络组,降低信息密度
  • 更新与备份视觉统一 - 更新状态卡片采用渐变背景突出新版本信息;备份操作按钮水平排列更紧凑
  • 关于页品牌化 - 顶部应用身份区域带渐变背景与应用图标,版本信息列表带颜色编码的分类图标
  • 首页状态栏视觉增强 - 顶部状态改为独立 hero 卡片,带颜色编码指示灯与 glow 效果;各分区标题增加颜色编码小图标;节点模式选择使用 radio dot 替代旧指示器
  • 端口设置弹窗复用 - 首页与设置页共用同一个端口设置弹窗,统一端口范围校验、端口冲突拦截与运行态应用逻辑,避免两处保存行为漂移
  • macOS 发布产物区分架构 - macOS .dmg.app.tar.gz 上传前会追加架构后缀,避免 arm64 与 x86_64 产物在 Release 中同名覆盖

v2.3.0

Choose a tag to compare

@github-actions github-actions released this 26 Apr 07:32

[v2.3.0] - 2026-04-22

✨ 新功能

  • 订阅 URI 新增 TUIC / AnyTLS 支持(#47 - 订阅编辑页的“节点链接 / YAML”模式新增 tuic://anytls:// 解析能力;手动粘贴 URI 列表和从订阅正文提取节点时,都会按 sing-box 官方 outbound 结构生成对应节点

🔧 优化改进

  • 设置页分组重构 - 设置页改为分段 Tab 导航,将基础偏好、内核管理、网络与高级配置、更新备份、关于信息按使用场景归类;同时拆分原有大页面为多个设置组件,降低单页信息密度并保留原有弹窗与运行态保存行为
  • URI 解析字段适配官方文档 - tuic 节点补齐 congestion_controludp_relay_modeudp_over_streamzero_rtt_handshakeheartbeatnetwork 等常用参数映射;anytls 节点补齐 idle_session_check_intervalidle_session_timeoutmin_idle_session,并统一写入标准 tls.server_name / tls.insecure / tls.alpn
  • 订阅入口提示同步更新 - 多语言文案中的 URI 支持说明补充 tuic://anytls://,避免界面仍显示旧的协议支持范围
  • TUN 排除路由地址前端配置(#49 - 设置页新增 route_exclude_address 多行 CIDR 输入,保存前会先拦截明显无效的条目;留空时不写入该字段,继续使用后端/内核默认行为
  • 启动诊断链路结构化 - 内核状态快照新增 startup_diagnosisreadiness,保留原有兼容字段的同时,把启动前校验、启动后探针、自动管理与守护失败统一到同一套诊断结构里,避免继续只看到笼统的“启动失败”
  • 首页/日志页失败排查入口补齐 - 首页会直接展示最近一次启动诊断摘要与建议动作;日志页也会补充独立的启动诊断区块,即使 relay 日志尚未建立,也能查看最近一次失败详情
  • 启动状态同步口径统一 - kernel-errorkernel-status-changed 现在分别承载结构化失败诊断与 readiness 信息,前端改由 KernelStore 统一接管这两类状态,减少首页、托盘和日志页之间的提示漂移

🐛 问题修复

  • GUI 拉起内核长时间运行断网修复 - 修复应用启动 sing-box 时 stderr 被管道化但未持续读取,日志输出累积后可能阻塞内核进程的问题;同时将内核日志固定写入工作目录 sing-box.log、修复事件中继提前结束,避免手动运行稳定但 GUI 拉起一段时间后连接失效
  • 自启动托盘图标状态回填修复 - 开机自启并隐藏到托盘时,后端会在启动恢复与内核自动管理后主动刷新托盘运行态;系统代理/TUN 已开启时无需先打开主界面,托盘图标和菜单状态即可立即正确着色与回显
  • 内核启动失败提示可读性修复(#42 - kernel-error 事件现在会附带结构化启动诊断,KernelStore 统一接管失败事实;托盘与首页不再只能依赖 lastError 字符串,/version 400、配置缺失/无效、权限问题等常见失败路径会保留更明确的分类和上下文
  • 启动重试残留旧错误修复(#42 - 新一次启动会重置上一轮失败诊断,成功拉起后也会及时清空旧错误;像 relay 启动失败、前台自动管理重试、sudo/权限类启动失败这类边缘路径,现在也会尽量同步到统一诊断状态,避免页面继续挂着过期失败信息

v2.2.9

Choose a tag to compare

@github-actions github-actions released this 04 Apr 13:40

[v2.2.9] - 2026-04-04

✨ 新功能

  • 开机自启动托盘隐藏开关 - 设置页启动设置新增“开机后自动隐藏到托盘”选项,可独立控制系统自启动时是否直接进入托盘

🔧 优化改进

  • 自启动启动参数链路重构 - 自启动参数从固定 --hide 改为统一 --autostart,并在应用启动早期根据本地启动偏好决定是否隐藏窗口,避免后端把托盘行为写死
  • 启动前轻量配置落盘 - 新增独立的启动偏好文件,持久化开机自启、开机隐藏到托盘和关闭窗口行为,保证系统登录拉起时可以在数据库初始化前完成窗口模式决策
  • 自启动托盘体验无闪屏 - 当启用“开机后自动隐藏到托盘”时,主窗口会在最早安全时机直接隐藏,不再依赖前端初始化后再切换,减少启动闪现

🐛 问题修复

  • sing-box 1.13 入站字段迁移修复 - 清理配置生成与运行时 patch 链路里残留的 legacy inbound 字段,不再输出 inbounds[].sniff / sniff_override_destination;同时统一保证 route.rules 中存在 action: "sniff",修复升级到 sing-box 1.13+ 后因 legacy inbound fields 被移除而导致的启动失败
  • 原始订阅配置覆盖修复(#44 - 新增、切换、刷新、回滚和启动恢复订阅时,会先同步最新订阅元数据,再按当前订阅真实模式决定配置 patch 策略;勾选“使用原始配置”后将稳定保持“仅替换端口”,不再被高级设置误判后写回 sniff、DNS 等字段而导致自定义 sing-box 配置被覆盖
  • 节点代理模式状态回显修复(替代 #45 - 首页启动后会主动从当前生效配置与运行中的 Clash API 同步节点代理模式,不再固定显示 rule;切换 global/rule 时会优先即时同步运行态,若内核暂未接入则明确提示“已保存、重启后生效”,避免 UI、active_config_path 与实际运行模式长期漂移
  • 轻量模式与开机自启联动修复 - 系统自启动且自动隐藏到托盘时,现会正确继承“轻量模式(销毁窗口)”策略,不再始终退化为简单隐藏窗口
  • 自启动窗口显示控制修复 - 关闭“开机后自动隐藏到托盘”后,即使开启系统自启动,应用也会在登录后正常显示主窗口,不再被固定参数强制隐藏
  • 轻量模式托盘控制失效修复 - 托盘中的“系统代理 / TUN / 重启内核”等控制型动作改为后端直接执行,主窗口销毁后不再因前端监听器缺失而失效
  • Windows 托盘开启 TUN 回退修复 - 轻量模式下从托盘开启 TUN 且当前不是管理员时,会先恢复主窗口并回退到原有“弹确认后以管理员重启”的前端流程,避免无界面提权链路失效导致无法真正进入 TUN

v2.2.8

Choose a tag to compare

@github-actions github-actions released this 21 Mar 16:54

[v2.2.8] - 2026-03-22

✨ 新功能

  • 局域网访问开关 - 设置页新增“允许局域网访问”选项,开启后代理入站会监听 0.0.0.0,局域网内设备可通过当前机器 IP 使用代理
  • 托盘轻量模式 - 新增“关闭窗口行为”设置,可选择继续隐藏到托盘,或在关闭时销毁主窗口,仅保留托盘与后台任务,以显著降低后台 WebView 内存占用

🔧 优化改进

  • 控制面维持本机访问 - 暴露局域网代理时,Clash API 控制端口仍保持绑定 127.0.0.1,避免将管理接口一并暴露到局域网
  • 运行态监听地址链路补齐 - 持久化、配置 patch、内核启动运行态与订阅辅助链路统一读取 allow_lan_access,避免启动后监听地址被重置
  • 托盘模式识别增强 - 托盘图标改为复用原始应用图标并按代理模式动态着色:系统代理显示红色、TUN 显示紫色、手动模式保持默认图标,切换模式时会即时刷新,便于快速识别当前状态
  • 托盘代理开关改为双独立控制 - 托盘菜单改为分别控制“系统代理”和“TUN”,移除单独的手动模式入口,并在提示文案中展示组合状态
  • 轻量模式恢复链路完善 - 托盘恢复主窗口时,后端会按 main 窗口配置重建 WebviewWindow 并补发待恢复路由,避免重建后的首屏状态丢失

🐛 问题修复

  • 托盘切换残留运行态修复 - 从托盘关闭 TUN 时会补齐运行态应用与内核重启链路,避免切换后旧的 TUN 仍继续生效
  • VLESS Reality 链接解析补齐 - 订阅/URI 导入 security=reality 的 VLESS 节点时,现会正确解析 pbksidfp,生成 tls.reality 配置并保留指定的 uTLS 指纹,避免因缺失 Reality 握手参数导致连接失败
  • 订阅流量信息兼容增强 - 订阅下载首次请求缺少 subscription-userinfo 响应头时,会自动使用兼容客户端 User-Agent 重试补取流量和到期时间;保留首次请求拿到的订阅正文,避免因机场按 UA 分流导致节点内容被意外替换
  • 原生关闭事件统一托盘策略 - Alt+F4、系统关闭按钮与自定义标题栏关闭按钮统一走托盘策略,避免轻量模式只对自定义关闭按钮生效
  • 轻量模式退出回归修复 - 销毁主窗口后会显式阻止“最后一个窗口关闭即退出应用”的默认行为,确保托盘常驻;托盘“退出”仍能正常停止内核并彻底退出

[Pre-release] v2.2.7

[Pre-release] v2.2.7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Mar 20:25

[v2.2.7] - 2026-03-17

✨ 主要更新

  • Fedora / RPM 支持补齐 - Linux 打包新增 rpm 产物,本地与 Release CI 都可直接生成 x86_64 RPM 安装包
  • Linux 安装包选择更准确 - 更新检查会根据发行版偏好选择 rpm / deb / AppImage,Fedora / RHEL 系优先返回 RPM
  • Linux TUN 关闭链路修复 - TUN 模式下若内核以 sudo/root 身份启动,停止/快速重启会在普通权限清理失败后自动回退到 sudo 清理,避免出现“能启动但无法关闭”的问题

🔧 优化改进

  • Tauri 打包别名修正 - scripts/tauri-wrapper.mjs 的 Linux / macOS 预设别名改为使用 Tauri 2 正确的 --bundles 参数,避免 bundle 参数误透传给 cargo
  • 发布流水线补齐 RPM - Release 工作流增加 Linux RPM 依赖安装与产物上传,预发布页面会一并附带 .rpm
  • 本机构建入口新增 RPM - 新增 pnpm run tauri build:linux:rpm,便于 Fedora 等 RPM 系发行版本地构建验证
  • Linux 进程探测更稳健 - sing-box 进程检测新增活跃 PID 过滤,忽略 zombie 进程并输出更明确的复核日志
  • Linux 生命周期管理增强 - TUN 提权启动后会尽量记录真实 sing-box PID,停止/替换/更新内核时优先复用真实托管 PID 进行清理
  • 清理失败诊断增强 - kill/pkill 与 sudo 清理链路补充错误透传和回退日志,便于定位权限不足、残留 root 进程等问题

📚 文档更新

  • 重写 README.mdREADME.zh.mddocs/development.mddocs/i18n.md,统一当前跨平台架构、内核拉取流程、本地数据目录与发布说明
  • Linux 构建文档补充 - 开发文档新增 Fedora / RHEL 依赖安装说明,以及 Linux RPM 构建命令示例
  • 更新日志补充 Linux TUN 修复说明 - 记录 Linux 下 TUN root 进程关闭回退、活跃 PID 复核与残留进程清理策略调整

v2.2.6

Choose a tag to compare

@github-actions github-actions released this 05 Mar 09:08

[v2.2.6] - 2026-03-05

✨ 主要更新

  • 更新设置更灵活 - 新增 stable / prerelease / autobuild 三种更新通道,可按偏好选择更新节奏
  • 备份与恢复上线 - 可以导出当前应用数据,也可先预检再恢复,迁移或重装更省心
  • 订阅状态更清晰 - 自动更新会显示失败次数、原因和重试时间,方便判断是否需要手动处理
  • 多语言体验提升 - 俄语/日语翻译补齐,通知与错误文案更统一,减少中英混杂
  • 设置页文案本地化 - “系统平台”“加载中”等文案支持随语言切换

🌐 网络与代理(#38

  • 新增 Fake DNS(默认关闭) - 支持 fakeip DNS server,默认不启用,避免影响既有配置行为
  • Fake DNS 生效范围可选 - 支持 proxy_only(仅代理流量)与 global_non_cn(全局非 CN)两种策略
  • Fake DNS 地址池可配置 - 支持自定义 IPv4/IPv6 CIDR(默认 198.18.0.0/15fc00::/18),并在前端增加格式校验
  • 反向映射缓存联动 - 启用 Fake DNS 时自动开启 dns.reverse_mappingexperimental.cache_file.store_rdrc
  • TUN 网络自愈能力 - TUN 连通性连续失败后自动触发内核自愈重启,缓解网络切换/插网线后的断网问题
  • 自愈策略可配置 - 新增自愈开关与冷却时间(15-600 秒,默认 90 秒),并持久化到应用配置

🐛 稳定性与安全

  • 修复重复注册问题 - 避免部分场景下的异常行为
  • 修复隐藏启动与自动更新边界问题 - 启动更稳,订阅自动更新更可靠
  • 增强旧备份兼容性 - 老版本备份恢复时会自动补默认更新通道(stable
  • 安全加固 - 收紧默认权限并完善 CSP 配置,降低潜在风险
  • 修复 TUN 插网线后无网络连接 - 守护进程在 TUN 模式下支持自动自愈恢复,降低网络拓扑变化导致的全局断连概率
  • 启动冲突自动清理(#42 - 启动前若检测到旧内核进程残留,会先按进程名强制清理,再继续内核启动流程
  • 强制清理失败提示增强(#42 - 若旧内核进程无法结束,将阻断本次启动并明确提示手动结束进程/以管理员权限重试
  • 快速重启兜底增强 - 停止阶段失败或超时时,升级为按进程名强制清理,减少重启被残留进程卡住的问题

v2.2.5

Choose a tag to compare

@github-actions github-actions released this 02 Mar 10:39

[v2.2.5] - 2026-03-02

✨ 新功能

  • 内核操作编排器 - 新增生命周期编排队列,统一串行处理 start/stop/restart/auto_manage,减少并发竞态
  • 状态快照接口 - 新增 kernel_get_snapshot 命令,前端初始化可先拉取快照再订阅增量事件
  • 操作事件通道 - 新增 kernel-operation-started / kernel-operation-finished / kernel-operation-failed 事件,便于追踪内核操作链路
  • 升级后订阅自动刷新 - 应用版本升级时自动尝试刷新当前激活订阅,失败后后台重试并通知前端手动处理

🔧 优化改进

  • 生命周期一致性 - 自动托管逻辑改为复用统一编排路径,不再绕过生命周期入口直接启停
  • 状态语义增强 - 内核状态事件与状态查询返回补充 kernel_statestate_version(以及操作返回中的 op_id 元信息)
  • 启动稳定性校验 - 内核启动后增加短窗口稳定性检查,减少“返回启动成功但立即退出”的假成功体验
  • 前端状态同步 - KernelStore 初始化改为“先快照后订阅”,并基于 state_version 忽略过期状态覆盖
  • 设置保存策略调整 - 前端自动保存配置默认仅持久化到数据库,不再自动触发运行态重配,避免编辑设置时频繁触发内核重启/配置覆盖
  • 订阅切换即时生效 - 切换活动配置路径时显式触发运行态应用,确保 active_config_path 与内核实际使用配置保持一致
  • 下载出站默认值统一 - singbox_download_detour 默认值统一为 direct,与当前下载链路策略保持一致
  • 内核更新入口降级 - 设置页保留手动内核更新能力,但标记为“高级维护”并弱化主操作入口,默认引导使用内嵌推荐内核
  • 错误事件结构化 - kernel-error 事件补充 code/message/details/source/recoverable/timestamp 字段,并保留兼容 error 字段
  • 全局错误提示与去重 - 前端新增内核失败全局提示中心,统一消费 kernel-errorkernel-operation-failed,同文案 10 秒内去重

🐛 问题修复

  • 事件中继清理 - 中继任务清理从仅 abort 调整为 abort + await,降低重启窗口残留任务风险
  • 启停并发冲突 - 修复手动启停、快速重启、自动托管可能并发触发导致状态漂移的问题
  • 更新安装包匹配修复 - 修复安装包优先级提前退出条件,避免部分平台/架构场景下选择到错误安装包
  • sing-box 1.13 DNS 配置迁移 - 配置生成全面切换至新 DNS server 格式,移除 legacy address/address_resolverdns.servers[].strategy
  • Domain Strategy 迁移修复 - 移除 dns.strategy/default_domain_strategy 等 legacy 选项,统一迁移到 domain_resolver/default_domain_resolver 对象格式
  • DNS detour 兼容修复 - 避免输出 dns.servers[].detour=direct,修复新内核报错 detour to an empty direct outbound makes no sense
  • 启动前配置预检增强 - 启动前执行 sing-box check --config,对常见迁移错误输出可操作中文提示(legacy DNS / legacy domain strategy)
  • 失败状态可见性修复 - 前端状态展示新增 failed/crashed,不再将内核失败统一折叠为 stopped
  • 守护失败漏报修复 - 修复守护重启失败(非 sudo 场景)仅日志不通知前端的问题
  • 自动拉起失败提示修复 - 应用启动自动管理内核失败时,前端可立即收到错误提示

🔧 优化改进

  • 目标内核资源映射 - 构建时改为 bundle.resources 对象映射,只注入当前 --target 对应的 sing-box(.exe)version.txt
  • CI 构建入口统一 - Release 工作流显式使用 pnpm run tauri build(wrapper 脚本),确保多平台构建遵循同一内核资源注入策略
  • Latest 拉取稳健性增强 - fetch-kernel 新增 release 页面兜底解析;当 GitHub API 波动时仍可自动解析最新版本
  • CI 鉴权拉取最新内核 - Release 工作流透传 SING_BOX_GITHUB_TOKEN 给内核下载脚本,降低匿名请求触发限流的概率
  • 脚本回归测试补齐 - 新增 scripts/kernel-targets.test.mjs,覆盖目标资源映射与不支持目标兜底行为

📚 文档更新

  • 开发文档补充 - 明确“仅当前目标平台内核随包分发”的资源注入机制,以及 CI 自动拉取 latest 的执行链路

🐛 问题修复

  • Release CI 编译修复 - 修复 sudo_service 在 Linux/macOS 目标构建时缺少 tauri::Manager trait 导入导致的编译失败

[Pre-release] v2.2.4

Choose a tag to compare

@github-actions github-actions released this 12 Feb 02:30

[v2.2.4] - 2026-02-12

🔧 优化改进

  • Google 分流 - 新增 Google 分流组,使用 geosite-google 规则集覆盖所有 Google 服务(搜索、Gmail、YouTube、Gemini、Cloud 等)
  • 错误提示优化 - 管理员重启失败时,首页弹窗会展示后端返回的具体错误信息,便于定位问题

🐛 问题修复

  • Windows 提权重启修复 - 移除易受路径编码影响的 VBS 提权流程,改用 PowerShell Start-Process -Verb RunAs,修复中文用户名路径下“找不到可执行文件”问题

[Pre-release] v2.2.3

Choose a tag to compare

@github-actions github-actions released this 22 Dec 13:22

[v2.2.3] - 2025-12-22

🔧 优化改进

  • 原始订阅处理 - 使用原始配置时仅替换端口,不再改写 DNS/路由等高级字段
  • 订阅入口提示 - 明确三种添加方式与支持类型,原始配置模式提示高级选项不生效
  • 设置页提示 - 当前订阅为原始配置时,高级订阅模板区域展示提示说明
  • 内核内嵌与自动拉取 - dev/build 自动拉取当前平台内核,缺失才下载
  • 构建流程统一 - 本地与 CI 统一使用 pnpm tauri dev/build,自动注入平台配置

🐛 问题修复

  • 修复订阅配置路径重复导致切换无效的问题(切换时自动重新生成配置)
  • 启动时清理残留内核进程,避免复用非本程序启动的内核实例

[Pre-release] v2.2.1

[Pre-release] v2.2.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Dec 10:17

[v2.2.1] - 2025-12-20

✨ 新功能

  • Hysteria2 协议支持 - 新增对 hysteria2:// 协议的完整解析支持
  • URI 节点列表导入 - 支持直接粘贴 vmess://、vless://、trojan://、ss://、hysteria2:// 节点链接
  • 业务分流组增强 - 完善 Telegram、YouTube、Netflix、OpenAI 等服务的节点候选列表
  • 订阅管理优化 - 新增 URI 列表标签页,简化节点导入流程

🔧 优化改进

  • 自动更新逻辑 - 修复多订阅环境下自动更新时的配置覆盖问题
  • 手动配置限制 - 禁用手动配置的自动更新选项,避免潜在的配置冲突
  • 配置导入兼容性 - 增强多层解码策略,提高对各种订阅格式的兼容性
  • 表单验证增强 - 智能切换配置选项,提升用户输入体验

🐛 问题修复

  • 修复多订阅自动更新时配置被覆盖的问题
  • 解决 Linux 和 macOS 平台进程检测误杀自身应用的问题
  • 修复订阅内容解析的兼容性问题

🌐 国际化

  • 新增 URI 列表相关的多语言支持
  • 更新手动配置提示信息的翻译
  • 优化用户引导文本的表述

💡 使用提示

  • URI 列表支持一行粘贴多个节点链接
  • 手动配置(JSON/URI)不支持自动更新,请手动刷新
  • Hysteria2 协议节点支持完整的参数配置(sni、alpn、insecure 等)