backup-restore.mdx 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. ---
  2. title: 备份与恢复
  3. description: 手动或通过 Telegram 机器人备份并恢复你的 3x-ui 数据库与证书。
  4. icon: DatabaseBackup
  5. ---
  6. 你的全部配置——入站、客户端、各项设置——都存放在面板的数据库中。
  7. 请定期备份,以便日后恢复或迁移。
  8. ## 需要备份的内容
  9. - **数据库** —— 默认为位于 `/etc/x-ui/x-ui.db` 的 SQLite(如果你使用
  10. PostgreSQL 后端,则为对应的 PostgreSQL 数据库)。
  11. - **证书** —— `/root/cert/` 下的所有内容(或你存放 TLS 证书的任意位置)。
  12. ## 手动备份
  13. 你可以从面板的概览页下载备份,也可以直接从服务器上复制数据库文件:
  14. ```bash title="copy the SQLite database"
  15. cp /etc/x-ui/x-ui.db /root/x-ui-backup-$(date +%F).db
  16. ```
  17. 要恢复时,先停止面板,把数据库文件放回原位,然后重新启动面板。
  18. <Callout type="warn">
  19. 尽量将备份恢复到与其来源**相同的主版本**上。跨主版本升级时,应让面板自行
  20. 运行迁移,而不要强行套用旧的数据库结构。
  21. </Callout>
  22. ## 机器人自动备份(Telegram 与 Discord)
  23. 如果你已配置 [Telegram 机器人](/docs/operations/telegram-bot) 或 [Discord 机器人](/docs/operations/discord-bot),启用 **`tgBotBackup`** 或 **`discordBotBackup`** 即可在周期性报告中附带一份备份(按 `tgRunTime` / `discordRunTime` 计划执行,默认每天一次)。机器人会将**数据库**与 Xray 的 **`config.json`** 一并发送到你的管理员聊天或频道,从而让你始终拥有一份服务器之外的副本。管理员也可以随时从 Telegram 机器人的菜单或使用 Discord 的 `!backup` 命令按需请求备份。
  24. ## SQLite 转储 / 恢复
  25. `x-ui migrate-db` 命令可在 SQLite 数据库与纯文本 SQL 转储之间相互转换
  26. (便于检查,或在不同机器之间转移):
  27. ```bash
  28. x-ui migrate-db --dump /root/x-ui.sql # SQLite -> SQL text
  29. x-ui migrate-db --restore /root/x-ui.sql # SQL text -> SQLite
  30. ```
  31. 若想改用 PostgreSQL,请参阅[数据库](/docs/reference/database)。
  32. <Callout type="info">
  33. 无论采用哪种方式,都请将备份保存在**服务器之外**,并不时测试一次恢复——
  34. 未经测试的备份算不上备份。
  35. </Callout>