# Initializator Набор скриптов для быстрой настройки нового VPS-сервера с нуля: файрвол, веб-сервер, SSL и VPN. ## Требования - Ubuntu / Debian - root-доступ ## Быстрый старт ```bash git clone && cd initializator ``` ### 1. Базовая настройка ```bash sudo bash common.sh # UFW-файрвол (deny incoming, allow SSH) sudo bash nginx.sh # Nginx + правила UFW sudo bash certbot.sh # Certbot для SSL-сертификатов ``` ### 2. VPN-сервер Два варианта — выбирай нужный: | | `vless.sh` | `vless_ip.sh` | |---|---|---| | Подключение | По домену | По IP-адресу | | Транспорт | WebSocket | TCP | | Шифрование | TLS (Let's Encrypt) | Reality (XTLS) | | Nginx | Нужен (проксирует WS) | Не нужен | | Маскировка | Обычный HTTPS-сайт | TLS-хендшейк с реальным сайтом | ## Скрипты ### `common.sh` Устанавливает и настраивает UFW: - deny incoming / allow outgoing - Открывает порт 22 (SSH) ### `nginx.sh` - Устанавливает Nginx (если не установлен) - Включает автозапуск - Открывает порты 80/443 в UFW ### `certbot.sh` - Устанавливает Certbot + плагин для Nginx ### `vless.sh` — VLESS + WebSocket + TLS (по домену) Поднимает Xray-core за Nginx с WebSocket-транспортом и настоящим TLS-сертификатом. **Переменные `.env`:** ```env DOMAIN=example.com VLESS_WS_PATH=stream PORT=10001 ``` **Что делает:** 1. Скачивает Xray-core с GitHub в `~/services/vless` 2. Генерирует UUID, создаёт `config.json` 3. Создаёт systemd-сервис `xray-vless` 4. Получает SSL-сертификат через Certbot (webroot) 5. Настраивает Nginx: HTTP -> HTTPS редирект, WebSocket-прокси 6. Выводит строку подключения **Архитектура:** ``` Клиент -> :443 (Nginx, TLS) -> WS /$VLESS_WS_PATH -> :$PORT (Xray) -> интернет ``` **Строка подключения:** ``` vless://UUID@DOMAIN:443?encryption=none&security=tls&sni=DOMAIN&type=ws&path=%2FPATH#Fish-VLESS ``` **Запуск:** ```bash sudo bash vless.sh ``` --- ### `vless_ip.sh` — VLESS + Reality (по IP) Поднимает Xray-core напрямую на порту 443 с протоколом Reality. Nginx не нужен — Xray сам обрабатывает TLS, маскируясь под реальный сайт. **Переменные `.env`:** ```env SERVER_IP=45.146.202.107 ``` **Что делает:** 1. Скачивает Xray-core с GitHub в `~/services/vless_ip` 2. Генерирует UUID + x25519 keypair + short ID 3. Создаёт `config.json` с Reality 4. Создаёт systemd-сервис `xray-vless-ip` 5. Открывает порт 443 в UFW 6. Выводит строку подключения **Архитектура:** ``` Клиент -> :443 (Xray, Reality/XTLS) -> интернет | └─ TLS fingerprint = www.kuper.ru (маскировка) ``` **Строка подключения:** ``` vless://UUID@IP:443?encryption=none&security=reality&sni=www.kuper.ru&fp=chrome&pbk=PUBLIC_KEY&sid=SHORT_ID&type=tcp&flow=xtls-rprx-vision#VLESS-Reality ``` **Запуск:** ```bash sudo bash vless_ip.sh ``` --- ## Файл `.env` Создай `initializator/.env` перед запуском VPN-скриптов: ```env # Для vless.sh (доменный вариант) DOMAIN=example.com VLESS_WS_PATH=stream PORT=10001 # Для vless_ip.sh (IP вариант) SERVER_IP=45.146.202.107 ``` ## Управление сервисом ```bash # Статус systemctl status xray-vless # доменный systemctl status xray-vless-ip # IP # Перезапуск systemctl restart xray-vless systemctl restart xray-vless-ip # Логи journalctl -u xray-vless -f journalctl -u xray-vless-ip -f ``` ## Структура файлов на сервере ``` ~/services/ ├── vless/ # доменный вариант │ ├── xray # бинарник Xray-core │ ├── config.json # конфиг сервера │ └── connection.txt # строка подключения └── vless_ip/ # IP вариант ├── xray ├── config.json └── connection.txt /etc/systemd/system/ ├── xray-vless.service └── xray-vless-ip.service /etc/nginx/sites-available/ └── vless-$DOMAIN # только для доменного варианта ``` ## Клиенты Строку подключения можно импортировать в: - **Android:** v2rayNG, NekoBox - **iOS:** Streisand, V2Box - **Windows:** Nekoray, v2rayN - **macOS:** V2RayXS, Nekoray - **Linux:** Nekoray