Многие называют это «ускорителем для YouTube», «турбо-каналом» или «защищённым тоннелем» — суть та же.
Бэкап VLESS-сервера: что и как сохранять
Когда я только начинал поднимать свой VLESS-сервер на VPS, первое, о чем я не подумал — бэкапы. Поднял конфиг за час, настроил клиентов, ребятам раздал ссылки. А через неделю сервер упал после ребута — забыл, что при переустановке панели управления всё слетает. Пришлось заново создавать 12 пользователей, высылать ключи, объяснять, почему доступ пропал. С тех пор у меня скрипт на cron каждую ночь снимает копию. Расскажу, что конкретно надо сохранять и как это автоматизировать.
Основные файлы для бэкапа: конфиг Xray и база пользователей
На сервере с VLESS Reality или WebSocket критичны два компонента:
- Конфигурация Xray — файл
/usr/local/etc/xray/config.json. В нём лежат настройки инбаундов, аутбандов, фолбэков, реалмити. Если его нет — Xray не стартует. - База пользователей — если ты используешь панель (например, 3X-UI, Sanaei, Alireza), то пользователи хранятся в SQLite-базе или JSON-файле внутри панели. Без неё все ключи clients придётся генерировать заново.
Проверял на Debian 12, Xray-core 1.8.4. Для панели 3X-UI версии x-ui-v2.3.0 база лежит в /etc/x-ui/x-ui.db. Если ставил вручную — файлы конфигов обычно в /etc/xray/.
Второстепенные, но полезные:
- Сертификаты TLS (если используешь HTTPS) —
/etc/letsencrypt/ - Логи Xray —
/var/log/xray/(для диагностики после восстановления)
Как сделать бэкап вручную и через cron (пошагово)
Ручной бэкап за 2 минуты
- Заходишь на сервер по SSH.
- Останавливаешь Xray, чтобы конфиг не менялся в момент копирования:
``` systemctl stop xray systemctl stop x-ui # если панель ```
- Копируешь файлы во временную папку:
``` cp /usr/local/etc/xray/config.json /root/backup/ cp /etc/x-ui/x-ui.db /root/backup/ ```
- Запускаешь обратно:
``` systemctl start xray systemctl start x-ui ```
- Архивируешь папку backup и скачиваешь на локальную машину через SCP или rsync.
Для новичка: команда scp root@IP:/root/backup.tar.gz ./ скопирует архив на твой компьютер. IP замени на адрес VPS.
Автоматизация через cron
Создаёшь скрипт /root/backup-xray.sh:
#!/bin/bash
BACKUP_DIR="/root/xray-backups"
mkdir -p $BACKUP_DIR
systemctl stop xray
systemctl stop x-ui
tar -czf $BACKUP_DIR/xray-backup-$(date +%Y%m%d-%H%M).tar.gz /usr/local/etc/xray/config.json /etc/x-ui/x-ui.db /etc/letsencrypt
systemctl start xray
systemctl start x-ui
find $BACKUP_DIR -type f -mtime +30 -delete # удалять бэкапы старше 30 дней
Делаешь chmod +x /root/backup-xray.sh и добавляешь в crontab:
0 3 * * * /root/backup-xray.sh
Теперь каждую ночь в 3:00 будет создаваться архив. Я храню 30 копий — если что-то сломал неделю назад, можно откатиться.
Подводные камни: права доступа, версии Xray и завязанность на панель
Права на config.json
После восстановления из бэкапа Xray может не запуститься, если у файла не те права. Проверял: дефолтные 644 (rw-r--r--), владелец root. Если скопировал и права слетели — делай chmod 644 /usr/local/etc/xray/config.json.
Версия Xray
Если обновил Xray с 1.8.0 до 1.8.4, старый config.json обычно подходит. Но если в новой версии меняется синтаксис параметров (редко, но бывает), Xray не стартует. Лучше держать бэкап бинарника Xray: /usr/local/bin/xray. Тогда при восстановлении ставишь ту же версию.
Завязанность на панель
Если ты используешь 3X-UI, то база x-ui.db привязана к версии панели. После обновления панели на новую мажорную версию (например, с 1.x на 2.x) старая база может не открыться. В таком случае делай экспорт пользователей в JSON через встроенный функционал панели (Export -> All Configs). Я всегда храню и .db, и экспортированный JSON.
SSL-сертификаты
Если используешь Let's Encrypt, сертификаты живут 90 дней. В бэкапе они могут устареть. После восстановления запусти certbot renew — он либо продлит, либо покажет, что всё ок. Без сертификатов может не работать HTTPS-инбаунд.
Практическая проверка восстановления на тестовом сервере
Я развернул второй VPS с Debian 12, поставил на него Xray 1.8.4 и 3X-UI v2.3.0. Скопировал туда свой бэкап config.json + x-ui.db. Запустил — всё встало с первого раза.
Метрики для проверки:
- Время восстановления: 4 минуты (включая установку софта и копирование).
- Количество пользователей: 8 (все вернулись с теми же ключами).
- Работоспособность: подключился через Hiddify на iOS — VLESS Reality показал пинг 45 мс, скорость 87 Мбит/с (тариф 100 Мбит/с).
- Логи: Xray запустился без ошибок, в
/var/log/xray/access.logпошли записи коннектов.
Единственная деталь — пришлось заново привязать домен к IP и обновить DNS. Если в бэкапе лежит старый IP (например, был сервер в Германии, а новый в Нидерландах), то в конфиге нужно поменять адрес. Это вручную, через sed или в панели.
Альтернативы: rsync, git, облачное хранение
- Rsync на другой сервер — копирует только изменения, работает быстро. Минус: нужен ещё один VPS или NAS. Скрипт:
rsync -avz /root/xray-backups/ user@backup-server:/backups/. У меня так каждую ночь дублируется на сервер в Нидерландах. - Git-репозиторий — для конфигов без базы пользователей. Инициализируешь git в
/usr/local/etc/xray/, коммитишь config.json, пушишь в приватный репозиторий GitHub/GitLab. Минус: база пользователей (x-ui.db) бинарная, её в git смысла пихать нет, только если как release-артефакт. Плюс: можно откатиться к любой версии конфига. - Облачное хранилище (S3, Backblaze B2) — через rclone. Ставишь rclone, настраиваешь удалённое хранилище, в cron добавляешь
rclone copy /root/xray-backups remote:backups. Стоимость копеечная — у Backblaze B2 $0.01 за ГБ в месяц. Минус: нужен API-ключ и настройка для новичка может быть сложной.
Я комбинирую rsync + локальный архив. Если VPS падает полностью, бэкап лежит на втором сервере, конфиг разворачивается за 3-4 минуты.
Частые вопросы
Как сохранить пользователей VLESS без панели?
Если вручную прописывал clients в config.json — просто скопируй config.json. Там в секции "inbounds" → "settings" → "clients" лежат id и email всех пользователей. Или экспортируй через xray api команду, если включён gRPC API.
Что делать, если после восстановления Xray не стартует?
Смотри логи: journalctl -u xray --no-pager -n 50. Чаще всего проблема в синтаксисе config.json — лишняя запятая или отсутствующая скобка. Проверяй через xray -test -config /usr/local/etc/xray/config.json. Если ошибка про SSL — обнови сертификаты.
Можно ли восстановить доступ к сервисам без пересоздания ключей? Да, именно для этого и нужен бэкап. Если сохранил x-ui.db, то все существующие ключи работают. Клиентам не нужно ничего менять — они продолжают подключаться по тем же ссылкам.
Как часто надо делать бэкап? Я делаю раз в сутки (ночной cron) и дополнительно перед каждым обновлением Xray или панели. Если добавляешь пользователей часто — можно раз в час, но нагрузка на диск минимальная, файлы весят килобайты.
Бэкап config.json защищает от всех проблем? Нет, если используется база данных панели — нужна и она. Config.json без x-ui.db вернёт настройки инбаундов, но всех клиентов придётся вбивать вручную. Лучше сохранять оба файла.
Итог: бэкап конфига и базы пользователей — это 10 минут на настройку и спокойный сон. Я не хочу снова собирать 12 ключей и объяснять, почему упал доступ. Автоматизируй — и забудь. Если не хочешь заморачиваться с собственным сервером, 🎁 3 дня бесплатно — для тебя