为什么安装包还在,也不一定能恢复原状态
图形客户端、代理内核和配置格式是三层东西。客户端可能升级时更换内核,也可能自动转换配置或调整默认值。旧程序未必能读取新版本写回的配置。因此可恢复的备份应包含升级前的数据与版本记录,而不只是下载目录里的安装包。
| 备份项目 | 用途 |
|---|---|
| 客户端版本、平台和内核版本 | 定位具体兼容区间 |
| 订阅配置和导入方式 | 恢复来源;敏感链接需受控保存 |
| 本地覆写、规则与策略组选择 | 防止升级后自定义行为丢失 |
| DNS、TUN、系统代理与排除项 | 恢复接管和局域网访问 |
| 官方安装包或可核验的版本入口 | 回退时取得正确程序 |
| 证书、脚本与应用专属设置 | 仅备份实际使用的项目,注明恢复位置 |
第一步:先做一次可用的基线
- 在旧版本下确认日常网页、终端、视频或通话能完成实际操作;原本就失败的问题应单独记录。
- 用客户端支持的导出方式保存配置。导出范围若不包含覆写、订阅地址或状态,按官方说明另存;不要假定一个 YAML 包含了所有设置。
- 给备份标记日期、系统、客户端及内核版本,存入自己可控的加密或受限位置。完整配置常含节点秘密,不放公共仓库。
- 确认备份能读到所需条目,并保存一份独立副本,避免后续升级把同一目录覆盖。
第二步:按实际跨越的版本看迁移说明
以 sing-box 为例,官方迁移文档按版本列出 DNS、规则动作、TUN 等变更。只看最新版的一句话说明,可能漏掉从当前旧版到目标版中间经历的变化。先记下起点与终点,再逐段核对你的配置使用了哪些已废弃或变更的字段,不要把另一内核的配置语法混进来。
从项目官方渠道取得更新,并在项目提供签名或校验值时按官方方法核验。先确认操作系统与架构匹配;不要根据陌生网盘的“修复增强版”进行迁移。受管理设备依照组织的安装机制更新。
第三步:在副本上修改,一次只动一层
- 保留原始备份不动,复制出用于新版本的配置;优先导入成新配置,而不是直接覆盖唯一可用配置。
- 先按官方迁移说明修复明确不兼容的字段,保留错误位置和修改记录。解析通过只代表格式可接受,不代表网络行为正确。
- 有官方配置检查功能时先运行检查,再启动内核。不要用删除 TLS、认证或 DNS 关键字段的办法让报错消失。
- 首次测试固定节点和规则模式,避免同时切换协议、DNS 与分流方案。若客户端会自动接管系统代理,确认旧实例已正常退出,防止两个服务争抢端口。
升级后要通过哪些验收
| 场景 | 检查重点 |
|---|---|
| 国内与需代理的目标各一个 | 命中规则及最终出口符合预期 |
| 局域网打印机、NAS 或开发服务 | 原有排除项仍生效 |
| 终端或容器等实际工作流 | 没有只修好浏览器 |
| DNS 与 IPv6 | 行为符合原定覆盖范围,不靠一张检测图下结论 |
| 退出与重新启动 | 系统代理能恢复,配置能重新加载 |
| 订阅刷新之后 | 本地覆写仍在,配置不会恢复成不兼容格式 |
先完成与你实际使用有关的项目,无需为了一个小版本升级制造大量无关测试。日志里仍有废弃字段警告时,记录它对应的版本期限,安排后续迁移;不要把“暂时还能运行”当作永久兼容。
失败时怎样回退
- 保存新版本的脱敏错误,正常退出客户端及内核,确认本次接管已停止。
- 按官方方式恢复先前程序,再恢复升级前那份配置和本地覆写;不要让旧程序直接读取已经转换过的新配置。
- 恢复原系统代理、TUN 和 DNS 状态,重测升级前的基线。若回退涉及已知安全缺陷,优先寻找受支持的修复版本,并限制临时回退的使用范围。
成功稳定后仍可保留上一份可恢复备份,清理不必要的旧凭据副本。好的升级结果是日常工作继续正常、下一次启动也正常,而不只是安装界面显示“已完成”。