# 设置：个性化与多端协同（Beta）

> 文档更新：2026-09-30 ｜ 适用版本：v3 ｜ 功能位置：侧边栏底部「设置」（/system/settings）

## 这组功能是干什么的

设置页集中了两个板块：

1. **个性化**：全局背景与界面外观（动态星空 / 静态星空 / 自定义本地图片），改动即时生效、只存在本机；
2. **多端协同**（Beta）：多台电脑（如家里 + 公司）共管同一批服务器。主端把节点数据加密同步到你自己的 S3 / WebDAV，副本端导入协同文件即可接管同一批节点，不经任何第三方服务器。

## 个性化

三种背景模式：

| 模式 | 说明 |
|---|---|
| 动态 | 星空缓慢漂移并伴随流星效果，观感最佳，GPU 有轻微占用 |
| 静态 | 定格同一幅星空，无动效，偏好安静或性能有限时选它 |
| 自定义 | 使用本地图片（JPG / PNG / WebP，最大 20MB，保存时自动压缩） |

自定义模式补充：

- 图片只保存在本机，不上传；
- 「遮罩透明度」滑块控制图片上方黑色遮罩的深浅——数值越大界面文字越易读。

## 多端协同（Beta）

### 三种模式

| 模式 | 角色 | 说明 |
|---|---|---|
| 独立模式 | 默认 | 未开启协同，行为与单机版完全一致 |
| 主端 | 权威数据源 | 节点与 L2 变更后自动加密上传到你的 S3 / WebDAV；增删节点、调整 L2 都在这台设备执行 |
| 副本端 | 只读接入 | 导入主端导出的协同文件（含口令），自动拉取主端数据；适合第二台管理设备 |

### 工作原理

单向数据流：`主端 → 你的云存储 → 副本端`。

- 数据在主控本地**加密打包后**才上传，云存储只存密文，是「不掌握钥匙的中转站」；
- 同步节奏：主端变更后约 3 秒自动上传 + 每 30 分钟周期兜底；副本端每 30 分钟自动拉取，也可手动「立即同步」；
- 副本端启动时先用本地保存的机密装载身份，**离线也能打开使用**，网络刷新异步进行。

### 同步内容

| 内容 | 说明 |
|---|---|
| 节点列表 | 全部节点的类型 / 地址 / 备注 / 版本，增删同步（事务性整表替换） |
| L2 配置 | 辅助主控连接信息，副本端同样具备集群能力 |
| CA 与同步证书 | 副本端凭同步证书接入被控 / L2，证书自动续期 |
| 云凭据快照 | 主端轮换 S3 密钥后副本端自动愈合，无需重新导入协同文件 |

### 接入步骤

主端（第一台电脑）：

1. 在「云端资源 → 凭证管理」创建 S3 或 WebDAV 凭证；
2. 设置 → 多端协同：选择凭证、填写云端对象路径（如 `xmp-sync/master.dat`，不带首位斜杠）；
3. 按需调整「同步证书有效期」（1-90 天，副本端离线兜底窗口；主端在线时自动续传）；
4. 点击「开启同步」，首次立即上传全量数据。

副本端（第二台电脑）：

1. 在主端「导出协同文件」并设置导出口令（至少 8 位）；
2. 将文件安全拷贝到副本端设备（连同口令）；
3. 副本端设置 → 多端协同 →「导入协同文件」，输入口令选择文件；
4. 导入完成即进入副本模式，之后自动保持同步。导入到已有节点的机器会要求二次确认覆盖。

### 安全设计

- **副本端四道门**：信封版本校验（未知版本拒绝并提示升级）→ 密钥指纹匹配（不匹配引导重新导入）→ 序号单调（防数据回滚）→ CA 指纹变更需人工确认（防来历不明数据）；
- **事务性应用**：节点整表替换在事务中完成，失败自动回滚，不留半套状态；
- **防误覆盖**：云端路径已被其他密钥的数据占用时，主端上传会被拒绝（防止两套主控互相踩踏）；
- **隐私边界**：口令与私钥只在当次操作内使用，不写日志、不回传界面。

### 注意事项

- 副本端是**只读**的：本地改动会被下一次同步覆盖，增删节点请在主端操作；
- 协同文件（.dat）含 RSA 私钥与云凭据快照，等同于全部服务器的管理权——切勿放入网盘公开目录或聊天工具传输；
- 主端「重置协同密钥」会让所有已导出的协同文件立即失效，副本端需重新导入；
- 多端协同处于 **Beta** 阶段，能力仍在打磨，遇到问题欢迎反馈。

### 常见疑问

**问：主端更换了 S3 密钥，副本端要重新导入吗？**
不需要。同步数据里带有云凭据快照，副本端下次同步自动更新。

**问：主端重置协同密钥后，副本端怎么办？**
旧协同文件全部失效，副本端同步时会提示私钥不匹配；在主端重新导出、副本端重新导入即可。

**问：副本端能添加节点吗？**
不能。副本端只读，本地修改会被下次同步覆盖。

**问：关闭同步会怎样？**
主端可选「保留云端数据」（副本端仍可用但不再更新）或「关闭并删除云端」；副本端退出后本地节点数据保留，但因证书不匹配而不可用，可手工清理。

**问：开着协同还能正常用单机功能吗？**
可以。协同只影响节点与 L2 数据的来源；副本端一切页面功能照常，只是数据随主端。
