Skip to content

备份与还原 ​

面板会备份自己的数据库:所有管理员、用户、节点、模板、证书和设置。一个备份文件就足以在另一台服务器上、使用任一种数据库重建面板。本页介绍 设置 → 备份,只有主管理员可以打开它。

备份页面:用于创建和下载备份的卡片、保存在服务器上的备份列表、自动备份计划,以及用于检查和还原备份文件的拖放区域备份页面:用于创建和下载备份的卡片、保存在服务器上的备份列表、自动备份计划,以及用于检查和还原备份文件的拖放区域

WARNING

备份文件包含面板的全部内容:密码哈希、用户的凭据、证书私钥,以及节点据以信任面板的密钥。拿到文件的人就拿到了面板。请妥善保管备份文件,并尽量加密。

备份文件包含什么 ​

备份文件是所有数据表的可移植导出,经过压缩。它不是数据库文件的副本,因此在 SQLite 上创建的备份可以还原到 PostgreSQL,反之亦然。

创建备份时可以省略两大部分:

  • 包含流量历史:流量图表和每小时汇总,通常占数据库的大部分。省略它不会丢失任何实时状态:用户已用的流量保存在用户自身上。
  • 包含审计日志:所有管理员操作的记录。

有三样东西永远不在备份中:指定数据库的配置文件、磁盘上的订阅主题,以及暂存的节点二进制文件。镜像的规则集文件也不包含在内;面板会重新下载它们。节点上没有值得备份的内容,因此节点不需要单独备份。

创建备份 ​

  • 下载备份 创建一个备份并直接发送到你的浏览器。服务器上不保留任何文件。
  • 此服务器上的备份 下的 立即创建 会在备份目录中写入一个备份。

此服务器上的备份 列表显示每个备份文件的日期、大小和内容,并提供下载、检查和删除按钮。标记为 还原前 的备份是还原时自动创建的安全副本(见下文)。

标准安装下,备份目录是 /var/opt/nexora/backups/。在 Docker 中是 compose 文件旁边的 ./backups,因此备份不会随容器丢失。请另外把它复制到别处:只存放在它所保护的机器上的备份,算不上备份。

服务 → 备份目的地 会把每个备份(无论是定时创建还是手动创建的)同时发送到兼容 S3 的存储、SFTP 服务器或 Telegram 聊天。参见 备份目的地。

加密 ​

口令 用于加密备份文件。口令无法找回:丢失口令就等于丢失备份,因此请把它和备份副本保存在一起,而不是放在面板上。

  • 下载时,在点击 下载备份 之前输入两遍口令。留空则得到未加密的备份。
  • 立即创建 使用上面输入的口令;如果为空,则使用定时备份的口令。
  • 定时备份有自己的口令。设置后不再显示;字段留空即保留原口令。停止加密 会移除它。

自动备份 ​

在 自动备份 下:

设置
自动创建备份默认关闭。
每(小时)备份频率。
保留保留多少个备份。0 表示全部保留。
目录备份存放位置,使用绝对路径。
内容是否包含流量历史和审计日志。
口令用于加密定时备份。

下一次备份的时间根据目录中已有的最新备份计算。面板关闭一段时间后,重新启动时会立即创建一个备份;你手动创建的备份也会计入。保留策略会删除超出 保留 数量的最旧备份,但从不删除还原前快照。

同样的设置也可以通过命令行完成;参见 命令行。

检查备份文件 ​

把文件拖到 检查备份文件 上,或在已保存的备份上点击检查按钮。面板会完整读取它,但不写入任何内容。加密的备份会先要求输入口令(解锁)。

检查结果会显示备份的创建时间和创建它的面板版本、来源面板、数据库类型、大小,以及每个数据表的行数,并与备份自带的清单核对。这样可以在你依赖它之前发现下载不完整的问题。在 需要注意 下,它会提示对还原有影响的所有情况,例如:

  • 备份中没有管理员账户;
  • 备份创建于另一台机器,因此其中的许可证在这里无效;
  • 备份由更新版本的面板写入;
  • 省略了流量历史或审计日志;
  • 备份中的面板客户端证书不同,因此在重新安装之前,所有节点都会拒绝这个面板;
  • 部分节点的固定证书不同,因此需要重新固定。

还原 ​

检查之后,从此备份还原 会用备份内容替换数据库中的所有行,并重启面板。

  1. 检查备份文件,并阅读警告。
  2. 选择 保留此安装的 哪些内容:
    • 保留本面板的地址设置:域名、基础路径、监听地址和 HTTPS。默认开启,以免来自另一台机器的备份让面板在本服务器无法访问的地址上启动。
    • 保留本面板的许可证:默认开启。许可证属于一台机器,从其他主机带来的许可证在这里无效。
  3. 输入确认短语,然后点击 替换数据库并重启。
  4. 面板恢复后重新登录。如果备份来自另一个面板,请使用那个面板的账户。

在做任何修改之前,面板会把当前数据库完整地保存为一个 还原前 快照,放在备份目录中。如果还原是个错误,还原这个快照即可。还原本身要么全部成功,要么完全不生效:失败时,面板保持原样。

如果面板根本无法启动,请改用服务器命令行还原;参见 命令行。

迁移到另一台服务器 ​

  1. 在旧面板上创建并下载一个备份。
  2. 在新服务器上安装面板,并打开设置链接。参见 安装面板。
  3. 在设置向导的第一个界面上,不要填写表单,而是点击 从另一台服务器迁移?从备份还原,然后选择 还原并重启。
  4. 使用旧面板的账户登录。

在设置过程中还原时,会采用备份中自带的设置(包括地址),因为空白安装没有值得保留的设置。如果安装程序固定了新面板启动时所用的地址,则该地址仍然优先;如果还原的地址在这里无法使用,面板也会退回到该地址。

许可证会一并迁移过来,但仍然绑定在旧机器上。请在 许可证 页面使用 将许可证迁移到本机 迁移它;参见 许可证。

把 DNS 指向新服务器。节点不需要任何操作:它们信任面板的客户端证书,而备份中包含这张证书。

如果你使用订阅主题和预设文件,请手动把它们复制过去。

在 SQLite 与 PostgreSQL 之间迁移 ​

备份可以还原到任一种数据库,因此备份也是切换数据库的方式:

  1. 在旧面板上创建并下载一个备份。
  2. 在新数据库上安装面板,例如使用安装程序的 --postgres 选项,或让现有面板的配置文件指向新数据库。
  3. 还原备份:在全新面板上通过设置向导还原,在已完成设置的面板上通过 设置 → 备份 还原。

如何选择数据库,参见 安装面板。

文字与图片采用 CC BY 4.0 许可。