Releases: xinggaoya/sing-box-windows
Releases · xinggaoya/sing-box-windows
Release list
v2.3.1
[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
[v2.3.0] - 2026-04-22
✨ 新功能
- 订阅 URI 新增 TUIC / AnyTLS 支持(#47) - 订阅编辑页的“节点链接 / YAML”模式新增
tuic://与anytls://解析能力;手动粘贴 URI 列表和从订阅正文提取节点时,都会按 sing-box 官方 outbound 结构生成对应节点
🔧 优化改进
- 设置页分组重构 - 设置页改为分段 Tab 导航,将基础偏好、内核管理、网络与高级配置、更新备份、关于信息按使用场景归类;同时拆分原有大页面为多个设置组件,降低单页信息密度并保留原有弹窗与运行态保存行为
- URI 解析字段适配官方文档 -
tuic节点补齐congestion_control、udp_relay_mode、udp_over_stream、zero_rtt_handshake、heartbeat、network等常用参数映射;anytls节点补齐idle_session_check_interval、idle_session_timeout、min_idle_session,并统一写入标准tls.server_name/tls.insecure/tls.alpn - 订阅入口提示同步更新 - 多语言文案中的 URI 支持说明补充
tuic://、anytls://,避免界面仍显示旧的协议支持范围 - TUN 排除路由地址前端配置(#49) - 设置页新增
route_exclude_address多行 CIDR 输入,保存前会先拦截明显无效的条目;留空时不写入该字段,继续使用后端/内核默认行为 - 启动诊断链路结构化 - 内核状态快照新增
startup_diagnosis与readiness,保留原有兼容字段的同时,把启动前校验、启动后探针、自动管理与守护失败统一到同一套诊断结构里,避免继续只看到笼统的“启动失败” - 首页/日志页失败排查入口补齐 - 首页会直接展示最近一次启动诊断摘要与建议动作;日志页也会补充独立的启动诊断区块,即使 relay 日志尚未建立,也能查看最近一次失败详情
- 启动状态同步口径统一 -
kernel-error与kernel-status-changed现在分别承载结构化失败诊断与 readiness 信息,前端改由KernelStore统一接管这两类状态,减少首页、托盘和日志页之间的提示漂移
🐛 问题修复
- GUI 拉起内核长时间运行断网修复 - 修复应用启动 sing-box 时
stderr被管道化但未持续读取,日志输出累积后可能阻塞内核进程的问题;同时将内核日志固定写入工作目录sing-box.log、修复事件中继提前结束,避免手动运行稳定但 GUI 拉起一段时间后连接失效 - 自启动托盘图标状态回填修复 - 开机自启并隐藏到托盘时,后端会在启动恢复与内核自动管理后主动刷新托盘运行态;系统代理/TUN 已开启时无需先打开主界面,托盘图标和菜单状态即可立即正确着色与回显
- 内核启动失败提示可读性修复(#42) -
kernel-error事件现在会附带结构化启动诊断,KernelStore统一接管失败事实;托盘与首页不再只能依赖lastError字符串,/version400、配置缺失/无效、权限问题等常见失败路径会保留更明确的分类和上下文 - 启动重试残留旧错误修复(#42) - 新一次启动会重置上一轮失败诊断,成功拉起后也会及时清空旧错误;像 relay 启动失败、前台自动管理重试、sudo/权限类启动失败这类边缘路径,现在也会尽量同步到统一诊断状态,避免页面继续挂着过期失败信息
v2.2.9
[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
[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 节点时,现会正确解析pbk、sid与fp,生成tls.reality配置并保留指定的 uTLS 指纹,避免因缺失 Reality 握手参数导致连接失败 - 订阅流量信息兼容增强 - 订阅下载首次请求缺少
subscription-userinfo响应头时,会自动使用兼容客户端User-Agent重试补取流量和到期时间;保留首次请求拿到的订阅正文,避免因机场按 UA 分流导致节点内容被意外替换 - 原生关闭事件统一托盘策略 -
Alt+F4、系统关闭按钮与自定义标题栏关闭按钮统一走托盘策略,避免轻量模式只对自定义关闭按钮生效 - 轻量模式退出回归修复 - 销毁主窗口后会显式阻止“最后一个窗口关闭即退出应用”的默认行为,确保托盘常驻;托盘“退出”仍能正常停止内核并彻底退出
[Pre-release] v2.2.7
[v2.2.7] - 2026-03-17
✨ 主要更新
- Fedora / RPM 支持补齐 - Linux 打包新增
rpm产物,本地与 Release CI 都可直接生成x86_64RPM 安装包 - 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-boxPID,停止/替换/更新内核时优先复用真实托管 PID 进行清理 - 清理失败诊断增强 -
kill/pkill与 sudo 清理链路补充错误透传和回退日志,便于定位权限不足、残留 root 进程等问题
📚 文档更新
- 重写
README.md、README.zh.md、docs/development.md、docs/i18n.md,统一当前跨平台架构、内核拉取流程、本地数据目录与发布说明 - Linux 构建文档补充 - 开发文档新增 Fedora / RHEL 依赖安装说明,以及 Linux RPM 构建命令示例
- 更新日志补充 Linux TUN 修复说明 - 记录 Linux 下 TUN root 进程关闭回退、活跃 PID 复核与残留进程清理策略调整
v2.2.6
[v2.2.6] - 2026-03-05
✨ 主要更新
- 更新设置更灵活 - 新增
stable / prerelease / autobuild三种更新通道,可按偏好选择更新节奏 - 备份与恢复上线 - 可以导出当前应用数据,也可先预检再恢复,迁移或重装更省心
- 订阅状态更清晰 - 自动更新会显示失败次数、原因和重试时间,方便判断是否需要手动处理
- 多语言体验提升 - 俄语/日语翻译补齐,通知与错误文案更统一,减少中英混杂
- 设置页文案本地化 - “系统平台”“加载中”等文案支持随语言切换
🌐 网络与代理(#38)
- 新增 Fake DNS(默认关闭) - 支持
fakeipDNS server,默认不启用,避免影响既有配置行为 - Fake DNS 生效范围可选 - 支持
proxy_only(仅代理流量)与global_non_cn(全局非 CN)两种策略 - Fake DNS 地址池可配置 - 支持自定义 IPv4/IPv6 CIDR(默认
198.18.0.0/15、fc00::/18),并在前端增加格式校验 - 反向映射缓存联动 - 启用 Fake DNS 时自动开启
dns.reverse_mapping与experimental.cache_file.store_rdrc - TUN 网络自愈能力 - TUN 连通性连续失败后自动触发内核自愈重启,缓解网络切换/插网线后的断网问题
- 自愈策略可配置 - 新增自愈开关与冷却时间(15-600 秒,默认 90 秒),并持久化到应用配置
🐛 稳定性与安全
- 修复重复注册问题 - 避免部分场景下的异常行为
- 修复隐藏启动与自动更新边界问题 - 启动更稳,订阅自动更新更可靠
- 增强旧备份兼容性 - 老版本备份恢复时会自动补默认更新通道(
stable) - 安全加固 - 收紧默认权限并完善 CSP 配置,降低潜在风险
- 修复 TUN 插网线后无网络连接 - 守护进程在 TUN 模式下支持自动自愈恢复,降低网络拓扑变化导致的全局断连概率
- 启动冲突自动清理(#42) - 启动前若检测到旧内核进程残留,会先按进程名强制清理,再继续内核启动流程
- 强制清理失败提示增强(#42) - 若旧内核进程无法结束,将阻断本次启动并明确提示手动结束进程/以管理员权限重试
- 快速重启兜底增强 - 停止阶段失败或超时时,升级为按进程名强制清理,减少重启被残留进程卡住的问题
v2.2.5
[v2.2.5] - 2026-03-02
✨ 新功能
- 内核操作编排器 - 新增生命周期编排队列,统一串行处理
start/stop/restart/auto_manage,减少并发竞态 - 状态快照接口 - 新增
kernel_get_snapshot命令,前端初始化可先拉取快照再订阅增量事件 - 操作事件通道 - 新增
kernel-operation-started/kernel-operation-finished/kernel-operation-failed事件,便于追踪内核操作链路 - 升级后订阅自动刷新 - 应用版本升级时自动尝试刷新当前激活订阅,失败后后台重试并通知前端手动处理
🔧 优化改进
- 生命周期一致性 - 自动托管逻辑改为复用统一编排路径,不再绕过生命周期入口直接启停
- 状态语义增强 - 内核状态事件与状态查询返回补充
kernel_state、state_version(以及操作返回中的op_id元信息) - 启动稳定性校验 - 内核启动后增加短窗口稳定性检查,减少“返回启动成功但立即退出”的假成功体验
- 前端状态同步 -
KernelStore初始化改为“先快照后订阅”,并基于state_version忽略过期状态覆盖 - 设置保存策略调整 - 前端自动保存配置默认仅持久化到数据库,不再自动触发运行态重配,避免编辑设置时频繁触发内核重启/配置覆盖
- 订阅切换即时生效 - 切换活动配置路径时显式触发运行态应用,确保
active_config_path与内核实际使用配置保持一致 - 下载出站默认值统一 -
singbox_download_detour默认值统一为direct,与当前下载链路策略保持一致 - 内核更新入口降级 - 设置页保留手动内核更新能力,但标记为“高级维护”并弱化主操作入口,默认引导使用内嵌推荐内核
- 错误事件结构化 -
kernel-error事件补充code/message/details/source/recoverable/timestamp字段,并保留兼容error字段 - 全局错误提示与去重 - 前端新增内核失败全局提示中心,统一消费
kernel-error与kernel-operation-failed,同文案 10 秒内去重
🐛 问题修复
- 事件中继清理 - 中继任务清理从仅
abort调整为abort + await,降低重启窗口残留任务风险 - 启停并发冲突 - 修复手动启停、快速重启、自动托管可能并发触发导致状态漂移的问题
- 更新安装包匹配修复 - 修复安装包优先级提前退出条件,避免部分平台/架构场景下选择到错误安装包
- sing-box 1.13 DNS 配置迁移 - 配置生成全面切换至新 DNS server 格式,移除 legacy
address/address_resolver与dns.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::Managertrait 导入导致的编译失败
[Pre-release] v2.2.4
[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
[v2.2.3] - 2025-12-22
🔧 优化改进
- 原始订阅处理 - 使用原始配置时仅替换端口,不再改写 DNS/路由等高级字段
- 订阅入口提示 - 明确三种添加方式与支持类型,原始配置模式提示高级选项不生效
- 设置页提示 - 当前订阅为原始配置时,高级订阅模板区域展示提示说明
- 内核内嵌与自动拉取 - dev/build 自动拉取当前平台内核,缺失才下载
- 构建流程统一 - 本地与 CI 统一使用
pnpm tauri dev/build,自动注入平台配置
🐛 问题修复
- 修复订阅配置路径重复导致切换无效的问题(切换时自动重新生成配置)
- 启动时清理残留内核进程,避免复用非本程序启动的内核实例
[Pre-release] v2.2.1
[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 等)