From 529fe5283288bb75798d107752182641bb03cfb1 Mon Sep 17 00:00:00 2001 From: Administrator Date: Wed, 25 Mar 2026 11:45:40 +0500 Subject: [PATCH] Update 4 files - /docs/04-network.md - /docs/06-services.md - /docs/04b-olimpvpn.md - /README.md --- README.md | 4 +- docs/04-network.md | 151 ++++++++++-- docs/04b-olimpvpn.md | 571 +++++++++++++++++++++++++++++++++++++++++++ docs/06-services.md | 17 +- 4 files changed, 718 insertions(+), 25 deletions(-) create mode 100644 docs/04b-olimpvpn.md diff --git a/README.md b/README.md index 82caa86..7f8b01b 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ ### Сеть и доступ - [Сеть и доступ](docs/04-network.md) +- [OlimpVPN — внешний VPN-сервер](docs/04b-olimpvpn.md) - [Проксирование и SSL (NPM)](docs/07-proxy-ssl.md) ### Сервисы и данные @@ -43,6 +44,7 @@ - **Хранилище**: RAID6 (4×8 ТБ) через LSI MegaRAID 9260-8i, логические тома для ВМ и LXC. - **Сеть**: локальная подсеть 192.168.1.0/24, VPN-подсеть 192.168.45.0/24 (OpenVPN). - **Домен**: zailon.ru → внешний IP 188.73.191.202. +- **Внешний VPN**: OlimpVPN (VLESS + Reality) на VPS 2.27.50.20 (Финляндия) — обход блокировок. - **Основные сервисы**: Jellyfin, Immich, Nextcloud, Bitwarden, GitLab, Grafana и др. - **Автоматизация**: Ansible, все роли используют Docker Compose, шаблоны Jinja2, обработчики, переменные разделены на `group_vars/all.yml` и `vault.yml`. @@ -50,4 +52,4 @@ ## 📝 Статус -Документация актуальна на 23 марта 2026 года. Регулярно обновляется по мере изменений в инфраструктуре. \ No newline at end of file +Документация актуальна на 25 марта 2026 года. Регулярно обновляется по мере изменений в инфраструктуре. \ No newline at end of file diff --git a/docs/04-network.md b/docs/04-network.md index 4a42c2a..67e743a 100644 --- a/docs/04-network.md +++ b/docs/04-network.md @@ -2,7 +2,7 @@ ## Топология -Инфраструктура объединяет устройства в локальной подсети `192.168.1.0/24`. Доступ из внешней сети осуществляется через маршрутизатор TP-Link с белым IP-адресом `188.73.191.202`, на который делегирован домен `zailon.ru`. Для удалённого подключения к внутренним ресурсам используется OpenVPN. +Инфраструктура объединяет устройства в локальной подсети `192.168.1.0/24`. Доступ из внешней сети осуществляется через маршрутизатор TP-Link с белым IP-адресом `188.73.191.202`, на который делегирован домен `zailon.ru`. Для удалённого подключения к внутренним ресурсам используется OpenVPN и OlimpVPN (VLESS). ```mermaid graph TD @@ -12,22 +12,23 @@ graph TD LAN --> Proxmox(Proxmox Host 192.168.1.200) Proxmox --> VM1(LXC / ВМ 201-213) - Proxmox --> VM2(LXC / ВМ 201-213) - Proxmox --> VM3(LXC / ВМ 201-213) + + Router -->|VPN| OlimpVPN[OlimpVPN 2.27.50.20] + OlimpVPN -->|VLESS:2054| LAN ``` *Все виртуальные машины и контейнеры подключены к локальной сети через мост vmbr0.* +--- + ## Маршрутизатор (TP-Link) -- **Модель**: TP-Link (точная модель неизвестна, предположительно Archer C6/A6 или аналогичный) +- **Модель**: TP-Link (предположительно Archer C6/A6 или аналогичный) - **Локальный IP**: 192.168.1.1 - **Внешний IP**: 188.73.191.202 (статический) ### Перенаправление портов (Port Forwarding) -На роутере настроены следующие правила перенаправления (см. скриншоты `1roter.png`, `2roter.png`, `3roter.png`): - | Имя сервиса | Внешний порт | Внутренний порт | IP устройства | Протокол | Назначение | |-------------|--------------|-----------------|---------------|----------|------------| | snikket | 3478 | 3478 | 192.168.1.206 | Все | XMPP / STUN | @@ -46,24 +47,87 @@ graph TD > **Примечание**: некоторые порты (например, 15636, 27015-27016, 9876-9877) ведут на остановленные ВМ (212, 207) и могут быть закрыты. -### OpenVPN +--- + +## VPN-сервисы + +### OpenVPN (домашний) На роутере включён OpenVPN-сервер с настройками: -- **Тип сервиса**: UDP (предположительно) -- **Порт**: 1194 (стандартный) +- **Тип сервиса**: UDP +- **Порт**: 1194 - **VPN-подсеть**: 192.168.45.0/24 -- **Клиентский доступ**: только домашняя сеть (доступ к ресурсам 192.168.1.0/24 разрешён) +- **Клиентский доступ**: только домашняя сеть (192.168.1.0/24) Используется для удалённого подключения к домашней сети с мобильных устройств и ноутбуков. +### OlimpVPN (VLESS, внешний сервер) + +| Параметр | Значение | +|----------|----------| +| **Сервер** | 2.27.50.20 (Финляндия) | +| **Домен** | charon.zailon.ru | +| **Протокол** | VLESS + Reality + XHTTP | +| **Порт** | 2054 | +| **Панель управления** | https://charon.zailon.ru:45131/olimp-styx/ | +| **URI подписки** | /charon-cerberus/ | + +#### Конфигурация inbound + +```yaml +Название: OlimpVpn +Протокол: VLESS +Порт: 2054 +Транспорт: XHTTP +Безопасность: Reality + +Reality параметры: + Target: cloud.zailon.ru:443 + SNI: cloud.zailon.ru + uTLS: chrome + Public Key: TOyddQCTdSpycmO20uiLOqMABuKabpwVhw57tWmvJws + Short IDs: 174fc0, 568a8044d80a, b211, ... + SpiderX: / + +XHTTP параметры: + Path: /remote.php/dav/upload + Mode: stream-one + Padding Bytes: 100-1000 +``` + +#### Подключение клиентов + +Формат ссылки VLESS: +``` +vless://UUID@2.27.50.20:2054?type=xhttp&encryption=none&path=%2Fremote.php%2Fdav%2Fupload&security=reality&pbk=PUBLIC_KEY&fp=chrome&sni=cloud.zailon.ru&sid=SHORT_ID&sp=%2F#ClientName +``` + +Автоматическая подписка: +``` +https://charon.zailon.ru:45131/charon-cerber/CLIENT_ID +``` + +> **Примечание**: подробная инструкция по установке и управлению — в [документации OlimpVPN](08-olimpvpn.md). + +--- + ## DNS Домен `zailon.ru` делегирован на внешний IP `188.73.191.202`. Все поддомены `*.zailon.ru` также указывают на этот IP через записи типа A. +| Поддомен | Назначение | Целевой хост | +|----------|------------|--------------| +| `charon.zailon.ru` | Панель OlimpVPN | 2.27.50.20 (VPS) | +| `nc.zailon.ru` | Nextcloud | 188.73.191.202 → 192.168.1.201 | +| `cloud.zailon.ru` | Reality SNI / Nextcloud | 188.73.191.202 → 192.168.1.201 | +| `*.zailon.ru` | Wildcard для сервисов | 188.73.191.202 | + DNS-серверы: - Внешние: стандартные провайдера (или публичные, например 8.8.8.8) - Локально: системный resolver на каждом хосте (127.0.0.53) +--- + ## Локальная сеть - **Подсеть**: 192.168.1.0/24 @@ -71,21 +135,78 @@ DNS-серверы: - **DHCP**: включён на роутере, диапазон раздачи 192.168.1.100–192.168.1.200 (статические адреса для серверов заданы вручную) - **Статические IP-адреса серверов**: см. раздел [Виртуальные машины и LXC](03-vms-lxcs.md) +### Ключевые хосты + +| Хост | IP | Назначение | +|------|-----|------------| +| Роутер | 192.168.1.1 | Шлюз, DHCP, OpenVPN | +| NPM | 192.168.1.201 | Nginx Proxy Manager, SSL-терминация | +| Proxmox | 192.168.1.200 | Хост виртуализации | +| media (LXC) | 192.168.1.203 | Jellyfin, Samba, yt-dlp, xray-прокси | +| talk (LXC) | 192.168.1.206 | Snikket (XMPP), Mumble | + +--- + ## Безопасность сети -- **Wi-Fi**: не документирован (вероятно, WPA2-PSK). Рекомендуется обновить до WPA3, если оборудование поддерживает. -- **Гостевая сеть**: отсутствует. -- **VLAN**: не используются. +- **Wi-Fi**: WPA2-PSK (рекомендуется обновление до WPA3) +- **Гостевая сеть**: отсутствует +- **VLAN**: не используются +- **Доступ к панели 3X-UI**: + - HTTPS + Let's Encrypt + - Секретный URI: `/olimp-styx/` + - Секретный subscription URI: `/charon-cerber/` + - Рекомендуется ограничить доступ по IP при возможности + +### Fail2ban (опционально для 3X-UI) + +```yaml +# В docker-compose.yml 3X-UI: +environment: + XUI_ENABLE_FAIL2BAN: "true" + XUI_FAIL2BAN_PORT: "45131" + XUI_FAIL2BAN_MAX_RETRY: "5" + XUI_FAIL2BAN_BAN_TIME: "3600" +``` + +--- ## Мониторинг сети -- Сбор метрик через node_exporter (порт 9100) на всех хостах. -- Логи роутера не собираются (ограниченные возможности TP-Link). +- Сбор метрик через node_exporter (порт 9100) на всех хостах +- Логи роутера не собираются (ограниченные возможности TP-Link) +- Логи 3X-UI: `docker logs 3xui_app --tail 100 -f` + +--- + +## Бэкапы конфигурации + +### OlimpVPN (3X-UI) + +Автоматические еженедельные бэкапы на Nextcloud: +- **Скрипт**: `/opt/3x-ui/backup.sh` +- **Cron**: `0 3 * * 0` (воскресенье, 03:00) +- **Хранилище**: `nc.zailon.ru/VPN_Backups/3x-ui/` +- **Состав**: база данных, сертификаты, docker-compose.yml + +```bash +# Ручной бэкап +cd /opt/3x-ui +tar -czf backup_$(date +%Y%m%d).tar.gz db/ cert/ docker-compose.yml + +# Восстановление +docker compose down +tar -xzf backup_*.tar.gz -C /opt/3x-ui/ +docker compose up -d +``` + +> **Важно**: токены и пароли хранятся отдельно, не включаются в бэкап. --- **Связанные разделы:** - [Виртуальные машины и LXC](03-vms-lxcs.md) +- [OlimpVPN — полная документация](08-olimpvpn.md) - [Сервисы и порты](06-services.md) - [Проксирование и SSL (NPM)](07-proxy-ssl.md) - [Безопасность](10-security.md) \ No newline at end of file diff --git a/docs/04b-olimpvpn.md b/docs/04b-olimpvpn.md new file mode 100644 index 0000000..c91dba5 --- /dev/null +++ b/docs/04b-olimpvpn.md @@ -0,0 +1,571 @@ +# OlimpVPN — внешний VPN-сервер + +**Сервер**: 2.27.50.20 (Финляндия, VPS) +**Домен**: charon.zailon.ru +**Протокол**: VLESS + Reality + XHTTP +**Порт VPN**: 2054 +**Панель управления**: https://charon.zailon.ru:45131/olimp-styx/ + +--- + +## 📋 Содержание + +1. [Назначение](#назначение) +2. [Архитектура](#архитектура) +3. [Установка и настройка](#установка-и-настройка) +4. [Конфигурация Xray](#конфигурация-xray) +5. [Управление клиентами](#управление-клиентами) +6. [Бэкапы](#бэкапы) +7. [Мониторинг и обслуживание](#мониторинг-и-обслуживание) +8. [Решение проблем](#решение-проблем) + +--- + +## Назначение + +OlimpVPN — внешний VPN-сервер на базе 3X-UI (Xray-core), предназначенный для: + +- **Обхода географических блокировок** (YouTube, стриминговые сервисы) +- **Защиты трафика** в ненадёжных сетях (общественный Wi-Fi, мобильный интернет) +- **Доступа к домашней инфраструктуре** через LXC-контейнер с прокси (media, 192.168.1.203) + +**Отличие от домашнего OpenVPN:** + +| Параметр | OpenVPN (домашний) | OlimpVPN (внешний) | +|----------|-------------------|-------------------| +| **Расположение** | 192.168.1.1 (роутер) | 2.27.50.20 (Финляндия) | +| **Назначение** | Доступ к домашней сети | Обход блокировок, анонимность | +| **Протокол** | OpenVPN (UDP 1194) | VLESS + Reality + XHTTP (TCP 2054) | +| **Маскировка** | Нет | Reality (маскировка под HTTPS) | +| **Клиенты** | Доступ к 192.168.1.0/24 | Доступ в интернет через VPS | + +--- + +## Архитектура + +```mermaid +graph LR + Client[Клиент] -->|VLESS:2054| OlimpVPN[OlimpVPN 2.27.50.20] + OlimpVPN -->|Reality| Target[cloud.zailon.ru:443] + OlimpVPN -->|Прокси| Internet[Интернет] + OlimpVPN -->|Xray-прокси| LXC[LXC media 192.168.1.203] + LXC -->|yt-dlp| YouTube[YouTube] +``` + +### Компоненты + +| Компонент | Версия | Назначение | +|-----------|--------|------------| +| **3X-UI** | latest (Docker) | Панель управления Xray | +| **Xray-core** | 26.2.6+ | Ядро обработки трафика | +| **Docker** | latest | Контейнеризация 3X-UI | +| **Nginx** | системный | SSL для панели (Let's Encrypt) | +| **Certbot** | системный | Автообновление SSL | + +### Сетевая схема + +```mermaid +graph TD + subgraph "Внешний мир" + Internet[Интернет] + Cloudflare[Cloudflare] + end + + subgraph "VPS Финляндия (2.27.50.20)" + Xray[Xray:2054] + Panel[3X-UI:45131] + Cert[Certbot:80/443] + end + + subgraph "Домашняя сеть (192.168.1.0/24)" + LXC[LXC media: xray-прокси] + NPM[Nginx Proxy Manager] + NC[Nextcloud] + end + + Client[Клиент VPN] -->|HTTPS| Xray + Client -->|HTTPS| Panel + Xray -->|Reality SNI| Cloudflare + Xray -->|Прокси| Internet + LXC -->|Xray-туннель| Xray + NPM -->|SSL| Panel +``` + +--- + +## Установка и настройка + +### Требования + +- VPS с Debian/Ubuntu (минимум 1 ядро, 512 МБ ОЗУ, 10 ГБ диск) +- Домен с A-записью на IP сервера +- Открытые порты: 80, 443, 2054, 45131 + +### 1. Установка Docker и 3X-UI + +```bash +# Создаем директорию +mkdir -p /opt/3x-ui +cd /opt/3x-ui + +# Создаем docker-compose.yml +cat > docker-compose.yml << 'EOF' +services: + 3xui: + image: ghcr.io/mhsanaei/3x-ui:latest + container_name: 3xui_app + hostname: OlimpVPN + volumes: + - $PWD/db/:/etc/x-ui/ + - $PWD/cert/:/root/cert/ + environment: + XRAY_VMESS_AEAD_FORCED: "false" + XUI_ENABLE_FAIL2BAN: "true" + tty: true + network_mode: host + restart: unless-stopped +EOF + +# Запускаем +docker compose up -d +``` + +### 2. Настройка SSL сертификата + +```bash +# Устанавливаем certbot +apt update && apt install certbot python3-certbot-nginx -y + +# Получаем сертификат +certbot --nginx -d charon.zailon.ru \ + --email zailon@bk.ru \ + --agree-tos \ + --non-interactive + +# Копируем в папку 3X-UI +mkdir -p /opt/3x-ui/cert +cp /etc/letsencrypt/live/charon.zailon.ru/fullchain.pem /opt/3x-ui/cert/public.crt +cp /etc/letsencrypt/live/charon.zailon.ru/privkey.pem /opt/3x-ui/cert/private.key +chmod 644 /opt/3x-ui/cert/public.crt +chmod 600 /opt/3x-ui/cert/private.key + +# Перезапускаем контейнер +docker restart 3xui_app +``` + +### 3. Настройка панели 3X-UI + +1. Откройте: `https://charon.zailon.ru:45131/olimp-styx/` +2. Логин/пароль по умолчанию: `admin/admin` +3. **Смените пароль немедленно!** + +#### Основные настройки панели + +| Параметр | Значение | +|----------|----------| +| Домен панели | charon.zailon.ru | +| Порт панели | 45131 | +| Корневой путь URL | /olimp-styx/ | +| Продолжительность сессии | 360 минут | +| URI подписки | /charon-cerber/ | + +#### Настройка сертификатов + +| Параметр | Значение | +|----------|----------| +| Путь к публичному ключу | /root/cert/public.crt | +| Путь к приватному ключу | /root/cert/private.key | + +--- + +## Конфигурация Xray + +### Inbound настройки (ID: 1) + +| Параметр | Значение | +|----------|----------| +| Название | OlimpVpn | +| Протокол | VLESS | +| Порт | 2054 | +| Транспорт | XHTTP | +| Безопасность | Reality | + +### Reality параметры + +```yaml +Target: cloud.zailon.ru:443 +SNI: cloud.zailon.ru +uTLS: chrome +Public Key: TOyddQCTdSpycmO20uiLOqMABuKabpwVhw57tWmvJws +Private Key: uLdWyWif7JrihRy49jTJmBMasEWyElsIXiuQkxwQVm8 +Short IDs: + - 174fc0 + - 568a8044d80a + - b211 + - 2fbcaed79 + - 1b4d7dd + - 04c250ad0b + - 4260c819008e7 +SpiderX: / +Max Time Diff: 0 +Min Client Ver: 25.9.11 +Max Client Ver: 25.9.11 +``` + +### XHTTP параметры + +```yaml +Path: /remote.php/dav/upload +Mode: stream-one +Padding Bytes: 100-1000 +Padding Obfs Mode: выкл +Uplink HTTP Method: Default (POST) +Session Placement: Default (path) +Sequence Placement: Default (path) +No SSE Header: выкл +Sockopt: выкл +``` + +### Sniffing + +| Параметр | Значение | +|----------|----------| +| Включено | ✅ Да | +| HTTP | ✅ | +| TLS | ✅ | +| QUIC | ✅ | +| FAKEDNS | ✅ | +| Metadata Only | ❌ | +| Route Only | ❌ | + +### Открытые порты на VPS + +```bash +22 - SSH +80 - HTTP (для получения SSL) +443 - HTTPS (для панели и веб-трафика) +2054 - VLESS VPN (основной порт) +45131 - Панель 3X-UI +2096 - Внутренний порт 3X-UI (localhost) +``` + +--- + +## Управление клиентами + +### Добавление нового клиента + +1. В панели 3X-UI: **Inbounds** → **OlimpVpn** → **Клиенты** +2. Нажмите **+ Добавить клиента** +3. Заполните: + - **Email**: имя-клиента (например: `user-tel`, `user-comp`) + - **Лимит трафика**: 0 (безлимитно) или укажите в ГБ + - **Срок действия**: никогда или выберите дату +4. Нажмите **OK** + +### Генерация ссылки подключения + +1. Найдите клиента в списке +2. Нажмите на иконку **QR Code** (📱) +3. Скопируйте ссылку VLESS или отсканируйте QR-код + +#### Формат ссылки VLESS + +``` +vless://UUID@2.27.50.20:2054?type=xhttp&encryption=none&path=%2Fremote.php%2Fdav%2Fupload&security=reality&pbk=PUBLIC_KEY&fp=chrome&sni=cloud.zailon.ru&sid=SHORT_ID&sp=%2F#ClientName +``` + +#### Пример для Hiddify / v2rayNG + +``` +vless://68f44a38-396d-48da-b832-79b5dc5716ab@2.27.50.20:2054?type=xhttp&encryption=none&path=%2Fremote.php%2Fdav%2Fupload&security=reality&pbk=TOyddQCTdSpycmO20uiLOqMABuKabpwVhw57tWmvJws&fp=chrome&sni=cloud.zailon.ru&sid=174fc0&sp=%2F#OlimpVpn-client +``` + +### Автоматическая подписка + +Клиенты могут использовать автоматическую подписку для обновления конфигурации: + +``` +https://charon.zailon.ru:45131/charon-cerber/CLIENT_ID +``` + +Где `CLIENT_ID` — уникальный идентификатор клиента (указан в панели 3X-UI). + +### Текущие клиенты + +| Клиент | Трафик | Статус | Назначение | +|--------|--------|--------|------------| +| Zailon-tel | 3.12 GB | Офлайн | Телефон (основной) | +| Zailon-comp | 52.15 GB | Онлайн | Компьютер (основной) | +| Tanya-tel | 471.00 MB | Офлайн | Телефон (Tanya) | +| Dima-comp | 1.77 GB | Офлайн | Компьютер (Dima) | +| Dima-tel | 7.99 GB | Офлайн | Телефон (Dima) | +| cerbera3000-comp | 0 B | Офлайн | Резервный | +| cerbera3000-tel | 728.32 MB | Офлайн | Резервный | +| Sonya-tel | 0 B | Офлайн | Телефон (Sonya) | +| lxc-vpn | 4.61 KB | Офлайн | LXC media (прокси) | +| Tanya-comp | 4.03 MB | Офлайн | Компьютер (Tanya) | + +--- + +## Бэкапы + +### Автоматические бэкапы на Nextcloud + +#### Настройка Nextcloud + +1. Создайте папку: `/VPN_Backups/3x-ui/` на `nc.zailon.ru` +2. Создайте токен приложения: + - Настройки → Безопасность → Приложения паролей + - Имя: `3X-UI Backups` + - Скопируйте пароль + +#### Скрипт бэкапа + +```bash +#!/bin/bash +# /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 +# Делаем скрипт исполняемым +chmod +x /opt/3x-ui/backup.sh + +# Добавляем в crontab +crontab -e + +# Каждое воскресенье в 3:00 +0 3 * * 0 /opt/3x-ui/backup.sh +``` + +#### Ручной бэкап + +```bash +# Быстрый бэкап +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/ + +# Запускаем +docker compose up -d +``` + +--- + +## Мониторинг и обслуживание + +### Обновление 3X-UI + +```bash +cd /opt/3x-ui +docker compose pull +docker compose up -d +docker image prune -f +``` + +### Обновление SSL сертификата + +Certbot обновляет автоматически. Для проверки: + +```bash +certbot renew --dry-run + +# Если нужно обновить вручную: +certbot renew --nginx + +# Копируем обновленные сертификаты +cp /etc/letsencrypt/live/charon.zailon.ru/fullchain.pem /opt/3x-ui/cert/public.crt +cp /etc/letsencrypt/live/charon.zailon.ru/privkey.pem /opt/3x-ui/cert/private.key + +# Перезапускаем +docker restart 3xui_app +``` + +### Мониторинг + +```bash +# Логи 3X-UI +docker logs 3xui_app --tail 100 -f + +# Статус контейнера +docker ps -a | grep 3xui + +# Использование ресурсов +docker stats 3xui_app + +# Проверка портов +netstat -tlnp | grep -E '2054|45131' + +# Проверка базы данных +docker exec 3xui_app sqlite3 /etc/x-ui/x-ui.db "SELECT COUNT(*) FROM clients;" +``` + +### Полезные команды + +```bash +# Перезапуск 3X-UI +docker restart 3xui_app + +# Остановка +docker compose down + +# Запуск +docker compose up -d + +# Войти в контейнер +docker exec -it 3xui_app bash + +# Сброс пароля админа +docker exec 3xui_app /app/x-ui resetuser + +# Экспорт базы данных +docker exec 3xui_app sqlite3 /etc/x-ui/x-ui.db ".dump" > x-ui-export.sql +``` + +--- + +## Решение проблем + +### Клиенты не подключаются + +1. Проверьте что порт 2054 открыт: + ```bash + netstat -tlnp | grep 2054 + ``` + +2. Проверьте логи: + ```bash + docker logs 3xui_app | grep -i error + ``` + +3. Убедитесь что Reality ключи верные (совпадают с 3X-UI) + +4. Проверьте время на сервере: + ```bash + timedatectl status + ``` + +### Панель не открывается + +1. Проверьте статус: + ```bash + docker ps | grep 3xui + ``` + +2. Проверьте SSL: + ```bash + ls -la /opt/3x-ui/cert/ + ``` + +3. Посмотрите логи nginx: + ```bash + journalctl -u nginx -n 50 + ``` + +### Бэкап не загружается + +1. Проверьте токен Nextcloud +2. Убедитесь что папка существует +3. Проверьте лог: + ```bash + tail /var/log/3x-ui-backup.log + ``` + +### Xray не запускается + +```bash +# Проверка конфигурации +docker exec 3xui_app /app/x-ui v2ui + +# Логи Xray +docker logs 3xui_app --tail 100 | grep -i "xray\|error" + +# Пересоздание контейнера +cd /opt/3x-ui +docker compose down +docker compose up -d +``` + +--- + +## Безопасность + +### Рекомендации + +1. **Смените пароль администратора** сразу после установки +2. **Используйте сложные URI**: `/olimp-styx/` и `/charon-cerber/` +3. **Регулярно обновляйте** 3X-UI и систему +4. **Делайте бэкапы** минимум раз в неделю +5. **Ограничьте доступ** к панели по IP (если возможно) +6. **Мониторьте логи** на предмет подозрительной активности + +### Fail2ban (опционально) + +Для включения fail2ban в docker-compose.yml: + +```yaml +environment: + XUI_ENABLE_FAIL2BAN: "true" + XUI_FAIL2BAN_PORT: "45131" + XUI_FAIL2BAN_MAX_RETRY: "5" + XUI_FAIL2BAN_BAN_TIME: "3600" +``` + +--- + +## Связанные разделы + +- [Сеть и доступ](04-network.md) — общая топология сети +- [Виртуальные машины и LXC](03-vms-lxcs.md) — LXC media с xray-прокси +- [Безопасность](10-security.md) — политики безопасности +- [Резервное копирование](11-backup.md) — общая стратегия бэкапов + +--- + +*Документ обновлен: 25 марта 2026* +*Версия 3X-UI: latest (Docker)* +*Сервер: 2.27.50.20 (Финляндия)* \ No newline at end of file diff --git a/docs/06-services.md b/docs/06-services.md index e858584..1597098 100644 --- a/docs/06-services.md +++ b/docs/06-services.md @@ -129,14 +129,15 @@ --- -## 🌐 Внешняя ВМ (VPN-сервер в облаке) +## 🌐 OlimpVPN (2.27.50.20 — Финляндия) + +| Сервис | Порт | Доступ | Контейнер | Описание | +|--------|------|--------|-----------|----------| +| 3X-UI Panel | 45131 | 🌐 | 3xui_app | Веб-интерфейс управления, `charon.zailon.ru:45131/olimp-styx/` | +| Xray (VLESS Reality) | 2054 | 🌐 | 3xui_app | Основной VPN-протокол, VLESS + XHTTP + Reality | +| Xray (внутренний) | 2096 | 🔒 | 3xui_app | Внутренний порт Xray (localhost) | +| Let's Encrypt | 80/443 | 🌐 | — | SSL сертификаты (certbot на хосте) | -| Сервис | Порт | Доступ | Описание | -|--------|------|--------|----------| -| 3x-UI (Xray) | 2096 | 🌐 | Веб-интерфейс управления Xray | -| Xray (VLESS/VMess) | 443 | 🌐 | Основной протокол VPN | -| WireGuard (WG‑Easy) | 51821 (TCP) | 🌐 | Веб-интерфейс WireGuard | -| WireGuard (WG) | 51820 (UDP) | 🌐 | VPN-туннель | --- @@ -155,8 +156,6 @@ | 9876-9877 | TCP/UDP | Игры (неактивны?) | | 50000-50100 | UDP | Snikket (медиа) | -> ⚠️ **Внимание**: Следует пересмотреть необходимость каждого проброшенного порта. Рекомендуется закрыть неиспользуемые. - --- **Связанные разделы:**