---
title: "VPS 快照与异地备份教程 | OffshoreServ"
description: "VPS 快照的工作原理、各套餐可保留的快照数量、如何创建一致的快照，以及如何用 restic 添加加密的异地备份。"
url: https://offshoreserv.com/zh/docs/vps/snapshots
lang: zh-Hans
updated: 2026-09-25
source: HTML page at the url above (canonical); this is its Markdown version
---

知识库 · VPS

# VPS 快照与异地备份

OffshoreServ VPS 快照的工作原理、各套餐包含的快照数量、如何创建一致性快照，以及如何使用 restic 或 Borg 添加加密的异地备份。

更新于 2026年9月25日 阅读约 5 分钟

本指南要点

- 快照是 VPS 硬盘在某一时间点的副本，用于快速回滚。它不能替代异地备份。
- 各套餐包含的快照数量：2 个（Dinghy、Sloop、Cutter）、3 个（Schooner、Brigantine）或 5 个（Frigate、Flagship）。
- 申请快照前，请先转储或停止数据库。
- 使用 restic 或 Borg 将加密备份发送到另一个地点，清理旧版本并测试恢复。

VPS6 个章节

快照可以让 [离岸 VPS](https://offshoreserv.com/zh/offshore-vps) 快速回滚。备份则能在服务器本身或您对它的访问权限丢失时帮您恢复数据。两者缺一不可。本指南将介绍两者的区别、各套餐的快照上限、如何创建能让数据库完好无损的快照，以及如何设置加密的异地备份。

## 快照与备份的区别

快照是 VPS 整个硬盘在某一时间点的副本，与 VPS 一起保存在我们的平台上。恢复快照会让整台服务器完全回到当时的状态，因此它是升级失败或配置出错后最快的撤销方式。

备份是存放在其他地方的数据副本：另一台服务器、另一个地点，或您自己的硬件。它独立于 VPS，可以保留多个版本，并且支持恢复单个文件。常用的原则是 3-2-1：数据保留三份副本，存放在两种存储介质上，其中一份位于异地。

| 对比项 | 快照 | 异地备份 |
| --- | --- | --- |
| 复制内容 | 整个硬盘 | 您选择的文件和数据库转储 |
| 存放位置 | 在我们的平台上，与您的 VPS 放在一起 | 在其他地方、由您控制的机器上 |
| 恢复 | 回滚整个硬盘 | 单个文件或完整重建 |
| 版本数 | 2 至 5 个，视套餐而定 | 取决于您的保留规则 |
| 防范的风险 | 有问题的更新、配置错误 | 服务器丢失、访问权限丢失、数周后才发现的错误 |

## 各套餐的快照数量

| 套餐 | 快照 |
| --- | --- |
| Dinghy, Sloop, Cutter | 2 |
| Schooner, Brigantine | 3 |
| Frigate, Flagship | 5 |

如果所有快照名额都已占用，请在申请中注明要替换哪个快照。

## 创建、恢复和删除快照

### 创建

在客户中心的服务器页面上，于 **服务器操作** 下选择 **创建快照** ，并为其起一个能说明用途的名称，例如 `before-php-upgrade`。我们的团队会创建快照，完成后同一页面上的申请会显示为已完成：在进行发行版升级、更换新内核或数据库迁移等高风险变更之前，请等到申请显示为已完成。如果服务器运行着数据库，请先按照下一节的说明做好准备。

### 恢复

> 恢复快照会用快照替换整个硬盘。快照创建之后写入的所有内容都会丢失：新文件、数据库记录、订单、邮件。请先将所需内容从服务器上复制出来；如果还有空余的快照名额，也可以先为当前状态创建快照。

在 **服务器操作** 中选择 **恢复快照** ，并注明快照名称。VPS 会恢复到快照时的状态，重新上线后申请会显示为已完成。请检查您的服务是否已启动，计划任务和证书是否仍然正常。

### 删除

在 **服务器操作** 中通过 **删除快照** 提交申请，并注明快照名称。快照一经删除便无法恢复。请至少保留一个确认完好的快照，例如完成初始设置后创建的那个；变更前创建的快照，可在变更稳定运行几天后再删除。

## 创建一致性快照

对运行中的服务器创建的快照具有崩溃一致性：硬盘状态就如同在那一刻突然断电一样。日志文件系统能很好地应对这种情况。数据库通常也能恢复，但可能丢失最近的事务，而正处于写入过程中的表可能会损坏。在为运行数据库的服务器申请快照之前，请使用以下两种方法之一。

### 短暂停止数据库

最简单的方法。停止服务（PostgreSQL 的服务名为 `postgresql`）：

```
systemctl stop mariadb
```

申请快照，待申请显示为已完成后再重新启动服务（在此之前数据库将保持停止状态）：

```
systemctl start mariadb
```

### 先转储数据库

数据库必须保持运行时的更好方法：即使运行中的数据库文件处于不一致状态，在申请快照前刚刚生成的转储仍是一致的，而且还可以用于异地备份。从转储开始到申请显示为已完成期间，请勿写入任何重要数据。对于 MariaDB（MySQL 上的命令为 `mysqldump`）：

```
mkdir -p /root/db-dumps
chmod 700 /root/db-dumps
mariadb-dump --all-databases --single-transaction --routines --events > /root/db-dumps/mariadb.sql
```

对于 PostgreSQL：

```
runuser -u postgres -- pg_dumpall > /root/db-dumps/postgresql.sql
```

## 使用 restic 或 Borg 进行异地备份

restic 和 Borg 都会在数据离开服务器之前就在服务器上完成加密，并对数据去重，以很低的成本保留多个版本。目标端只能看到加密后的数据，因此可以是任何您能通过 SSH 访问的机器：另一台 VPS、我们其他 [地区](https://offshoreserv.com/zh/locations) 的 [存储服务器](https://offshoreserv.com/zh/offshore-dedicated-servers/storage)，或者您家中的机器。请备份 `/etc`、`/home`、`/root`、网站根目录和应用数据，以及数据库转储（而不是运行中的数据库文件）。请根据您的服务器调整示例中的路径。

### restic

在 VPS 上安装 restic，为 root 创建 SSH 密钥并将其复制到备份主机。然后生成随机的仓库密码，初始化仓库并运行第一次备份：

```
apt install -y restic
ssh-keygen -t ed25519 -N "" -f /root/.ssh/id_ed25519
ssh-copy-id backup@BACKUP_HOST
install -m 600 /dev/null /root/.restic-pass
openssl rand -base64 32 > /root/.restic-pass
export RESTIC_REPOSITORY=sftp:backup@BACKUP_HOST:/srv/restic/web1
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init
restic backup /etc /home /root /var/www --exclude-caches
restic snapshots
```

> 请在密码管理器中保存一份仓库密码。没有它，任何人都无法解密备份，包括您自己。

### Borg

备份主机上也必须安装 Borg，因为它会通过 SSH 在那里运行。请按照 restic 示例设置 SSH 密钥。以下命令适用于 Borg 1.2 和 1.4，即当前 Debian 和 Ubuntu 版本中打包的版本：

```
apt install -y borgbackup
install -m 600 /dev/null /root/.borg-pass
openssl rand -base64 32 > /root/.borg-pass
export BORG_REPO=ssh://backup@BACKUP_HOST/./borg/web1
export BORG_PASSCOMMAND="cat /root/.borg-pass"
borg init --encryption=repokey-blake2
borg create --stats --compression zstd '::{hostname}-{now}' /etc /home /root /var/www
borg list
borg key export "$BORG_REPO" /root/borg-key.txt
```

将 `borg-key.txt` 和密码短语保存在服务器之外的安全位置，然后从 VPS 上删除导出的文件。

## 自动化、清理与测试

将两行 `export`、数据库转储命令和备份命令写入一个脚本（例如 `/usr/local/sbin/offsite-backup`），并将其设为仅 root 可读：

```
chmod 700 /usr/local/sbin/offsite-backup
crontab -e
```

在 root 的 crontab 中添加一行，让它每晚 03:30 运行：

```
30 3 * * * /usr/local/sbin/offsite-backup
```

在脚本末尾加上保留规则，以删除旧版本。以下规则会保留一周的每日备份、一个月的每周备份和六个月的每月备份。对于 restic：

```
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
```

对于 Borg：

```
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6
borg compact
```

未经测试的备份在需要时可能无法恢复。请每月检查一次仓库，并恢复到一个临时目录中。使用 restic：

```
restic check
restic restore latest --target /root/restore-test
```

使用 Borg 时，先列出归档，然后将其中一个解压到空目录中：

```
borg check
mkdir -p /root/restore-test
cd /root/restore-test
borg extract '::ARCHIVE_NAME' etc
```

自行推送备份的服务器，一旦被攻击者获取 root 权限，这些备份也可能被删除。为防止这种情况，请在备份主机上将仓库设为仅追加模式：restic 的 rest-server 提供 `--append-only` 模式，Borg 则可以通过在备份用户的 `authorized_keys` 中加入 `borg serve --append-only` 进行限制。[加固指南](https://offshoreserv.com/zh/docs/security/hardening) 可以帮助您从一开始就将攻击者拒之门外。

**某个步骤遇到困难？**

独立服务器和 GPU 服务器客户可在 [客户中心](https://offshoreserv.com/zh/account/support) 提交工单，注明服务器的 IP 地址以及已尝试过的操作。首次回复目标：12 小时内。其他服务器请使用其页面上的服务器操作、[指南](https://offshoreserv.com/zh/docs) 和 [网络状态](https://offshoreserv.com/zh/status) 页面。

---

OffshoreServ 是一家离岸主机服务商，在七个司法管辖区（冰岛、瑞士、摩尔多瓦、罗马尼亚、荷兰、保加利亚和马来西亚）提供 VPS、独立服务器、Windows RDP 和 GPU 服务器，仅接受加密货币付款（比特币、以太坊、门罗币、泰达币（USDT）和 Solana），无需身份验证（无需 KYC）。

Prices and plans: https://offshoreserv.com/zh/pricing · Answers: https://offshoreserv.com/zh/faq · Every page: https://offshoreserv.com/llms.txt
