跳到主要内容

同步与备份

NyaTerm 的 同步与备份 能力,解决的不是“远程文件传输”,而是把应用里的可移植配置数据做跨设备同步和可恢复备份

你可以把它理解成两件事:

  • 同步(Sync):把当前设备的可移植配置快照推送到云端,或从云端拉回最新快照
  • 备份(Backup):按手动或定时方式,把当前状态保存成可回溯的加密备份快照

当前支持两类远程存储提供方:

  • WebDAV
  • S3 兼容存储

先决条件:先设置主密码

在使用 设置 → 同步与备份 前,你必须先到 设置 → 安全 设置 主密码

这是当前实现的前置条件,而不是可选建议。没有主密码时:

  • 不能启用同步与备份
  • 不能执行测试连接、推送、拉取、备份等手动操作
  • 也不能使用定时加密备份

原因很直接:上传到云端的是加密后的可移植快照,而不是明文配置文件。

从哪里进入

这项功能主要有两个入口:

1. 设置 → 同步与备份

这里是主要配置页,负责:

  • 选择 provider
  • 配置远程命名空间与 provider 根路径
  • 设置自动同步策略
  • 设置定时备份策略
  • 运行手动操作
  • 查看远程备份列表
  • 在冲突发生时执行处理

2. 工作区中的 Sync & Backup 面板

主工作区侧栏里还有一个 Sync & Backup 面板,用于查看:

  • 当前状态
  • 最近的同步 / 备份活动
  • 最近一次检查、同步、备份时间
  • 冲突状态与快速处理入口
  • 按状态或类型过滤历史记录,快速定位失败或冲突条目

如果你想“配置功能”,去设置页;如果你想“看运行状态”,看工作区面板更合适。

Provider 配置

通用项

无论使用哪种 provider,都需要先确认这几项:

  • 启用同步和备份
  • 存储提供方配置
  • 设备名称
  • 远程命名空间

其中:

  • 设备名称 会写入快照元数据,方便你识别是哪台设备上传的内容
  • 远程命名空间 是 NyaTerm 在远端保存同步 / 备份快照时使用的顶层路径前缀

WebDAV

如果 provider 选的是 WebDAV,通常需要填写:

  • WebDAV Endpoint
  • Provider Root(可选)
  • 用户名
  • 密码

适合场景:

  • 已经有 NAS / 私有云 / WebDAV 网关
  • 想复用现成的文档或对象存储入口

S3 兼容存储

如果 provider 选的是 S3 兼容,通常需要填写:

  • S3 Endpoint
  • Bucket
  • Region
  • Provider Root(可选)
  • Access Key ID
  • Secret Access Key
  • Session Token(可选)
  • Virtual Host Style(按 provider 要求决定是否开启)

适合场景:

  • 你已经在用对象存储保存运维资产
  • 想把 NyaTerm 的配置与备份纳入统一存储体系

配置校验

当前实现会先做最基本的 provider 校验:

  • WebDAV 至少需要填写 endpoint
  • S3 至少需要填写 endpoint 与 bucket
  • Access Key IDSecret Access Key 需要成对出现

建议在真正启用自动策略前,先执行一次 测试连接

自动同步策略

自动同步策略 中,你可以控制两件事:

启动时检查

开启后,NyaTerm 会在启动时检查远端是否已经有新的同步快照。

常见结果包括:

  • 本地与云端一致
  • 远端有更新,可以拉取
  • 本地有尚未同步的变化
  • 本地和云端都变了,进入冲突状态

这不是“实时云端监听”,而是启动时检查当前状态

本地变更后的自动推送

开启后,当受支持的本地配置数据发生变化并保存完成时,NyaTerm 会在一个防抖窗口后自动推送快照。

你可以设置:

  • 同步防抖秒数

这意味着它更接近“保存后延迟推送”,而不是实时双向同步。

定时备份策略

同步和备份是两回事。

  • 同步 更偏“让别的设备拿到最新快照”
  • 备份 更偏“保留一组可恢复的历史版本”

定时备份策略 中,你可以设置:

  • 启用定时备份
  • 备份间隔(小时)
  • 保留数量

当前实现会按配置周期创建加密备份快照,并在超出保留数量后清理更旧的远程备份条目。

手动操作

设置页里还提供了一组 手动操作,适合在首次配置、排障或谨慎上线时使用。

测试连接

先验证 provider 配置与远端目录是否可用。

立即推送

把当前设备的可移植配置快照上传到云端。

适合:

  • 你刚完成一组设置调整
  • 想明确控制何时写入云端

立即拉取

把云端当前最新同步快照拉回本地并应用。

适合:

  • 另一台设备已经推送过更新
  • 当前设备需要显式对齐到最新云端状态

立即备份

马上创建一个新的远程加密备份快照。

适合:

  • 做重大设置变更前先留一个恢复点
  • 准备迁移设备、重装系统或做高风险调试前手动保底

远程备份与恢复

设置页中的 远程备份与冲突处理 区域会列出当前云端可用的备份条目。你可以看到:

  • 备份时间
  • revision
  • 设备标识
  • payload hash
  • app version

恢复远程备份

当你点击恢复时,NyaTerm 会把对应的远程备份应用到当前设备。

这适合:

  • 新设备初始化后快速恢复常用配置
  • 某次错误修改后回退到已知可用状态
  • 排障时回到较早的工作基线

需要注意:

  • 恢复会覆盖快照中包含的可移植本地数据
  • 它不是字段级合并,也不是逐项弹窗确认
  • 文档更应该把它理解为“恢复一个完整快照”

冲突是怎么出现的?

当前实现里,如果本地状态云端状态自上次同步后都发生了变化,就会进入冲突状态。

典型场景:

  • A 设备改了设置但还没拉取 B 的更新
  • B 设备已经把新的同步快照推到了云端
  • A 再尝试推送或启动检查时发现双方都变了

这时你会看到冲突预览,例如:

  • 本地快照哈希
  • 远程 revision
  • 远程设备信息
  • 冲突提示信息

冲突怎么处理?

当前实现提供两种处理方式:

下载远程版本

把远端快照拉回当前设备并应用。

适合:

  • 你确认云端版本才是应该保留的版本
  • 当前设备上的本地变更不需要保留

上传本地版本

强制用当前设备的本地快照覆盖远端最新状态。

适合:

  • 你确认当前设备才是最新正确版本
  • 你希望别的设备后续以这份状态为准

这里要特别注意:

  • 当前不是字段级 merge
  • 也不是多人协作式冲突解决
  • 本质上是“本地快照”和“远程快照”二选一

会同步 / 备份哪些内容?

当前实现基于 portable snapshot,覆盖的是 NyaTerm 的可移植配置数据,例如:

  • 已保存连接 / 分组
  • 密钥、密码、OTP 配置
  • 代理与隧道
  • 快捷命令
  • 大部分应用设置

备份快照还会包含额外的命令历史数据,用于恢复更完整的使用环境。

但不要把它理解成“整台设备的所有 UI 状态都会漫游”。当前实现会保留一部分设备本地 UI 状态,例如:

  • 当前打开的标签页
  • 面板开合与尺寸等运行态布局

所以它更适合被理解为:

  • 同步可移植配置
  • 恢复工作环境的核心配置层

而不是完整桌面会话镜像。

建议的首次配置顺序

如果你是第一次启用,建议按这个顺序:

  1. 设置 → 安全 中设置主密码
  2. 打开 设置 → 同步与备份
  3. 先选 provider,再填写 endpoint / bucket / root / 凭据
  4. 设置设备名称与远程命名空间
  5. 先执行 测试连接
  6. 再决定是否启用:
    • 启动时检查
    • 自动推送
    • 定时备份
  7. 最后手动执行一次 立即推送立即备份,确认整条链路可用

排障建议

如果你发现按钮不可用或操作被拦住,优先检查:

  • 是否已经设置主密码
  • 当前设置是否已经保存(未应用的草稿会阻止某些手动操作)
  • provider 必填项是否已经补齐
  • 远端命名空间、provider root、endpoint 是否填写正确

如果你主要想查看最近发生了什么,优先看工作区里的 Sync & Backup 面板;如果你主要想改配置或恢复远程备份,回到设置页更直接。

使用建议
  • 首次接入新 provider 时,先“测试连接”,再启用自动策略。
  • 如果你准备做较大范围的连接、OTP、快捷命令调整,建议先手动执行一次“立即备份”。
  • 如果你经常在多台设备之间切换,建议统一远程命名空间规则,并给每台设备设置清晰的设备名称。