Перейти к содержанию

Обзор инфраструктуры

Архитектура

                         ┌─────────────────────────────────────┐
                         │         212.70.189.60                │
Users ──────────────────>│   Nginx (reverse proxy / jump host)  │
                         └───────────────┬─────────────────────┘
                                         │ internal 10.99.87.x
                         ┌───────────────▼─────────────────────┐
                         │        10.99.87.249                  │
                         │  Backend (Java Spring Boot :8080)    │
                         │  VPN Config Service (Python :8000)   │
                         └───┬───────────┬────────────────┬─────┘
                             │           │                │
               ┌─────────────▼──┐  ┌─────▼──────┐  ┌────▼────────────────┐
               │  10.99.87.62   │  │ 10.99.87.5 │  │  VPN Servers        │
               │  MySQL (8.0)   │  │  Grafana   │  │  ~56 active (XUI)   │
               │                │  │            │  │  20 Remnawave nodes  │
               └────────────────┘  └────────────┘  │  16 WL proxies      │
                                                    └─────────────────────┘
graph LR
    Users --> Proxy["212.70.189.60<br/>Nginx Proxy"]
    Proxy --> Backend["10.99.87.249<br/>Backend + VCS"]
    Backend --> DB["10.99.87.62<br/>MySQL"]
    Backend --> VPN["VPN Servers<br/>~56 XUI active"]
    Backend --> WL["WL Proxies<br/>16 servers"]
    VPN --> RMW["Remnawave<br/>25 nodes"]

Компоненты

Backend (10.99.87.249)

  • Java Spring Boot — основной API, управление аккаунтами, подписки, Keycloak-авторизация
  • VPN Config Service (Python FastAPI) — синхронизация конфигов на VPN-серверы через SSH, health check, трафик
  • Деплой: blue-green (vpn-back-blue:8080 / vpn-back-green:8081)
  • VPN Config Service: GitLab CI/CD, ручной триггер deploy_prod

База данных (10.99.87.62)

  • MySQL 8.0 — основная БД (vpn), аккаунты, серверы, платежи

Redis (10.99.87.249)

  • Redis — auth сессии, кэш, очереди задач (на сервере backend)

Мониторинг (10.99.87.5)

  • Grafana — дашборды, 26 алертов (13 VPN + 4 Infra + 9 Business)
  • Prometheus метрики с VPN Config Service и Backend

Панели управления

  • Admin Panel (10.99.87.64:80) — управление серверами, аккаунтами, пользователями
  • Keycloak — SSO-авторизация для Backend и Admin Panel

VPN-серверы

  • ~56 активных серверов с 3x-ui / XUI (XRAY-core)
  • 25 нод Remnawave (миграция с XUI, используют gRPC+mTLS)
  • 16 WL-прокси (nftables DNAT, проксируют RU IP через EU VPN для обхода whitelist)

Полный инвентарь: серверный инвентарь (GitLab: shivavpn monorepo, 259 серверов всего, включая выведенные)

Провайдеры

Провайдер Назначение
MonoVM основной пул VPN-серверов (~60% парка)
TheHosting VPN-серверы в Европе, Азии, СНГ
DataPacket выделенные серверы (UK, DE, CA, PL, FR, BR, JP)
VDSina серверы в России
VK Cloud WL-прокси (nftables DNAT) + инфраструктурные серверы (внутренняя сеть)
Yandex Cloud API proxy (резерв) + инфраструктурные серверы

Сети

Сеть Назначение
10.99.87.x внутренняя сеть приложений (Backend, DB, Grafana, Admin)
212.70.189.60 публичный IP прокси/jump host
212.70.189.61 GitLab Runner, dev-среда

Доступ

SSH во внутреннюю сеть — только через jump host:

# Канонический способ (рекомендуется)
./scripts/ssh-internal.sh 10.99.87.249   # Backend + VPN Config Service
./scripts/ssh-internal.sh 10.99.87.62    # MySQL
./scripts/ssh-internal.sh 10.99.87.5     # Grafana
./scripts/ssh-internal.sh 10.99.87.64    # Admin Panel

# Вручную
ssh root@10.99.87.249 -J root@212.70.189.60:2255

VPN-серверы — напрямую по публичному IP:

ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519_shivavpn root@<IP>

Домены и РКН

Часть доменов ShivaVPN заблокирована из России. Подробности: Домены и блокировки РФ. Admin Panel доступна только по внутреннему IP http://10.99.87.64.


См. также: IP-адреса · Конфигурация сервисов · Инвентарь серверов · Доступы и SSH · DevOps скрипты · Домены и РКН