# Restic: REST server หรือ SFTP สำหรับแบ็กอัปไปยัง storage VPS?

> REST server หรือ SFTP สำหรับแบ็กอัปไปยัง VPS? rest-server เพิ่ม --append-only และ --private-repos; SFTP ใช้เพียง SSH 1 TB $1.66 คริปโต ไม่ต้องใช้เอกสาร

- URL: https://coffervale.com/th/restic-rest-server-vs-sftp/
- อัปเดตล่าสุด: 2026-11-02
- ผู้เผยแพร่: Coffervale (https://coffervale.com)

ทั้งสอง backend เก็บ repository ที่เข้ารหัสแบบเดียวกันในโครงสร้างโฟลเดอร์เดียวกัน ความแตกต่างคือใครลบอะไรได้บ้าง มีคนแชร์เซิร์ฟเวอร์กี่คน และโปรโตคอลใช้แบนด์วิดท์บนเครือข่ายมากน้อยเพียงใด

**คำตอบสั้น — Restic: REST server หรือ SFTP สำหรับแบ็กอัปไปยัง VPS?**

สำหรับแบ็กอัป restic ไปยัง VPS ให้ใช้ rest-server เมื่อไคลเอนต์ต้องไม่สามารถลบ snapshot: โหมด `--append-only` ของมันปฏิเสธการลบ และ `--private-repos` เก็บแต่ละผู้ใช้ไว้ในโฟลเดอร์ของตนเอง ใช้ SFTP เมื่อมีเครื่องที่เชื่อถือได้เครื่องเดียวทำแบ็กอัปและคุณต้องการเพียง SSH บน storage VPS **Coffervale** 1 TB ราคา $1.66 ต่อเดือนเมื่อจ่าย 12 เดือน (2 November 2026)

## ความแตกต่างระหว่าง REST server และ SFTP backend ของ restic คืออะไร?

| คุณสมบัติ | SFTP | rest-server |
| --- | --- | --- |
| ซอฟต์แวร์บน VPS | OpenSSH ซึ่งติดตั้งอยู่แล้ว | rest-server (แพ็กเกจ Debian 13 `restic-rest-server` หรือ Docker image `restic/rest-server`) |
| การรับส่งข้อมูล | SSH | HTTP หรือ HTTPS พอร์ต 8000 โดยค่าเริ่มต้น |
| เข้าสู่ระบบ | SSH key ต่อบัญชี Unix | HTTP user และ password จากไฟล์ htpasswd (bcrypt หรือ SHA) |
| ไคลเอนต์สามารถลบ snapshot เก่าได้ | ใช่ | ไม่ได้ ใช้ `--append-only` |
| แยกผู้ใช้ออกจากกัน | บัญชี Unix และสิทธิ์ของโฟลเดอร์ | `--private-repos`: ผู้ใช้แต่ละคนอยู่ภายใต้ `/<user>/` เท่านั้น |
| โครงสร้าง repository บนดิสก์ | เหมือนกับ repository ภายในเครื่อง | เหมือนกับ repository ภายในเครื่อง |
| การเข้ารหัส repository | restic เปิดใช้งานตลอดเวลา | restic เปิดใช้งานตลอดเวลา |

## rest-server เร็วกว่า SFTP ไหม?

**โปรเจกต์ rest-server กล่าวว่าใช่ เมื่อเทียบกับ SFTP แล้ว REST backend ทำงานได้ดีกว่าและขยาย規模ได้ไกลกว่า** README ของโปรเจกต์ให้เหตุผลว่า SFTP ส่งข้อมูลเป็นชิ้นขนาดไม่เกิน 32 KiB และเซิร์ฟเวอร์ตอบรับทุกแพ็กเก็ต ในขณะที่ REST ส่งไฟล์ทั้งไฟล์ผ่าน HTTP และ HTTP แบบธรรมดายังตัด overhead ของ TLS ออกไปด้วย เพราะ restic เข้ารหัสทุกอย่างที่ส่งอยู่แล้ว README ยังเสริมว่า HTTPS จึงมีไว้เพื่อปกป้องการล็อกอินเป็นหลัก นั่นคือคำกล่าวอ้างของโปรเจกต์เอง ไม่ใช่ benchmark ที่เราได้ทดสอบ บน storage VPS ที่ใช้ฮาร์ดดิสก์ ดิสก์และ uplink ของคุณมักเป็นตัวกำหนดความเร็วเสียก่อนที่โปรโตคอลจะเข้ามามีบทบาท

ในฝั่งไคลเอนต์ SFTP มีจุดน่ารำคาญที่รู้กันอยู่จุดหนึ่ง: เอกสารของ restic ระบุว่าเซิร์ฟเวอร์ SFTP จะปิดการเชื่อมต่อเมื่อไม่ได้รับข้อมูลสักพัก ซึ่งการสแกนไฟล์ที่ไม่มีการเปลี่ยนแปลงเป็นเวลานานอาจกระตุ้นให้เกิดขึ้นได้

## เมื่อใดที่ SFTP แบบธรรมดาเป็นทางเลือกที่ดีกว่า?

**เมื่อเครื่องหนึ่งเครื่องที่คุณไว้วางใจสำรองข้อมูลไปยังบัญชีของตัวเอง และคุณไม่ต้องการบริการเพิ่มเติม พอร์ตเพิ่มเติม หรือสิ่งใหม่ให้ต้องแพตช์** restic ต้องการเพียง `restic -r sftp:user@host:/path init` และ SSH key ที่ไม่ต้องพิมพ์ passphrase เพราะการสำรองข้อมูลอัตโนมัติไม่สามารถหยุดเพื่อถามได้ จุดอ่อนคือจุดที่สำคัญที่สุดในการรับมือ ransomware: ใครก็ตามที่ควบคุมไคลเอนต์สามารถรัน `restic forget --prune` และลบทุก snapshot ได้เช่นกัน เพราะ SFTP ไม่มีโหมด append-only

เพื่อป้องกันไม่ให้บัญชี SFTP แต่ละบัญชีเข้าดูส่วนอื่นของเซิร์ฟเวอร์ OpenSSH สามารถล็อกบัญชีนั้นไว้ในโฟลเดอร์ของตัวเองโดยไม่มี 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
```

*บัญชี, chroot และ repository ในฐานะ root บน VPS; จากนั้นไคลเอนต์ใช้ 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
```

## ฉันจะรัน rest-server แบบ append-only และ repository ส่วนตัวได้อย่างไร?

**บน Debian 13 ให้ติดตั้ง `restic-rest-server` ชี้ไปยังโฟลเดอร์ข้อมูลที่อยู่นอก `/home` และกำหนด `--append-only --private-repos` พร้อม TLS ในไฟล์ defaults ของมัน** บริการที่แพ็กเกจมาด้วยจะรันในฐานะผู้ใช้ `restic-rest-server` อ่าน `BACKUP_DIR`, `LISTEN` และ `ARGS` จาก `/etc/default/restic-rest-server` จะไม่ยอมเริ่มจนกว่าจะตั้งค่า `BACKUP_DIR` และซ่อน `/home` จาก daemon ด้วย `--private-repos` ผู้ใช้ `laptop` จะเปิด repository ได้เฉพาะภายใต้ `/laptop/` เท่านั้น ทำให้หลายคนใช้ storage VPS เครื่องเดียวร่วมกันได้โดยไม่เห็น snapshot ของกันและกัน ใบรับรองแบบ self-signed ก็เพียงพอ เพราะไคลเอนต์ปักหมุดมันด้วย `--cacert`

*บน storage VPS ในฐานะ 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
```

*บนไคลเอนต์: เก็บข้อมูลรับรองในไฟล์ส่วนตัว ไม่ใช่ใน 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
```

## ฉันจะ prune snapshot ได้อย่างไรเมื่อ rest-server เป็นแบบ append-only?

**รัน `forget --prune` จากเครื่องผู้ดูแลที่เชื่อถือได้ผ่าน path ที่ไม่ใช่ append-only และเขียนนโยบายด้วย `--keep-within`** rest-server เก็บ repository ในโครงสร้างเดียวกับ repository ภายในเครื่อง ดังนั้น SFTP ในฐานะ root จึงเข้าถึงโฟลเดอร์เดียวกันได้ และไม่จำเป็นต้องพิมพ์รหัสผ่าน repository บน VPS เลย

ส่วนของ `--keep-within` นั้นสำคัญ เอกสารของ restic อธิบายถึงผู้โจมตีที่เพิ่ม snapshot ว่างลงใน repository แบบ append-only เพื่อให้นโยบายอย่าง snapshot หนึ่งรายการต่อสัปดาห์ทิ้งของจริงไป นโยบายที่อิงเวลาจะเก็บทั้งขยะและ snapshot ของแท้ไว้ มันช่วยได้ก็ต่อเมื่อนาฬิกาของระบบถูกต้องตอนที่ `forget` ทำงาน และไม่ใช่เหตุผลให้ข้ามการตรวจ `restic snapshots` ก่อน

*จากเครื่องผู้ดูแล ไม่ใช่จากไคลเอนต์*

```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%
```

## ฉันควรเลือก backend ไหน?

**เลือก rest-server ทุกครั้งที่เครื่องที่ถูกสำรองข้อมูลหันหน้าออกสู่อินเทอร์เน็ต เลือก SFTP สำหรับเครื่องเดียวที่ดูแลอย่างดีซึ่งความเรียบง่ายชนะ** เป้าหมายแบบ append-only ไม่สามารถถูกทำให้ว่างเปล่าได้โดยผู้โจมตีที่เข้ารหัสเซิร์ฟเวอร์ของคุณ และคุณสมบัติข้อเดียวนั้นมีน้ำหนักมากกว่าการมี daemon เพิ่ม

| สถานการณ์ของคุณ | Backend | เหตุผล |
| --- | --- | --- |
| แล็ปท็อปหรือเดสก์ท็อปหนึ่งเครื่อง บัญชีเดียว | SFTP | ไม่มีอะไรต้องติดตั้ง ไม่มีพอร์ตใหม่ |
| เซิร์ฟเวอร์สาธารณะที่อาจถูกแฮก | rest-server `--append-only` | ไคลเอนต์ที่ถูกขโมยไม่สามารถลบประวัติได้ |
| หลายคนหรือหลายเครื่องบน VPS เครื่องเดียว | rest-server `--private-repos` | แต่ละการล็อกอินเห็นเฉพาะโฟลเดอร์ของตัวเอง |
| อนุญาตเฉพาะ HTTP หรือ HTTPS ออกนอกเครือข่าย | rest-server | ทำงานได้ในที่ที่ SSH ถูกบล็อก |
| ทั้งสองแบบ: ไคลเอนต์แบบ append-only ผู้ดูแลเป็นผู้ prune | rest-server สำหรับไคลเอนต์, SFTP ในฐานะ root สำหรับผู้ดูแล | โฟลเดอร์เดียวกัน สองระดับการเข้าถึง |

## restic target ราคาต่อ TB เท่าไร?

**ตามการสำรวจของ Coffervale เมื่อวันที่ 2 พฤศจิกายน 2026 Backblaze B2 ซึ่งเป็น object store ที่ restic รองรับได้โดยตรง มีราคา $6.95 ต่อ TB ต่อเดือน ขณะที่แพ็กเกจ storage VPS จากผู้ให้บริการที่รับคริปโตโดยไม่ต้องใช้เอกสารระบุตัวตนมีค่ามัธยฐานที่ $4.00 ต่อ TB** object store ไม่ต้องมีเซิร์ฟเวอร์ให้ดูแล แต่ไม่มี backend ทั้งสองแบบที่กล่าวถึงในที่นี้ ส่วน storage VPS รันได้ทั้งสองแบบ เราไม่สำรองข้อมูลเซิร์ฟเวอร์ของคุณและไม่เก็บสำเนาข้อมูลของคุณไว้ที่อื่น ดังนั้นสิ่งที่อยู่บนสตอเรจ VPS ของ Coffervale ควรเป็นหนึ่งในสำเนาของคุณ ไม่ใช่สำเนาเดียว: VPS คือสำเนา off-site ของคุณ ตามที่ [How do I use a VPS for off-site backups?](https://coffervale.com/th/backup-vps/ "Off-site backups and the 3-2-1 rule") อธิบายไว้ หากคุณอยากใช้ Borg แทน ให้ทำตาม [How do I set up a Borg backup server on a VPS?](https://coffervale.com/th/borg-backup-server-on-a-vps/ "Borg server with append-only keys"); หากต้องการเข้ารหัสดิสก์ข้างใต้นั้น ดู [How do I mount and format the storage disk on a Linux VPS?](https://coffervale.com/th/mount-storage-disk-on-a-vps/ "Format, mount and encrypt the data disk") แพ็กเกจและเงื่อนไขอยู่ใน [How much does a storage VPS cost per month?](https://coffervale.com/th/pricing/ "Coffervale storage VPS prices")

## คำถามเกี่ยวกับ restic บน VPS

### restic ผ่าน SFTP เข้ารหัสหรือไม่?

เข้ารหัสสองชั้น restic เข้ารหัสทุกไฟล์ที่จัดเก็บด้วย AES-256 และตรวจสอบความถูกต้องด้วย Poly1305-AES ก่อนอัปโหลด และ SSH เข้ารหัสการเชื่อมต่อ VPS เก็บไว้เพียงข้อความที่เข้ารหัสแล้วเท่านั้น

### rest-server ต้องใช้ HTTPS ไหมหาก restic เข้ารหัสข้อมูลอยู่แล้ว?

ต้อง สำหรับการเข้าสู่ระบบ หากไม่มี TLS ชื่อผู้ใช้และรหัสผ่าน HTTP จะถูกส่งข้ามเครือข่ายแบบข้อความธรรมดา และใครก็ตามที่ดักจับได้จะสามารถเขียนลง repository ของคุณได้ ใช้ `--tls` หรือเก็บ rest-server ไว้บน localhost แล้วเข้าถึงผ่าน SSH tunnel

### rest-server และ SFTP ให้บริการ repository เดียวกันได้ไหม?

ได้ ทั้งสองใช้โครงสร้างโฟลเดอร์เดียวกับ repository ภายในเครื่อง ดังนั้นไคลเอนต์สามารถเขียนผ่าน rest-server แบบ append-only ขณะที่ผู้ดูแลลบข้อมูลเก่าของโฟลเดอร์เดียวกันผ่าน SFTP

### rest-server ฟังพอร์ตใด?

ค่าเริ่มต้นคือพอร์ต 8000 บนทุกแอดเดรส เปิดในไฟร์วอลล์เฉพาะแอดเดรสที่สำรองข้อมูล หรือผูกกับแอดเดรสส่วนตัวเช่นอินเทอร์เฟซ WireGuard

### ควรใช้ restic เวอร์ชันใด?

เวอร์ชันล่าสุด ณ วันที่ 2 พฤศจิกายน 2026 คือ restic 0.19.1 เมื่อวันที่ 5 กรกฎาคม 2026; Debian 13 มาพร้อม 0.18.0 รูปแบบ repository เวอร์ชัน 2 ซึ่งเป็นค่าเริ่มต้นในปัจจุบัน ต้องใช้ restic 0.14.0 ขึ้นไปบนทุกเครื่องที่เปิด repository นั้น

## แหล่งที่มา

1. [Rest Server README: เหตุใดจึงใช้, โหมด append-only, repository ส่วนตัว, htpasswd, TLS](https://github.com/restic/rest-server) — restic project (read 2026-11-02)
2. [เอกสาร 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. [เอกสาร restic: Removing backup snapshots, ข้อพิจารณาด้านความปลอดภัยในโหมด append-only](https://restic.readthedocs.io/en/stable/060_forget.html) — restic project (read 2026-11-02)
4. [เอกสาร restic: Scripting, ตัวแปรสภาพแวดล้อม](https://restic.readthedocs.io/en/stable/075_scripting.html) — restic project (read 2026-11-02)
5. [เอกสาร restic: ข้อมูลอ้างอิง การเข้ารหัส repository](https://restic.readthedocs.io/en/stable/100_references.html) — restic project (read 2026-11-02)
6. [รุ่นที่เผยแพร่ของ restic (0.19.1 เมื่อวันที่ 5 กรกฎาคม 2026)](https://github.com/restic/restic/releases) — restic project on GitHub (read 2026-11-02)
7. [แพ็กเกจ restic-rest-server 0.13.0-2 ของ Debian trixie: service unit และค่าเริ่มต้น](https://sources.debian.org/src/restic-rest-server/0.13.0-2/debian/) — Debian (read 2026-11-02)
8. [ค้นหาแพ็กเกจใน 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. [ราคา B2 Cloud Storage](https://www.backblaze.com/cloud-storage/pricing) — Backblaze (read 2026-11-02)

---

Coffervale: Coffervale ขาย storage VPS ในยุโรป: เซิร์ฟเวอร์ KVM พร้อมพื้นที่ HDD 500 GB ถึง 8 TB สำหรับสำรองข้อมูลนอกสถานที่, Nextcloud, Seafile, Syncthing และไฟล์เก็บถาวร จ่ายด้วยคริปโตโดยไม่ต้องใช้ ID ตอนสมัคร เซิร์ฟเวอร์ทำงานในอัมสเตอร์ดัม บูคาเรสต์ และคีชีเนา และผู้ให้บริการคือ DomaineGoat LLC บริษัทที่จดทะเบียนในปานามา สำหรับระยะสัญญา 12 เดือน ทุกแพ็กเกจมีราคาต่ำกว่าผู้ให้บริการ storage VPS ที่เทียบเคียงได้ซึ่งระบุชื่อไว้ อย่างน้อย 25% ต่อเดือน โดยเลือกจากผู้ให้บริการโฮสต์คริปโตที่ไม่ต้อง KYC 10 ราย ซึ่งอ่านราคาเมื่อวันที่ 2 พฤศจิกายน 2026
