Update 2 files
- /docs/04-network.md - /docs/04b-olimpvpn.md
This commit is contained in:
parent
f53c747a54
commit
3217762de1
@ -179,126 +179,28 @@ environment:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🔄 Бэкапы и восстановление
|
## Бэкапы конфигурации
|
||||||
|
|
||||||
### Автоматические бэкапы
|
### OlimpVPN (3X-UI)
|
||||||
|
|
||||||
| Параметр | Значение |
|
Автоматические еженедельные бэкапы на Nextcloud:
|
||||||
|----------|----------|
|
- **Скрипт**: `/opt/3x-ui/backup.sh`
|
||||||
| **Скрипт** | `/opt/3x-ui/backup.sh` |
|
- **Cron**: `0 3 * * 0` (воскресенье, 03:00)
|
||||||
| **Расписание** | `0 3 * * 0` (воскресенье, 03:00 +05) |
|
- **Хранилище**: `nc.zailon.ru/VPN_Backups/3x-ui/`
|
||||||
| **Локальное хранилище** | `/opt/3x-ui/backups/` |
|
- **Состав**: база данных, сертификаты, docker-compose.yml
|
||||||
| **Nextcloud** | `nc.zailon.ru/Admin/Домашний Сервер/OlimpBackup/OlimpVPN/` |
|
|
||||||
| **Состав бэкапа** | `db/`, `cert/`, `docker-compose.yml` |
|
|
||||||
| **Хранение локально** | 30 дней |
|
|
||||||
| **Таймзона** | `Asia/Yekaterinburg (+05)` |
|
|
||||||
|
|
||||||
### Ручной запуск бэкапа
|
```bash
|
||||||
|
# Ручной бэкап
|
||||||
|
cd /opt/3x-ui
|
||||||
|
tar -czf backup_$(date +%Y%m%d).tar.gz db/ cert/ docker-compose.yml
|
||||||
|
|
||||||
&&&bash
|
# Восстановление
|
||||||
/opt/3x-ui/backup.sh
|
docker compose down
|
||||||
&&&
|
tar -xzf backup_*.tar.gz -C /opt/3x-ui/
|
||||||
|
|
||||||
### Восстановление из бэкапа
|
|
||||||
|
|
||||||
&&&bash
|
|
||||||
# 1. Скачать последний бэкап с Nextcloud
|
|
||||||
LATEST=$(curl -s -u "Zailon:TOKEN" \
|
|
||||||
"https://nc.zailon.ru/remote.php/dav/files/Zailon/Admin/Домашний%20Сервер/OlimpBackup/OlimpVPN/" \
|
|
||||||
-X PROPFIND -H "Depth: 1" | \
|
|
||||||
grep -oP '3x-ui_backup_\d+_\d+\.tar\.gz' | tail -1)
|
|
||||||
|
|
||||||
curl -s -u "Zailon:TOKEN" \
|
|
||||||
"https://nc.zailon.ru/remote.php/dav/files/Zailon/Admin/Домашний%20Сервер/OlimpBackup/OlimpVPN/${LATEST}" \
|
|
||||||
-o /tmp/restore.tar.gz
|
|
||||||
|
|
||||||
# 2. Остановить сервис
|
|
||||||
cd /opt/3x-ui && docker compose down
|
|
||||||
|
|
||||||
# 3. (Опционально) Создать резервную копию текущей конфигурации
|
|
||||||
tar -czf /opt/3x-ui/pre_restore_$(date +%Y%m%d).tar.gz -C /opt/3x-ui db cert docker-compose.yml
|
|
||||||
|
|
||||||
# 4. Восстановить файлы
|
|
||||||
tar -xzf /tmp/restore.tar.gz -C /opt/3x-ui/
|
|
||||||
chown -R root:root /opt/3x-ui/
|
|
||||||
chmod 600 /opt/3x-ui/cert/private.key
|
|
||||||
|
|
||||||
# 5. Запустить сервис
|
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
# 6. Проверить статус
|
> **Важно**: токены и пароли хранятся отдельно, не включаются в бэкап.
|
||||||
docker ps | grep 3xui
|
|
||||||
docker logs 3xui_app --tail 20
|
|
||||||
&&&
|
|
||||||
|
|
||||||
### Мониторинг бэкапов
|
|
||||||
|
|
||||||
&&&bash
|
|
||||||
# Логи бэкапа
|
|
||||||
tail -f /var/log/3x-ui-backup.log
|
|
||||||
|
|
||||||
# Локальные бэкапы
|
|
||||||
ls -lh /opt/3x-ui/backups/
|
|
||||||
|
|
||||||
# Проверка на Nextcloud (WebDAV)
|
|
||||||
curl -u "Zailon:TOKEN" \
|
|
||||||
"https://nc.zailon.ru/remote.php/dav/files/Zailon/Admin/Домашний%20Сервер/OlimpBackup/OlimpVPN/" \
|
|
||||||
-X PROPFIND -H "Depth: 1" | grep -oP '<d:href>\K[^<]+' | tail -5
|
|
||||||
|
|
||||||
# Проверка crontab
|
|
||||||
crontab -l
|
|
||||||
|
|
||||||
# Проверка таймзоны
|
|
||||||
timedatectl | grep "Time zone"
|
|
||||||
&&&
|
|
||||||
|
|
||||||
### Решение проблем
|
|
||||||
|
|
||||||
#### Ошибка 401 Unauthorized
|
|
||||||
&&&bash
|
|
||||||
# Пересоздать токен приложения в Nextcloud:
|
|
||||||
# Настройки → Безопасность → Приложения паролей → Создать новый
|
|
||||||
# Обновить NEXTCLOUD_PASS в /opt/3x-ui/backup.sh
|
|
||||||
&&&
|
|
||||||
|
|
||||||
#### Ошибка 404 Not Found
|
|
||||||
&&&bash
|
|
||||||
# Проверить путь к папке (регистр и пробелы важны!)
|
|
||||||
# Правильный формат: /Admin/Домашний%20Сервер/OlimpBackup/OlimpVPN/
|
|
||||||
&&&
|
|
||||||
|
|
||||||
#### Бэкап не создаётся
|
|
||||||
&&&bash
|
|
||||||
# Проверить права на запись
|
|
||||||
ls -la /opt/3x-ui/backups/
|
|
||||||
|
|
||||||
# Проверить место на диске
|
|
||||||
df -h /opt/3x-ui
|
|
||||||
|
|
||||||
# Проверить логи cron
|
|
||||||
journalctl -u cron -n 20
|
|
||||||
&&&
|
|
||||||
|
|
||||||
#### Время в логах неверное
|
|
||||||
&&&bash
|
|
||||||
# Установить таймзону
|
|
||||||
timedatectl set-timezone Asia/Yekaterinburg
|
|
||||||
|
|
||||||
# Перезапустить cron
|
|
||||||
systemctl restart cron
|
|
||||||
&&&
|
|
||||||
|
|
||||||
### Чеклист обслуживания
|
|
||||||
|
|
||||||
- [ ] **Еженедельно**: Проверять `/var/log/3x-ui-backup.log` после воскресенья
|
|
||||||
- [ ] **Ежемесячно**: Убедиться что бэкапы есть на Nextcloud
|
|
||||||
- [ ] **Ежеквартально**: Протестировать восстановление на тестовом окружении
|
|
||||||
- [ ] **При смене пароля Nextcloud**: Обновить `NEXTCLOUD_PASS` в скрипте
|
|
||||||
- [ ] **Перед обновлением 3X-UI**: Сделать ручной бэкап
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
> ⚠️ **Важно**: Токен приложения `2Fpz6-ocGSz-rRbaZ-efoa3-EDATz` имеет доступ только к WebDAV. Никогда не используйте основной пароль аккаунта в скриптах!
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@ -15,8 +15,8 @@
|
|||||||
3. [Установка и настройка](#установка-и-настройка)
|
3. [Установка и настройка](#установка-и-настройка)
|
||||||
4. [Конфигурация Xray](#конфигурация-xray)
|
4. [Конфигурация Xray](#конфигурация-xray)
|
||||||
5. [Управление клиентами](#управление-клиентами)
|
5. [Управление клиентами](#управление-клиентами)
|
||||||
6. [Бэкапы](#бэкапы)
|
6. [Бэкапы и восстановление](#Бэкапы-и-восстановление)
|
||||||
7. [Мониторинг и обслуживание](#мониторинг-и-обслуживание)
|
7. [Мониторинг](#Мониторинг-бэкапов)
|
||||||
8. [Решение проблем](#решение-проблем)
|
8. [Решение проблем](#решение-проблем)
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -308,103 +308,126 @@ https://charon.zailon.ru:45131/charon-cerber/CLIENT_ID
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Бэкапы
|
## 🔄 Бэкапы и восстановление
|
||||||
|
|
||||||
### Автоматические бэкапы на Nextcloud
|
### Автоматические бэкапы
|
||||||
|
|
||||||
#### Настройка Nextcloud
|
| Параметр | Значение |
|
||||||
|
|----------|----------|
|
||||||
|
| **Скрипт** | `/opt/3x-ui/backup.sh` |
|
||||||
|
| **Расписание** | `0 3 * * 0` (воскресенье, 03:00 +05) |
|
||||||
|
| **Локальное хранилище** | `/opt/3x-ui/backups/` |
|
||||||
|
| **Nextcloud** | `nc.zailon.ru/Admin/Домашний Сервер/OlimpBackup/OlimpVPN/` |
|
||||||
|
| **Состав бэкапа** | `db/`, `cert/`, `docker-compose.yml` |
|
||||||
|
| **Хранение локально** | 30 дней |
|
||||||
|
| **Таймзона** | `Asia/Yekaterinburg (+05)` |
|
||||||
|
|
||||||
1. Создайте папку: `/VPN_Backups/3x-ui/` на `nc.zailon.ru`
|
### Ручной запуск бэкапа
|
||||||
2. Создайте токен приложения:
|
|
||||||
- Настройки → Безопасность → Приложения паролей
|
|
||||||
- Имя: `3X-UI Backups`
|
|
||||||
- Скопируйте пароль
|
|
||||||
|
|
||||||
#### Скрипт бэкапа
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
#!/bin/bash
|
/opt/3x-ui/backup.sh
|
||||||
# /opt/3x-ui/backup.sh
|
|
||||||
|
|
||||||
# Настройки
|
|
||||||
NEXTCLOUD_URL="https://nc.zailon.ru"
|
|
||||||
NEXTCLOUD_USER="ваш_username"
|
|
||||||
NEXTCLOUD_PASS="ваш_токен_приложения"
|
|
||||||
BACKUP_DIR="/opt/3x-ui/backups"
|
|
||||||
DATE=$(date +%Y%m%d_%H%M%S)
|
|
||||||
BACKUP_FILE="3x-ui_backup_${DATE}.tar.gz"
|
|
||||||
|
|
||||||
# Создаем директорию для бэкапов
|
|
||||||
mkdir -p ${BACKUP_DIR}
|
|
||||||
|
|
||||||
# Создаем архив
|
|
||||||
tar -czf ${BACKUP_DIR}/${BACKUP_FILE} \
|
|
||||||
-C /opt/3x-ui db cert docker-compose.yml
|
|
||||||
|
|
||||||
# Загружаем на Nextcloud через WebDAV
|
|
||||||
curl -T ${BACKUP_DIR}/${BACKUP_FILE} \
|
|
||||||
-u ${NEXTCLOUD_USER}:${NEXTCLOUD_PASS} \
|
|
||||||
${NEXTCLOUD_URL}/remote.php/dav/files/${NEXTCLOUD_USER}/VPN_Backups/3x-ui/${BACKUP_FILE}
|
|
||||||
|
|
||||||
# Удаляем локальные бэкапы старше 30 дней
|
|
||||||
find ${BACKUP_DIR} -name "3x-ui_backup_*.tar.gz" -mtime +30 -delete
|
|
||||||
|
|
||||||
# Логирование
|
|
||||||
echo "$(date): Backup ${BACKUP_FILE} uploaded to Nextcloud" >> /var/log/3x-ui-backup.log
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Настройка cron (еженедельно)
|
### Восстановление из бэкапа
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Делаем скрипт исполняемым
|
# 1. Скачать последний бэкап с Nextcloud
|
||||||
chmod +x /opt/3x-ui/backup.sh
|
LATEST=$(curl -s -u "Zailon:TOKEN" \
|
||||||
|
"https://nc.zailon.ru/remote.php/dav/files/Zailon/Admin/Домашний%20Сервер/OlimpBackup/OlimpVPN/" \
|
||||||
|
-X PROPFIND -H "Depth: 1" | \
|
||||||
|
grep -oP '3x-ui_backup_\d+_\d+\.tar\.gz' | tail -1)
|
||||||
|
|
||||||
# Добавляем в crontab
|
curl -s -u "Zailon:TOKEN" \
|
||||||
crontab -e
|
"https://nc.zailon.ru/remote.php/dav/files/Zailon/Admin/Домашний%20Сервер/OlimpBackup/OlimpVPN/${LATEST}" \
|
||||||
|
-o /tmp/restore.tar.gz
|
||||||
|
|
||||||
# Каждое воскресенье в 3:00
|
# 2. Остановить сервис
|
||||||
0 3 * * 0 /opt/3x-ui/backup.sh
|
cd /opt/3x-ui && docker compose down
|
||||||
```
|
|
||||||
|
|
||||||
#### Ручной бэкап
|
# 3. (Опционально) Создать резервную копию текущей конфигурации
|
||||||
|
tar -czf /opt/3x-ui/pre_restore_$(date +%Y%m%d).tar.gz -C /opt/3x-ui db cert docker-compose.yml
|
||||||
|
|
||||||
```bash
|
# 4. Восстановить файлы
|
||||||
# Быстрый бэкап
|
tar -xzf /tmp/restore.tar.gz -C /opt/3x-ui/
|
||||||
cd /opt/3x-ui
|
|
||||||
tar -czf backup_manual_$(date +%Y%m%d).tar.gz db/ cert/ docker-compose.yml
|
|
||||||
|
|
||||||
# Скачать через SCP на локальный компьютер
|
|
||||||
scp root@2.27.50.20:/opt/3x-ui/backup_manual_*.tar.gz ~/backups/
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Восстановление из бэкапа
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Останавливаем контейнер
|
|
||||||
cd /opt/3x-ui
|
|
||||||
docker compose down
|
|
||||||
|
|
||||||
# Восстанавливаем
|
|
||||||
tar -xzf backup_20260325.tar.gz -C /opt/3x-ui/
|
|
||||||
|
|
||||||
# Исправляем права
|
|
||||||
chown -R root:root /opt/3x-ui/
|
chown -R root:root /opt/3x-ui/
|
||||||
|
chmod 600 /opt/3x-ui/cert/private.key
|
||||||
|
|
||||||
# Запускаем
|
# 5. Запустить сервис
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
|
|
||||||
|
# 6. Проверить статус
|
||||||
|
docker ps | grep 3xui
|
||||||
|
docker logs 3xui_app --tail 20
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Мониторинг бэкапов
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Логи бэкапа
|
||||||
|
tail -f /var/log/3x-ui-backup.log
|
||||||
|
|
||||||
|
# Локальные бэкапы
|
||||||
|
ls -lh /opt/3x-ui/backups/
|
||||||
|
|
||||||
|
# Проверка на Nextcloud (WebDAV)
|
||||||
|
curl -u "Zailon:TOKEN" \
|
||||||
|
"https://nc.zailon.ru/remote.php/dav/files/Zailon/Admin/Домашний%20Сервер/OlimpBackup/OlimpVPN/" \
|
||||||
|
-X PROPFIND -H "Depth: 1" | grep -oP '<d:href>\K[^<]+' | tail -5
|
||||||
|
|
||||||
|
# Проверка crontab
|
||||||
|
crontab -l
|
||||||
|
|
||||||
|
# Проверка таймзоны
|
||||||
|
timedatectl | grep "Time zone"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Решение проблем
|
||||||
|
|
||||||
|
#### Ошибка 401 Unauthorized
|
||||||
|
```bash
|
||||||
|
# Пересоздать токен приложения в Nextcloud:
|
||||||
|
# Настройки → Безопасность → Приложения паролей → Создать новый
|
||||||
|
# Обновить NEXTCLOUD_PASS в /opt/3x-ui/backup.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Ошибка 404 Not Found
|
||||||
|
```bash
|
||||||
|
# Проверить путь к папке (регистр и пробелы важны!)
|
||||||
|
# Правильный формат: /Admin/Домашний%20Сервер/OlimpBackup/OlimpVPN/
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Бэкап не создаётся
|
||||||
|
```bash
|
||||||
|
# Проверить права на запись
|
||||||
|
ls -la /opt/3x-ui/backups/
|
||||||
|
|
||||||
|
# Проверить место на диске
|
||||||
|
df -h /opt/3x-ui
|
||||||
|
|
||||||
|
# Проверить логи cron
|
||||||
|
journalctl -u cron -n 20
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Время в логах неверное
|
||||||
|
```bash
|
||||||
|
# Установить таймзону
|
||||||
|
timedatectl set-timezone Asia/Yekaterinburg
|
||||||
|
|
||||||
|
# Перезапустить cron
|
||||||
|
systemctl restart cron
|
||||||
|
```
|
||||||
|
|
||||||
|
### Чеклист обслуживания
|
||||||
|
|
||||||
|
- [ ] **Еженедельно**: Проверять `/var/log/3x-ui-backup.log` после воскресенья
|
||||||
|
- [ ] **Ежемесячно**: Убедиться что бэкапы есть на Nextcloud
|
||||||
|
- [ ] **Ежеквартально**: Протестировать восстановление на тестовом окружении
|
||||||
|
- [ ] **При смене пароля Nextcloud**: Обновить `NEXTCLOUD_PASS` в скрипте
|
||||||
|
- [ ] **Перед обновлением 3X-UI**: Сделать ручной бэкап
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Мониторинг и обслуживание
|
> ⚠️ **Важно**: Токен приложения `2Fpz6-ocGSz-rRbaZ-efoa3-EDATz` имеет доступ только к WebDAV. Никогда не используйте основной пароль аккаунта в скриптах!
|
||||||
|
|
||||||
### Обновление 3X-UI
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd /opt/3x-ui
|
|
||||||
docker compose pull
|
|
||||||
docker compose up -d
|
|
||||||
docker image prune -f
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Обновление SSL сертификата
|
### Обновление SSL сертификата
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user