# Restic: REST server hay SFTP để sao lưu lên VPS lưu trữ?

> Restic: REST server hay SFTP để sao lưu lên VPS? rest-server thêm --append-only và --private-repos; SFTP chỉ cần SSH. 1 TB $1.66, crypto, không cần ID.

- URL: https://coffervale.com/vi/restic-rest-server-vs-sftp/
- Cập nhật lần cuối: 2026-11-02
- Đơn vị phát hành: Coffervale (https://coffervale.com)

Cả hai backend đều lưu cùng một kho lưu trữ đã mã hóa với cùng bố cục thư mục. Khác biệt nằm ở việc ai được xóa cái gì, có bao nhiêu người dùng chung server, và giao thức tốn bao nhiêu trên đường truyền.

**Trả lời nhanh — Restic: REST server hay SFTP để sao lưu lên VPS?**

Với sao lưu restic lên VPS, dùng rest-server khi các client không được xóa snapshot: chế độ `--append-only` của nó từ chối mọi thao tác xóa và `--private-repos` giữ mỗi người dùng trong thư mục riêng của họ. Dùng SFTP khi một máy tin cậy thực hiện sao lưu và bạn không muốn gì ngoài SSH. Trên một VPS lưu trữ **Coffervale**, 1 TB có giá $1.66 một tháng khi trả 12 tháng (2 November 2026).

## Sự khác biệt giữa REST server và backend SFTP của restic là gì?

| Tính năng | SFTP | rest-server |
| --- | --- | --- |
| Phần mềm trên VPS | OpenSSH, đã được cài sẵn | rest-server (gói Debian 13 `restic-rest-server`, hoặc image Docker `restic/rest-server`) |
| Truyền tải | SSH | HTTP hoặc HTTPS, cổng 8000 theo mặc định |
| Đăng nhập | Khóa SSH cho từng tài khoản Unix | Tên người dùng và mật khẩu HTTP từ tệp htpasswd (bcrypt hoặc SHA) |
| Máy khách có thể xóa ảnh chụp nhanh cũ | Có | Không, với `--append-only` |
| Người dùng được tách riêng | Tài khoản Unix và quyền thư mục | `--private-repos`: mỗi người dùng chỉ trong `/<user>/` |
| Bố cục kho lưu trữ trên đĩa | Giống như kho lưu trữ cục bộ | Giống như kho lưu trữ cục bộ |
| Mã hóa kho lưu trữ | restic, luôn bật | restic, luôn bật |

## rest-server có nhanh hơn SFTP không?

**Dự án rest-server nói có: so với SFTP, backend REST hoạt động tốt hơn và mở rộng xa hơn.** README của nó đưa ra lý do: SFTP di chuyển dữ liệu theo từng khối tối đa 32 KiB và máy chủ xác nhận mọi gói tin, trong khi REST gửi toàn bộ tệp qua HTTP. HTTP thuần cũng loại bỏ chi phí TLS, vì restic đã mã hóa mọi thứ nó gửi; README nói thêm rằng HTTPS sau đó chủ yếu dùng để bảo vệ đăng nhập. Đó là tuyên bố của chính dự án, không phải một bài đo hiệu năng chúng tôi đã chạy. Trên một VPS lưu trữ với ổ đĩa cứng, ổ đĩa và đường truyền lên của bạn thường quyết định tốc độ trước khi giao thức kịp ảnh hưởng.

Về phía máy khách, SFTP có một điều khó chịu đã biết: tài liệu của restic ghi chú rằng máy chủ SFTP đóng kết nối khi không nhận được gì trong một thời gian, điều mà các lần quét dài các tệp không thay đổi có thể kích hoạt.

## Khi nào SFTP thuần là lựa chọn tốt hơn?

**Khi một máy bạn tin cậy sao lưu vào tài khoản của chính nó và bạn không muốn thêm dịch vụ, thêm cổng hay bất cứ thứ gì mới phải vá.** restic chỉ cần `restic -r sftp:user@host:/path init` và một khóa SSH không nhắc mật khẩu, vì một bản sao lưu tự động không thể dừng lại để hỏi. Điểm yếu là điều quan trọng nhất chống lại ransomware: bất kỳ ai kiểm soát máy khách cũng có thể chạy `restic forget --prune` và xóa mọi ảnh chụp nhanh, vì SFTP không có chế độ chỉ ghi thêm.

Để ngăn mỗi tài khoản SFTP duyệt phần còn lại của máy chủ, OpenSSH có thể khóa nó vào thư mục riêng mà không có shell:

*/etc/ssh/sshd_config.d/restic-sftp.conf, then sshd -t && systemctl reload ssh*

```text
Match User restic-laptop
    ForceCommand internal-sftp
    ChrootDirectory /srv/restic-sftp/%u
    AllowTcpForwarding no
    X11Forwarding no
```

*Tài khoản, chroot và kho lưu trữ, với quyền root trên VPS; sau đó máy khách dùng sftp:restic-laptop@203.0.113.10:/repo*

```bash
useradd --no-create-home --home-dir /srv/restic-sftp/restic-laptop --shell /usr/sbin/nologin restic-laptop
install -d -m 755 -o root -g root /srv/restic-sftp/restic-laptop
install -d -m 700 -o restic-laptop -g restic-laptop /srv/restic-sftp/restic-laptop/repo
install -d -m 700 -o restic-laptop -g restic-laptop /srv/restic-sftp/restic-laptop/.ssh
echo 'ssh-ed25519 AAAA...client-key... laptop' > /srv/restic-sftp/restic-laptop/.ssh/authorized_keys
chown restic-laptop:restic-laptop /srv/restic-sftp/restic-laptop/.ssh/authorized_keys
chmod 600 /srv/restic-sftp/restic-laptop/.ssh/authorized_keys
```

## Làm thế nào để chạy rest-server với kho lưu trữ chỉ ghi thêm và riêng tư?

**Trên Debian 13, cài `restic-rest-server`, trỏ nó đến một thư mục dữ liệu bên ngoài `/home`, và truyền `--append-only --private-repos` cùng TLS trong tệp mặc định của nó.** Dịch vụ đóng gói chạy dưới người dùng `restic-rest-server`, đọc `BACKUP_DIR`, `LISTEN` và `ARGS` từ `/etc/default/restic-rest-server`, từ chối khởi động cho đến khi `BACKUP_DIR` được đặt, và ẩn `/home` khỏi daemon. Với `--private-repos`, người dùng `laptop` chỉ có thể mở kho lưu trữ dưới `/laptop/`, vì vậy nhiều người có thể chia sẻ một VPS lưu trữ mà không thấy ảnh chụp nhanh của nhau. Chứng chỉ tự ký là đủ, vì máy khách ghim nó bằng `--cacert`.

*Trên VPS lưu trữ, với quyền root (Debian 13)*

```bash
apt install restic-rest-server apache2-utils openssl
install -d -m 750 -o restic-rest-server -g restic-rest-server /srv/restic

openssl req -x509 -newkey rsa:3072 -nodes -days 3650 \
    -keyout /etc/restic-rest-server/key.pem -out /etc/restic-rest-server/cert.pem \
    -subj '/CN=coffer-backup' -addext 'subjectAltName=IP:203.0.113.10'
chown root:restic-rest-server /etc/restic-rest-server/key.pem
chmod 640 /etc/restic-rest-server/key.pem

cat > /etc/default/restic-rest-server <<'EOF'
BACKUP_DIR=/srv/restic
LISTEN=:8000
ARGS="--htpasswd-file /etc/restic-rest-server/users.htpasswd --append-only --private-repos --tls --tls-cert /etc/restic-rest-server/cert.pem --tls-key /etc/restic-rest-server/key.pem"
EOF

htpasswd -B /etc/restic-rest-server/users.htpasswd laptop
chown root:restic-rest-server /etc/restic-rest-server/users.htpasswd
chmod 640 /etc/restic-rest-server/users.htpasswd
systemctl enable restic-rest-server
systemctl restart restic-rest-server
```

*Trên máy khách: thông tin đăng nhập trong tệp riêng tư, không phải trong URL*

```bash
mkdir -p ~/.config/restic
scp root@203.0.113.10:/etc/restic-rest-server/cert.pem ~/.config/restic/coffer.pem

cat > ~/.config/restic/coffer.env <<'EOF'
RESTIC_REPOSITORY=rest:https://203.0.113.10:8000/laptop/
RESTIC_REST_USERNAME=laptop
RESTIC_REST_PASSWORD=the-htpasswd-password
RESTIC_PASSWORD_FILE=/home/me/.config/restic/repo-password
RESTIC_CACERT=/home/me/.config/restic/coffer.pem
EOF
chmod 600 ~/.config/restic/coffer.env

set -a; . ~/.config/restic/coffer.env; set +a
restic init
restic backup ~/Documents ~/Pictures
```

## Làm thế nào để cắt tỉa ảnh chụp nhanh khi rest-server chỉ ghi thêm?

**Chạy `forget --prune` từ một máy quản trị đáng tin cậy qua một đường dẫn không chỉ ghi thêm, và viết chính sách với `--keep-within`.** rest-server giữ kho lưu trữ theo cùng bố cục như kho lưu trữ cục bộ, vì vậy SFTP với quyền root truy cập đúng thư mục đó, và mật khẩu kho lưu trữ không bao giờ phải nhập trên VPS.

Phần `--keep-within` quan trọng. Tài liệu của restic mô tả một kẻ tấn công thêm ảnh chụp nhanh rỗng vào kho lưu trữ chỉ ghi thêm để chính sách như một ảnh chụp nhanh mỗi tuần loại bỏ những cái thật; chính sách dựa trên thời gian giữ cả rác và ảnh chụp nhanh thật. Nó chỉ hữu ích khi đồng hồ hệ thống đúng lúc `forget` chạy, và đó không phải lý do để bỏ qua việc xem `restic snapshots` trước.

*Từ máy quản trị, không bao giờ từ máy khách*

```bash
restic -r sftp:root@203.0.113.10:/srv/restic/laptop snapshots
restic -r sftp:root@203.0.113.10:/srv/restic/laptop forget --keep-within 90d --prune
restic -r sftp:root@203.0.113.10:/srv/restic/laptop check --read-data-subset=5%
```

## Tôi nên chọn backend nào?

**Chọn rest-server bất cứ khi nào máy được sao lưu đối mặt với internet; chọn SFTP cho một máy đơn lẻ, được giữ gìn tốt, nơi sự đơn giản chiến thắng.** Một mục tiêu chỉ ghi thêm không thể bị dọn sạch bởi kẻ tấn công mã hóa máy chủ của bạn, và thuộc tính đó vượt trội hơn daemon thừa.

| Tình huống của bạn | Backend | Vì sao |
| --- | --- | --- |
| Một laptop hoặc desktop, một tài khoản | SFTP | Không cần cài đặt, không có cổng mới |
| Máy chủ công khai có thể bị tấn công | rest-server `--append-only` | Máy khách bị đánh cắp không thể xóa lịch sử |
| Nhiều người hoặc nhiều máy trên một VPS | rest-server `--private-repos` | Mỗi lần đăng nhập chỉ thấy thư mục riêng của mình |
| Chỉ cho phép HTTP hoặc HTTPS ra khỏi mạng | rest-server | Hoạt động ở nơi SSH bị chặn |
| Cả hai: máy khách chỉ ghi thêm, quản trị viên cắt tỉa | rest-server cho máy khách, SFTP với quyền root cho quản trị viên | Cùng một thư mục, hai mức quyền truy cập |

## Một đích restic tốn bao nhiêu mỗi TB?

**Theo khảo sát của Coffervale ngày 2 tháng 11 năm 2026, Backblaze B2 — một object store mà restic hỗ trợ sẵn — tốn $6.95 mỗi TB một tháng, trong khi các gói storage VPS từ những nhà cung cấp nhận crypto không cần giấy tờ tùy thân có mức trung vị là $4.00 mỗi TB.** Object store không cần máy chủ nào để bảo trì nhưng không cung cấp cả hai backend bàn ở đây; storage VPS chạy được cả hai. Chúng tôi không sao lưu máy chủ của bạn và không giữ bản sao dữ liệu của bạn ở bất kỳ đâu khác, nên thứ nằm trên storage VPS của Coffervale phải là một trong các bản sao của bạn, không bao giờ là bản duy nhất: VPS là bản sao off-site của bạn, như [How do I use a VPS for off-site backups?](https://coffervale.com/vi/backup-vps/ "Off-site backups and the 3-2-1 rule") giải thích. Nếu bạn muốn dùng Borg, hãy làm theo [How do I set up a Borg backup server on a VPS?](https://coffervale.com/vi/borg-backup-server-on-a-vps/ "Borg server with append-only keys"); để mã hóa ổ đĩa bên dưới, xem [How do I mount and format the storage disk on a Linux VPS?](https://coffervale.com/vi/mount-storage-disk-on-a-vps/ "Format, mount and encrypt the data disk"). Các gói và điều khoản có tại [How much does a storage VPS cost per month?](https://coffervale.com/vi/pricing/ "Coffervale storage VPS prices").

## Câu hỏi về restic trên VPS

### restic qua SFTP có được mã hóa không?

Có, hai lần. restic mã hóa mọi tệp nó lưu bằng AES-256 và xác thực bằng Poly1305-AES trước khi tải lên, còn SSH mã hóa kết nối. VPS chỉ chứa bản mã hóa.

### rest-server có cần HTTPS nếu restic đã mã hóa dữ liệu không?

Có, để đăng nhập. Không có TLS, tên người dùng và mật khẩu HTTP truyền qua mạng dưới dạng văn bản thuần, và bất kỳ ai chặn được chúng đều có thể ghi vào repository của bạn. Hãy dùng `--tls`, hoặc giữ rest-server trên localhost và truy cập qua một SSH tunnel.

### rest-server và SFTP có thể phục vụ cùng một repository không?

Có. Cả hai dùng cùng bố cục thư mục như một repository cục bộ, nên các client có thể ghi qua rest-server ở chế độ append-only trong khi quản trị viên prune cùng thư mục đó qua SFTP.

### rest-server lắng nghe trên cổng nào?

Mặc định là cổng 8000 trên mọi địa chỉ. Chỉ mở cổng này trên firewall cho những địa chỉ sao lưu, hoặc gắn nó vào một địa chỉ riêng như giao diện WireGuard.

### Tôi nên chạy phiên bản restic nào?

Bản phát hành mới nhất ngày 2 tháng 11 năm 2026 là restic 0.19.1, ngày 5 tháng 7 năm 2026; Debian 13 đi kèm 0.18.0. Định dạng repository phiên bản 2, mặc định hiện tại, cần restic 0.14.0 trở lên trên mọi máy mở nó.

## Nguồn

1. [Rest Server README: vì sao dùng nó, chế độ append-only, repository riêng tư, htpasswd, TLS](https://github.com/restic/rest-server) — restic project (read 2026-11-02)
2. [Tài liệu restic: Preparing a new repository (SFTP, REST Server, B2)](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html) — restic project (read 2026-11-02)
3. [Tài liệu restic: Removing backup snapshots, security considerations in append-only mode](https://restic.readthedocs.io/en/stable/060_forget.html) — restic project (read 2026-11-02)
4. [Tài liệu restic: Scripting, environment variables](https://restic.readthedocs.io/en/stable/075_scripting.html) — restic project (read 2026-11-02)
5. [Tài liệu restic: References, mã hóa kho lưu trữ](https://restic.readthedocs.io/en/stable/100_references.html) — restic project (read 2026-11-02)
6. [Các bản phát hành restic (0.19.1 ngày 5 tháng 7 năm 2026)](https://github.com/restic/restic/releases) — restic project on GitHub (read 2026-11-02)
7. [Gói Debian trixie restic-rest-server 0.13.0-2: service unit và các giá trị mặc định](https://sources.debian.org/src/restic-rest-server/0.13.0-2/debian/) — Debian (read 2026-11-02)
8. [Tìm kiếm gói Debian trixie: restic 0.18.0](https://packages.debian.org/search?keywords=restic&searchon=names&suite=trixie&section=all) — Debian (read 2026-11-02)
9. [sshd_config(5): Match, ChrootDirectory, ForceCommand](https://man.openbsd.org/sshd_config) — OpenBSD project (OpenSSH) (read 2026-11-02)
10. [Bảng giá B2 Cloud Storage](https://www.backblaze.com/cloud-storage/pricing) — Backblaze (read 2026-11-02)

---

Coffervale: Coffervale bán storage VPS tại châu Âu: máy chủ KVM với 500 GB đến 8 TB dung lượng HDD dành cho sao lưu ngoài site, Nextcloud, Seafile, Syncthing và lưu trữ, thanh toán bằng crypto mà không cần giấy tờ tùy thân khi đăng ký. Máy chủ chạy ở Amsterdam, Bucharest và Chișinău, đơn vị vận hành là DomaineGoat LLC, một công ty đăng ký tại Panama. Với kỳ hạn 12 tháng, mọi gói đều có giá thấp hơn ít nhất 25% mỗi tháng so với một storage VPS tương đương được nêu tên, chọn từ 10 nhà cung cấp crypto không cần KYC mà giá đã được đọc vào ngày 2 tháng 11 năm 2026.
