Коротка відповідь
Restic: REST server чи SFTP для резервних копій на VPS?
Для резервних копій restic на VPS використовуйте rest-server, коли клієнти не повинні видаляти знімки: його режим --append-only відхиляє видалення, а --private-repos тримає кожного користувача в окремій папці. Використовуйте SFTP, коли одна довірена машина робить резервні копії і вам потрібен лише SSH. На Coffervale storage VPS 1 TB коштує $1.66 на місяць при оплаті за 12 місяців (2 November 2026).
Яка різниця між REST server і SFTP бекендами restic?
| Функція | SFTP | rest-server |
|---|---|---|
| Програмне забезпечення на VPS | OpenSSH, уже встановлений | rest-server (пакет Debian 13 restic-rest-server, або Docker-образ restic/rest-server) |
| Транспорт | SSH | HTTP або HTTPS, порт 8000 за замовчуванням |
| Вхід | SSH-ключі для кожного Unix-акаунта | HTTP-користувач і пароль із файлу htpasswd (bcrypt або SHA) |
| Клієнт може видаляти старі снапшоти | Так | Ні, з --append-only |
| Користувачі розділені | Unix-акаунти та дозволи на папки | --private-repos: кожен користувач лише під /<user>/ |
| Структура репозиторію на диску | Така сама, як у локального репозиторію | Така сама, як у локального репозиторію |
| Шифрування репозиторію | restic, завжди ввімкнене | restic, завжди ввімкнене |
Чи rest-server швидший за SFTP?
Проєкт rest-server каже, що так: порівняно з SFTP REST-бекенд працює краще й масштабується далі. У його README пояснено причину: SFTP передає дані шматками щонайбільше 32 KiB, і сервер підтверджує кожен пакет, тоді як REST надсилає файли цілком через HTTP. Звичайний HTTP також прибирає накладні витрати TLS, адже restic і так шифрує все, що надсилає; у README додано, що HTTPS тоді переважно слугує захисту логіна. Це твердження самого проєкту, а не бенчмарк, який ми проводили. На storage VPS із жорсткими дисками диски та ваш uplink часто задають темп раніше, ніж протокол.
На боці клієнта SFTP має одну відому неприємність: документація restic зазначає, що SFTP-сервери закривають з'єднання, коли нічого не отримують протягом певного часу, а це можуть спричинити довгі сканування незмінених файлів.
Коли звичайний SFTP — кращий вибір?
Коли одна машина, якій ви довіряєте, робить бекап у власний акаунт, і ви не хочете ні зайвого сервісу, ні зайвого порту, ні чогось нового лагодити. restic потребує лише restic -r sftp:user@host:/path init і SSH-ключа без запиту парольної фрази, бо автоматичний бекап не може спинитися, щоб її запитати. Слабкість — та, що найважливіша проти ransomware: той, хто контролює клієнт, може також виконати restic forget --prune і видалити всі снапшоти, бо в SFTP немає режиму append-only.
Щоб кожен SFTP-акаунт не міг переглядати решту сервера, OpenSSH може замкнути його у власній папці без shell:
Match User restic-laptop
ForceCommand internal-sftp
ChrootDirectory /srv/restic-sftp/%u
AllowTcpForwarding no
X11Forwarding nouseradd --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 та приватними репозиторіями?
На 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 від демона. З --private-repos користувач laptop може відкривати репозиторії лише під /laptop/, тож кілька людей можуть ділити один storage VPS, не бачачи снапшотів одне одного. Самопідписаного сертифіката достатньо, бо клієнт закріплює його через --cacert.
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-servermkdir -p ~/.config/restic
scp [email protected]:/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 снапшотів, коли rest-server працює в append-only?
Запускайте forget --prune з довіреної адмін-машини через шлях, що не є append-only, і задавайте політику через --keep-within. rest-server зберігає репозиторій у тій самій структурі, що й локальний репозиторій, тож SFTP від імені root дістає ту саму папку, і пароль репозиторію ніколи не доведеться вводити на VPS.
Частина --keep-within важлива. Документація restic описує атакувальника, який додає порожні снапшоти в append-only репозиторій, щоб політика на кшталт одного снапшота на тиждень відкинула справжні; політика на основі часу зберігає і сміття, і справжні снапшоти. Вона допомагає лише тоді, коли системний годинник правильний під час запуску forget, і це не причина пропускати спершу погляд на restic snapshots.
restic -r sftp:[email protected]:/srv/restic/laptop snapshots
restic -r sftp:[email protected]:/srv/restic/laptop forget --keep-within 90d --prune
restic -r sftp:[email protected]:/srv/restic/laptop check --read-data-subset=5%Який бекенд вибрати?
Вибирайте rest-server, коли машина, яку бекапите, дивиться в інтернет; вибирайте SFTP для однієї доглянутої машини, де перемагає простота. Append-only ціль не може спорожнити атакувальник, який шифрує ваш сервер, і ця одна властивість переважує зайвий демон.
| Ваша ситуація | Бекенд | Чому |
|---|---|---|
| Один ноутбук чи десктоп, один акаунт | SFTP | Нічого встановлювати, жодного нового порту |
| Публічні сервери, які можуть зламати | rest-server --append-only | Викрадений клієнт не може видалити історію |
| Кілька людей або машин на одному VPS | rest-server --private-repos | Кожен логін бачить лише власну папку |
| З мережі дозволено назовні лише HTTP або HTTPS | rest-server | Працює там, де SSH заблоковано |
| Обидва: клієнти в append-only, адмін робить prune | rest-server для клієнтів, SFTP від імені root для адміна | Та сама тека, два рівні доступу |
Скільки коштує ціль restic за TB?
За даними опитування Coffervale від 2 листопада 2026 року, Backblaze B2 — об'єктне сховище, яке restic підтримує нативно, — коштувало $6.95 за TB на місяць, тоді як storage VPS тарифи від хостингів, що приймають криптовалюту без документа, що посвідчує особу, мали медіану $4.00 за TB. Об'єктне сховище не потребує сервера для обслуговування, але не пропонує жодного з двох бекендів, розглянутих тут; storage VPS підтримує обидва. Ми не робимо бекапів вашого сервера й не зберігаємо копію ваших даних деінде, тож те, що лежить на storage VPS у Coffervale, має бути однією з ваших копій, але ніколи не єдиною: VPS — це ваша off-site копія, як пояснює How do I use a VPS for off-site backups?. Якщо ви надаєте перевагу Borg, дотримуйтесь How do I set up a Borg backup server on a VPS?; щоб зашифрувати диск під ним, дивіться How do I mount and format the storage disk on a Linux VPS?. Тарифи й умови — на How much does a storage VPS cost per month?.
Запитання про restic на VPS
Чи зашифрований restic через SFTP?
Двічі. restic шифрує кожен файл, який зберігає, алгоритмом AES-256 і автентифікує його за допомогою Poly1305-AES перед завантаженням, а SSH шифрує з'єднання. VPS зберігає лише шифротекст.
Чи потрібен rest-server HTTPS, якщо restic уже шифрує дані?
Так, для входу. Без TLS HTTP-ім'я користувача й пароль передаються мережею у відкритому вигляді, і будь-хто, хто їх перехопить, зможе писати у ваш репозиторій. Використовуйте --tls або тримайте rest-server на localhost і звертайтеся до нього через SSH-тунель.
Чи можуть rest-server і SFTP обслуговувати один і той самий репозиторій?
Так. Обидва використовують ту саму структуру тек, що й локальний репозиторій, тож клієнти можуть писати через append-only rest-server, поки адміністратор виконує prune тієї самої теки через SFTP.
На якому порту слухає rest-server?
Порт 8000 на всіх адресах за замовчуванням. Відкрийте його у фаєрволі лише для адрес, які роблять резервні копії, або прив'яжіть його до приватної адреси, наприклад інтерфейсу WireGuard.
Яку версію restic слід використовувати?
Останнім релізом на 2 листопада 2026 року був restic 0.19.1 від 5 липня 2026 року; Debian 13 постачає 0.18.0. Версія формату репозиторію 2, поточне значення за замовчуванням, потребує restic 0.14.0 або новішого на кожній машині, що його відкриває.
Джерела (10)
- Rest Server README: навіщо його використовувати, append-only режим, приватні репозиторії, htpasswd, TLS — restic project (read 2026-11-02)
- Документація restic: підготовка нового репозиторію (SFTP, REST Server, B2) — restic project (read 2026-11-02)
- Документація restic: видалення знімків резервних копій, міркування безпеки в append-only режимі — restic project (read 2026-11-02)
- Документація restic: скриптування, змінні середовища — restic project (read 2026-11-02)
- Документація restic: References, шифрування репозиторію — restic project (read 2026-11-02)
- Релізи restic (0.19.1 від 5 липня 2026 року) — restic project on GitHub (read 2026-11-02)
- Пакет Debian trixie restic-rest-server 0.13.0-2: service unit і значення за замовчуванням — Debian (read 2026-11-02)
- Пошук пакета Debian trixie: restic 0.18.0 — Debian (read 2026-11-02)
- sshd_config(5): Match, ChrootDirectory, ForceCommand — OpenBSD project (OpenSSH) (read 2026-11-02)
- Ціни B2 Cloud Storage backblaze.com/cloud-storage/pricing — Backblaze (read 2026-11-02)