คำตอบสั้น
ฉันจะตั้งค่า Borg backup server บน VPS ได้อย่างไร?
ในการตั้งค่า Borg backup server บน VPS ให้ติดตั้ง Borg 1.x ทั้งสองฝั่ง สร้างผู้ใช้ borg และบังคับ borg serve --restrict-to-path --append-only ในคีย์ของไคลเอนต์แต่ละตัว เริ่มต้น repository แต่ละอันด้วย repokey; ทำ prune และ compact จากคีย์แอดมินแยกต่างหาก VPS Coffervale ขนาด 1 TB ราคา $1.66 ต่อเดือนเมื่อจ่าย 12 เดือน (2 November 2026)
มีขั้นตอนอะไรบ้าง ตามลำดับ?
ติดตั้ง Borg 1.x เวอร์ชันเดียวกันบนเซิร์ฟเวอร์และไคลเอนต์
apt install borgbackupบน Debian หรือ Ubuntu แล้วเปรียบเทียบborg --versionทั้งสองฝั่งสร้างผู้ใช้ borg และโฟลเดอร์ repository
บัญชีไม่มีสิทธิ์พิเศษหนึ่งบัญชีบน VPS เป็นเจ้าของทุก repository; ไคลเอนต์ไม่เคยได้เชลล์
บังคับ borg serve ใน authorized_keys
หนึ่งบรรทัดต่อคีย์ไคลเอนต์แต่ละตัว แต่ละคีย์จำกัดไว้ที่พาธของตัวเองด้วย
--restrict-to-pathและ--append-onlyเริ่มต้น repository ด้วย repokey
รัน
borg init --encryption=repokeyจากไคลเอนต์ แล้วส่งออกคีย์และเก็บไว้ให้ห่างจากทั้งสองเครื่องตั้งเวลารัน borg create บนไคลเอนต์
ทุกวันจาก cron หรือ systemd timer โดยอ่าน passphrase ผ่าน
BORG_PASSCOMMANDทำ prune และ compact จากคีย์แอดมิน
คีย์ที่สองที่ไม่มี
--append-onlyใช้จากเครื่องที่เชื่อถือได้หลังจากตรวจสอบรายการ archive แล้วตรวจสอบ repository และทดสอบการกู้คืน
borg checkทุกสัปดาห์--verify-dataทุกเดือน และborg extractจริงทุกสองสามเดือน
เซิร์ฟเวอร์ควรใช้ Borg เวอร์ชันใด
ใช้ Borg 1.x ทั้งสองฝั่ง: 1.4.5 เป็นเวอร์ชัน stable ล่าสุด ณ วันที่ 2 พฤศจิกายน 2026 และ Borg 2 ยังอยู่ในช่วง beta หน้า Borg 2.0 ระบุว่าเป็น breaking release ที่ไม่เข้ากันโดยตรงกับ repository ของ Borg 1.x และเปลี่ยนชื่อ borg init เป็น borg repo-create บน Debian 13 แพ็กเกจที่ต้องติดตั้งคือ borgbackup (1.4.0 ใน trixie) ส่วนแพ็กเกจ borgbackup2 แยกต่างหากเป็น Borg 2.0 beta ให้ติดตั้งเวอร์ชันเดียวกันทั้งบนเซิร์ฟเวอร์และบนทุก 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/web1ฉันจะล็อกแต่ละ client ให้เข้าถึงเฉพาะ repository ของตัวเองได้อย่างไร
ใส่คำสั่ง borg serve แบบ forced ไว้หน้าทุก key ใน /srv/borg/.ssh/authorized_keys เพื่อให้ key นั้นรัน Borg ได้และทำอย่างอื่นไม่ได้ คำสำคัญ restrict บล็อก port forwarding, agent forwarding และ terminal และเอกสารของ Borg ระบุว่าครอบคลุมฟีเจอร์ SSH ที่จะเพิ่มในเวอร์ชันในอนาคตด้วย ตัวอย่างสมมติว่าใช้ POSIX shell เป็น login shell ของบัญชี ซึ่งเป็นเหตุผลที่ผู้ใช้ข้างต้นได้ /bin/sh
--restrict-to-path PATHอนุญาต path นั้นและทุกโฟลเดอร์ภายใต้ path นั้น ดังนั้น client เดียวจึงเก็บหลาย repository ได้--restrict-to-repository PATHเข้มงวดกว่า: repository เดียวเท่านั้น ไม่มีโฟลเดอร์ย่อย--append-onlyให้ key เพิ่ม archive ได้ แต่ลบข้อมูลออกจาก repository ไม่ได้--storage-quota 500Gจำกัดปริมาณที่ key หนึ่งเก็บได้ เพื่อไม่ให้ client ที่ทำงานผิดพลาดเติมดิสก์จนเต็ม
แต่ละบรรทัดต้องอยู่ในบรรทัดเดียวในไฟล์ ส่วน admin key ที่ท้ายไม่มี --append-only และใช้เฉพาะสำหรับ pruning
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_keysฉันจะสร้าง repository ด้วยการเข้ารหัสแบบ repokey ได้อย่างไร
รัน borg init --encryption=repokey จาก client แล้ว export key ออกมาเก็บไว้นอกทั้ง VPS และเครื่องที่คุณ backup เอกสารของ Borg แนะนำให้ใช้ repokey พร้อม passphrase ที่แข็งแรงเป็นแนวปฏิบัติ; repokey-blake2 เป็นโหมดเดียวกันแต่ใช้ hash BLAKE2b ซึ่งน่าจะเร็วกว่าบนโปรเซสเซอร์ที่ไม่มี hardware-accelerated SHA-256 เมื่อใช้ repokey key จะอยู่ในไฟล์ config ของ repository ซึ่งถูกปิดผนึกด้วย passphrase ของคุณ หากทำ passphrase หาย backup จะอ่านไม่ได้ทั้งโดยคุณและโดยคนอื่น Borg ยังระบุด้วยว่าคุณต้องเก็บสำเนา key ไว้นอกสถานที่ เช่น บนกระดาษ
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/wwwฉันจะ prune และ compact repository แบบ append-only ได้อย่างไร
จากเครื่อง admin ที่เชื่อถือได้ ด้วย key ที่ไม่มี --append-only หลังจากตรวจสอบว่าไม่มี archive หายไป ในโหมด append-only หมายเหตุของ Borg อธิบายว่า prune และ delete ยังทำงานอยู่ แต่จะติดแท็กข้อมูลว่าถูกลบใน transaction ใหม่เท่านั้น และการ compact จะไม่เกิดขึ้นเลย โดยไม่มีคำเตือนและไม่มี error พื้นที่ของ repository จะไม่ถูกคืนจนกว่า borg compact จะรันจาก key ที่ได้รับอนุญาตให้เขียนใหม่
หมายเหตุเดียวกันนี้มีข้อควรระวัง: การเขียนครั้งแรกในโหมดปกติจะทำให้การลบก่อนหน้าทั้งหมดเป็นถาวร รวมถึงการลบที่ผู้โจมตีทำผ่าน client key ด้วย ดังนั้นให้ list archive ก่อน หากบางรายการหายไป ให้หยุดและทำตามขั้นตอนการกู้คืนในหมายเหตุ append-only ของ Borg ก่อน prune อะไรก็ตาม cron job ที่ prune อัตโนมัติด้วย key แบบไม่จำกัดจะทำให้ append-only ไร้ความหมาย เอกสารของ Borg ยังแนะนำให้ใช้ --dry-run กับ --list ก่อน prune จริงทุกครั้ง
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 compactฉันจะตรวจสอบ repository และพิสูจน์ว่าการ restore ใช้ได้จริงได้อย่างไร
รัน borg check ทุกสัปดาห์, borg check --verify-data ทุกเดือน และ extract ไฟล์จริงไปยังเครื่องอื่นทุกสองสามเดือน การ check แบบธรรมดาจะตรวจสอบ repository และ metadata ของ archive ส่วน --verify-data จะอ่าน ถอดรหัส และ decompress ทุก chunk ซึ่ง Borg ระบุว่าใช้เวลามาก และบนฮาร์ดดิสก์ก็เป็นเช่นนั้นจริง สำหรับ repository ขนาดใหญ่ --repository-only --max-duration 3600 จะแบ่งการตรวจสอบ repository เป็นช่วงละหนึ่งชั่วโมงที่ทำต่อจากจุดที่หยุดไว้ สิ่งเหล่านี้ไม่สามารถแทนการ restore จริงได้: backup จะดีเท่ากับครั้งล่าสุดที่คุณดึงข้อมูลออกมาได้สำเร็จ
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/nginxเป้าหมาย Borg มีค่าใช้จ่ายเท่าไรเมื่อเทียบกับ hosted Borg storage
ตามการสำรวจของ Coffervale ณ วันที่ 2 พฤศจิกายน 2026 hosted Borg storage มีค่าใช้จ่าย $9.17 ต่อ TB ต่อเดือนที่ BorgBase (แพ็กเกจ 1 TB Medium, $110.00 ต่อปี) และ $15.00 ต่อ TB ที่ rsync.net ขณะที่แพ็กเกจ storage VPS จากโฮสต์ที่รับคริปโตโดยไม่ต้องใช้เอกสารระบุตัวตนมีค่ามัธยฐาน $4.00 ต่อ TB บริการแบบ hosted จะรันเซิร์ฟเวอร์ให้คุณ ส่วน storage VPS ให้คุณเป็น root และต้องตั้งค่าตามข้างต้น ซึ่งเป็นการตัดสินใจที่ชั่งน้ำหนักใน Is a storage VPS a cheaper alternative to rsync.net or BorgBase? เราไม่สำรองข้อมูลเซิร์ฟเวอร์ของคุณและไม่เก็บสำเนาข้อมูลของคุณไว้ที่อื่น ดังนั้นสิ่งที่อยู่บนสตอเรจ VPS ของ Coffervale ควรเป็นหนึ่งในสำเนาของคุณ ไม่ใช่สำเนาเดียว ดังนั้นเซิร์ฟเวอร์ Borg จึงเป็นสำเนาหนึ่งในหลายสำเนา ตามที่ How do I use a VPS for off-site backups? อธิบาย แพ็กเกจ 1 TB มีรายละเอียดใน Where can I get a VPS with 1 TB of storage? และหากคุณชอบ restic ให้อ่าน Restic: REST server or SFTP for backups to a VPS? หากต้องการเข้ารหัสดิสก์ของ VPS ด้วย ให้ดู How do I mount and format the storage disk on a Linux VPS?
เป้าหมาย Borg ต่อ TB ต่อเดือน ณ วันที่ 2 พฤศจิกายน 2026
| เป้าหมาย Borg | ต่อ TB ต่อเดือน | สิ่งที่คุณรันเอง | จ่ายด้วยคริปโต |
|---|---|---|---|
| BorgBase Medium, 1 TB | $9.17 ($110.00 ต่อปี) | ไม่มีค่าใช้จ่าย: hosted Borg และ restic repository | ไม่ระบุ |
| rsync.net, ชั้น 0 ถึง 9 TB | $15.00 | ไม่มีค่าใช้จ่าย: ZFS storage ที่เข้าถึงผ่าน SSH | ไม่ระบุ |
| Storage VPS, ค่ามัธยฐานของ 99 แพ็กเกจ | $4.00 | เซิร์ฟเวอร์ Borg ที่ตั้งค่าตามหน้านี้ | ใช่: โฮสต์ที่รับคริปโตโดยไม่ต้องใช้เอกสารระบุตัวตน |
| Coffervale Clay, 1 TB | $1.66 ใน 12 เดือน | เซิร์ฟเวอร์ Borg ที่ตั้งค่าตามหน้านี้ | BTC, USDT, USDC, ETH, SOL, LTC, XMR |
ตรวจสอบราคาเมื่อ
ราคาตามที่อ่านได้จากหน้าของแต่ละบริการเอง ณ วันที่ 2 พฤศจิกายน 2026 BorgBase คิดค่าบริการแพ็กเกจ Medium รายปีและระบุราคาไม่รวม VAT; ค่ามัธยฐานของ storage VPS ครอบคลุมแพ็กเกจตั้งแต่ 500 GB ขึ้นไป ที่มีสินค้าในสต็อกและคิดค่าบริการรายเดือน
คำถามเกี่ยวกับเซิร์ฟเวอร์ backup แบบ Borg
client และเซิร์ฟเวอร์ต้องใช้ Borg เวอร์ชันเดียวกันหรือไม่
ให้ทั้งคู่อยู่บน Borg 1.x และควรเป็นเวอร์ชันเดียวกัน Borg 2 ยังอยู่ในช่วง beta ใช้รูปแบบ repository ใหม่ และไม่สามารถเปิด repository 1.x ได้โดยตรง บน Debian 13 ให้ติดตั้ง borgbackup ไม่ใช่ borgbackup2
ฉันควรใช้ --restrict-to-path หรือ --restrict-to-repository
--restrict-to-path อนุญาตโฟลเดอร์และทุกอย่างภายใต้โฟลเดอร์นั้น สะดวกเมื่อ client เดียวเก็บหลาย repository ส่วน --restrict-to-repository อนุญาต repository เดียวเท่านั้นและไม่มีโฟลเดอร์ย่อย ซึ่งเป็นตัวเลือกที่เข้มงวดกว่าเมื่อแต่ละ client มีเพียงหนึ่ง repository
ทำไม repository ของฉันจึงไม่หดลงหลัง borg prune
Prune เพียงติดแท็ก archive ว่าถูกลบ; borg compact จะคืนพื้นที่ หากใช้ key แบบ append-only การ compact จะไม่ทำงานเลย ดังนั้นให้ prune และ compact ด้วย admin key
storage VPS หนึ่งเครื่องเก็บ repository ของ Borg สำหรับหลายเครื่องได้หรือไม่
ใช่ ให้แต่ละเครื่องมีบรรทัดคีย์ของตัวเองใน authorized_keys เส้นทางของตัวเอง และหากดิสก์ใช้ร่วมกัน ให้มี --storage-quota ของตัวเอง จากนั้นไคลเอนต์ที่ถูกเจาะจะเข้าถึงได้เพียง repository เดียวเท่านั้น
จะเกิดอะไรขึ้นถ้าฉันทำ passphrase ของ Borg หาย?
repository จะอ่านไม่ได้ตลอดไป Borg ไม่สามารถกู้คืนได้ และโฮสต์ก็ไม่สามารถกู้คืนได้เช่นกัน เก็บ passphrase ไว้ใน password manager และเก็บคีย์ที่ส่งออกไว้บนกระดาษ โดยแยกจาก VPS และไคลเอนต์
แหล่งที่มา (13)
- เอกสาร Borg 1.4.5: Hosting repositories — BorgBackup project (read 2026-11-02)
- เอกสาร Borg 1.4.5: borg serve (restrict options, append-only, storage quota) — BorgBackup project (read 2026-11-02)
- เอกสาร Borg 1.4.5: borg init (โหมดการเข้ารหัส, การสำรองคีย์) — BorgBackup project (read 2026-11-02)
- เอกสาร Borg 1.4.5: borg prune — BorgBackup project (read 2026-11-02)
- เอกสาร Borg 1.4.5: borg compact — BorgBackup project (read 2026-11-02)
- เอกสาร Borg 1.4.5: borg check — BorgBackup project (read 2026-11-02)
- เอกสาร Borg 1.4.5: หมายเหตุเพิ่มเติม โหมด append-only — BorgBackup project (read 2026-11-02)
- เอกสาร Borg 1.4.5: Quick start (BORG_PASSCOMMAND) — BorgBackup project (read 2026-11-02)
- Borg 2.0 (ข้อมูลเบื้องต้น) — BorgBackup project (read 2026-11-02)
- BorgBackup releases (1.4.5 ล่าสุด, 2.0.0b25 pre-release) — BorgBackup project on GitHub (read 2026-11-02)
- แพ็กเกจ Debian trixie: borgbackup 1.4.0, borgbackup2 2.0.0b19 — Debian (read 2026-11-02)
- แพลนและค่าบริการ borgbase.com — BorgBase (read 2026-11-02)
- ค่าบริการคลาวด์สตอเรจ rsync.net/pricing.html — rsync.net (read 2026-11-02)