Trả lời nhanh
Làm thế nào để thiết lập máy chủ sao lưu Borg trên VPS?
Để thiết lập máy chủ sao lưu Borg trên VPS, hãy cài Borg 1.x trên cả hai đầu, tạo người dùng borg, và ép buộc borg serve --restrict-to-path --append-only trên mỗi khóa máy khách. Khởi tạo mỗi kho lưu trữ bằng repokey; prune và compact từ một khóa quản trị riêng. Một VPS Coffervale 1 TB có giá $1.66 mỗi tháng khi trả cho 12 tháng (2 November 2026).
Các bước theo thứ tự là gì?
Cài cùng phiên bản Borg 1.x trên máy chủ và máy khách
apt install borgbackuptrên Debian hoặc Ubuntu, rồi so sánhborg --versiontrên cả hai đầu.Tạo người dùng borg và thư mục kho lưu trữ
Một tài khoản không đặc quyền trên VPS sở hữu mọi kho lưu trữ; các máy khách không bao giờ có được shell.
Ép buộc borg serve trong authorized_keys
Mỗi khóa máy khách một dòng, mỗi dòng giới hạn trong đường dẫn riêng của nó với
--restrict-to-pathvà--append-only.Khởi tạo kho lưu trữ bằng repokey
Chạy
borg init --encryption=repokeytừ máy khách, rồi xuất khóa và cất giữ nó xa cả hai máy.Lên lịch borg create trên máy khách
Hằng ngày từ cron hoặc một systemd timer, với passphrase được đọc bởi
BORG_PASSCOMMAND.Prune và compact từ một khóa quản trị
Một khóa thứ hai không có
--append-only, dùng từ một máy đáng tin cậy sau khi kiểm tra danh sách lưu trữ.Kiểm tra kho lưu trữ và thử khôi phục
borg checkhằng tuần,--verify-datahằng tháng, và một lầnborg extractthực sự vài tháng một lần.
Server nên chạy phiên bản Borg nào?
Chạy Borg 1.x ở cả hai đầu: 1.4.5 là bản phát hành ổn định mới nhất vào ngày 2 tháng 11 năm 2026, còn Borg 2 vẫn đang ở giai đoạn beta. Trang Borg 2.0 gọi đây là một bản phát hành phá vỡ tương thích, không tương thích trực tiếp với các repository Borg 1.x, và đổi tên borg init thành borg repo-create. Trên Debian 13, package cần cài là borgbackup (1.4.0 trong trixie); package borgbackup2 riêng là bản beta 2.0. Hãy cài cùng một bản phát hành trên server và trên mọi client.
apt install borgbackup
borg --version
useradd --create-home --home-dir /srv/borg --shell /bin/sh borg
install -d -m 700 -o borg -g borg /srv/borg/.ssh /srv/borg/repos
install -d -m 700 -o borg -g borg /srv/borg/repos/laptop /srv/borg/repos/web1Làm thế nào để khóa mỗi client vào repository riêng của nó?
Đặt một lệnh borg serve bắt buộc phía trước mỗi key trong /srv/borg/.ssh/authorized_keys, để key chỉ có thể chạy Borg và không làm được gì khác. Từ khóa restrict chặn port forwarding, agent forwarding và terminal, và tài liệu của Borg lưu ý rằng nó cũng bao phủ các tính năng SSH được thêm vào trong các bản phát hành tương lai. Các ví dụ giả định shell đăng nhập của tài khoản là một POSIX shell, đó là lý do user ở trên nhận /bin/sh.
--restrict-to-path PATHcho phép đường dẫn đó và mọi thư mục bên trong, nên một client có thể giữ nhiều repository.--restrict-to-repository PATHchặt hơn: đúng một repository, không có thư mục con.--append-onlycho phép key thêm archive nhưng không xóa dữ liệu khỏi repository.--storage-quota 500Ggiới hạn lượng một key có thể lưu, nên một client chạy loạn không thể làm đầy ổ đĩa.
Mỗi dòng nằm trên một dòng trong file; key admin ở cuối không có --append-only và chỉ dùng để prune.
command="borg serve --restrict-to-path /srv/borg/repos/laptop --append-only",restrict ssh-ed25519 AAAA...laptop-key... laptop
command="borg serve --restrict-to-path /srv/borg/repos/web1 --append-only --storage-quota 500G",restrict ssh-ed25519 AAAA...web1-key... web1
command="borg serve --restrict-to-path /srv/borg/repos",restrict ssh-ed25519 AAAA...admin-key... adminchown borg:borg /srv/borg/.ssh/authorized_keys
chmod 600 /srv/borg/.ssh/authorized_keysLàm thế nào để tạo repository với mã hóa repokey?
Chạy borg init --encryption=repokey từ client, sau đó export key và giữ nó bên ngoài cả VPS lẫn máy bạn sao lưu. Tài liệu của Borg khuyến nghị dùng repokey với một passphrase mạnh như nguyên tắc chung; repokey-blake2 là cùng chế độ đó với hash BLAKE2b, có khả năng nhanh hơn trên các bộ xử lý không có tăng tốc phần cứng SHA-256. Với repokey, key nằm trong file config của repository, được niêm phong bằng passphrase của bạn. Mất passphrase là các bản sao lưu không thể đọc được, cả với bạn lẫn với mọi người khác. Borg cũng nói rằng bạn phải giữ một bản sao key ở ngoài site, ví dụ trên giấy.
ssh-keygen -t ed25519 -N '' -C 'borg laptop' -f ~/.ssh/borg_ed25519
cat >> ~/.ssh/config <<'EOF'
Host coffer-borg
HostName 203.0.113.10
User borg
IdentityFile ~/.ssh/borg_ed25519
IdentitiesOnly yes
EOF
export BORG_REPO=ssh://coffer-borg/srv/borg/repos/laptop/main
borg init --encryption=repokey
borg key export --paper "$BORG_REPO" ~/borg-laptop-key.txt#!/bin/sh
export BORG_REPO=ssh://coffer-borg/srv/borg/repos/web1/main
# the passphrase file belongs to root, mode 600
export BORG_PASSCOMMAND='cat /root/.config/borg/passphrase'
borg create --stats --compression zstd,3 \
::'{hostname}-{now:%Y-%m-%dT%H:%M}' \
/etc /home /var/wwwLàm thế nào để prune và compact một repository ở chế độ append-only?
Từ một máy admin tin cậy, bằng key không có --append-only, sau khi đã kiểm tra rằng không có archive nào bị mất. Ở chế độ append-only, ghi chú của Borg giải thích, prune và delete vẫn chạy nhưng chỉ đánh dấu dữ liệu là đã xóa trong một giao dịch mới, và việc compact không bao giờ diễn ra, không có cảnh báo và không có lỗi. Dung lượng repository không được giải phóng cho đến khi borg compact chạy từ một key được phép ghi lại.
Các ghi chú đó cũng nêu cái bẫy: lần ghi đầu tiên ở chế độ bình thường sẽ biến mọi lần xóa trước đó thành vĩnh viễn, kể cả lần xóa do kẻ tấn công thực hiện qua một key của client. Vậy nên hãy liệt kê các archive trước. Nếu có archive bị mất, hãy dừng lại và làm theo các bước khôi phục trong ghi chú append-only của Borg trước khi prune bất cứ thứ gì. Một cron job tự động prune bằng key không giới hạn làm cho append-only trở nên vô nghĩa. Tài liệu của Borg cũng khuyến nghị một --dry-run với --list trước mỗi lần prune thật.
export BORG_REPO=ssh://coffer-admin/srv/borg/repos/web1/main
borg list
borg prune -v --list --dry-run --keep-daily=7 --keep-weekly=4 --keep-monthly=6
borg prune -v --list --keep-daily=7 --keep-weekly=4 --keep-monthly=6
borg compactLàm thế nào để kiểm tra repository và chứng minh việc khôi phục hoạt động?
Chạy borg check hàng tuần, borg check --verify-data hàng tháng, và trích xuất file thật sang một máy khác vài tháng một lần. Một lần kiểm tra thông thường xác minh repository và metadata của archive. --verify-data đọc, giải mã và giải nén mọi chunk, mà Borg gọi là rất tốn thời gian, và trên ổ đĩa cứng thì đúng là vậy. Với một repository lớn, --repository-only --max-duration 3600 chia việc kiểm tra repository thành các lát một giờ, tiếp tục từ chỗ đã dừng. Không điều nào trong số này thay thế được một lần khôi phục thực sự: một bản sao lưu chỉ tốt bằng lần cuối cùng bạn lấy được dữ liệu ra khỏi nó.
export BORG_REPO=ssh://coffer-borg/srv/borg/repos/web1/main
borg check -v
borg check -v --verify-data
borg check -v --repository-only --max-duration 3600
mkdir -p /tmp/restore-test && cd /tmp/restore-test
borg list
borg extract --list ::web1-2026-11-02T03:00 etc/nginxMột target Borg tốn bao nhiêu so với lưu trữ Borg có sẵn?
Theo khảo sát của Coffervale ngày 2 tháng 11 năm 2026, lưu trữ Borg có sẵn tốn $9.17 mỗi TB một tháng tại BorgBase (gói Medium 1 TB, $110.00 một năm) và $15.00 mỗi TB tại rsync.net, trong khi các gói storage VPS từ những host nhận crypto không cần giấy tờ tùy thân có trung vị là $4.00 mỗi TB. Các dịch vụ có sẵn vận hành server thay bạn; một storage VPS trao cho bạn quyền root và phần thiết lập ở trên, một lựa chọn được cân nhắc trong Is a storage VPS a cheaper alternative to rsync.net or BorgBase?. 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, nên server Borg là một bản sao trong số nhiều bản, như How do I use a VPS for off-site backups? giải thích. Gói 1 TB được trình bày chi tiết trong Where can I get a VPS with 1 TB of storage?, và nếu bạn thích restic hơn, hãy đọc Restic: REST server or SFTP for backups to a VPS?. Để mã hóa cả ổ đĩa VPS, xem How do I mount and format the storage disk on a Linux VPS?.
Target Borg mỗi TB một tháng, 2 tháng 11 năm 2026
| Target Borg | Mỗi TB một tháng | Những gì bạn tự vận hành | Thanh toán bằng crypto |
|---|---|---|---|
| BorgBase Medium, 1 TB | $9.17 ($110.00 một năm) | Không có: repository Borg và restic được host sẵn | Không nêu rõ |
| rsync.net, bậc 0 đến 9 TB | $15.00 | Không có: lưu trữ ZFS truy cập qua SSH | Không nêu rõ |
| Storage VPS, trung vị của 99 gói | $4.00 | Server Borg được thiết lập trên trang này | Có: các host nhận crypto không cần giấy tờ tùy thân |
| Coffervale Clay, 1 TB | $1.66 khi trả 12 tháng | Server Borg được thiết lập trên trang này | BTC, USDT, USDC, ETH, SOL, LTC, XMR |
Giá được kiểm tra vào
Giá được đọc trên trang riêng của từng dịch vụ vào ngày 2 tháng 11 năm 2026. BorgBase tính phí gói Medium theo năm và nêu giá chưa gồm VAT; trung vị của storage VPS bao gồm các gói từ 500 GB trở lên, còn hàng và tính phí theo tháng.
Câu hỏi về một server sao lưu Borg
Client và server có cần cùng phiên bản Borg không?
Giữ cả hai ở Borg 1.x, lý tưởng là cùng một bản phát hành. Borg 2 vẫn đang beta, dùng định dạng repository mới và không thể mở trực tiếp các repository 1.x. Trên Debian 13 hãy cài borgbackup, không phải borgbackup2.
Tôi nên dùng --restrict-to-path hay --restrict-to-repository?
--restrict-to-path cho phép một thư mục và mọi thứ bên trong, tiện khi một client giữ nhiều repository. --restrict-to-repository chỉ cho phép đúng một repository và không có thư mục con, lựa chọn chặt hơn khi mỗi client có một repository.
Tại sao repository của tôi không nhỏ đi sau borg prune?
Prune chỉ đánh dấu các archive là đã xóa; borg compact giải phóng dung lượng. Qua một key append-only, việc compact không bao giờ chạy, nên hãy prune và compact từ key admin.
Một storage VPS có thể chứa repository Borg cho nhiều máy không?
Đúng vậy. Hãy cấp cho mỗi máy một dòng khóa riêng trong authorized_keys, đường dẫn riêng và, nếu đĩa dùng chung, thì --storage-quota riêng. Khi đó một client bị xâm phạm chỉ chạm tới được một repository.
Điều gì xảy ra nếu tôi mất passphrase Borg?
Repository sẽ vĩnh viễn không đọc được. Borg không thể khôi phục và máy chủ cũng vậy. Hãy lưu passphrase trong trình quản lý mật khẩu và bản khóa đã xuất ra trên giấy, để xa khỏi VPS và client.
Nguồn (13)
- Tài liệu Borg 1.4.5: Lưu trữ repository — BorgBackup project (read 2026-11-02)
- Tài liệu Borg 1.4.5: borg serve (tùy chọn restrict, append-only, hạn mức lưu trữ) — BorgBackup project (read 2026-11-02)
- Tài liệu Borg 1.4.5: borg init (chế độ mã hóa, sao lưu khóa) — BorgBackup project (read 2026-11-02)
- Tài liệu Borg 1.4.5: borg prune — BorgBackup project (read 2026-11-02)
- Tài liệu Borg 1.4.5: borg compact — BorgBackup project (read 2026-11-02)
- Tài liệu Borg 1.4.5: borg check — BorgBackup project (read 2026-11-02)
- Tài liệu Borg 1.4.5: Additional notes, chế độ append-only — BorgBackup project (read 2026-11-02)
- Tài liệu Borg 1.4.5: Bắt đầu nhanh (BORG_PASSCOMMAND) — BorgBackup project (read 2026-11-02)
- Borg 2.0 (thông tin sơ bộ) — BorgBackup project (read 2026-11-02)
- Các bản phát hành BorgBackup (1.4.5 mới nhất, 2.0.0b25 bản tiền phát hành) — BorgBackup project on GitHub (read 2026-11-02)
- Gói Debian trixie: borgbackup 1.4.0, borgbackup2 2.0.0b19 — Debian (read 2026-11-02)
- Gói và giá borgbase.com — BorgBase (read 2026-11-02)
- Giá lưu trữ đám mây rsync.net/pricing.html — rsync.net (read 2026-11-02)