Руководство: VPS + VPN + Сайт на порту 443

Пошаговая инструкция по настройке надёжного VPN (VLESS+TLS) и веб-сайта, работающих совместно на одном порту 443 с использованием механизма Fallback.

✅ Что уже работает: Трафик маскируется под обычный HTTPS. Браузеры видят валидный сертификат Let's Encrypt, а DPI-системы провайдера не могут отличить VPN-соединение от обычного посещения сайта.

1. Домен и VPS

2. Настройка DNS

В панели управления доменом созданы две A-записи, указывающие на IP-адрес вашего VPS:

3. Подключение к VPS

Подключитесь к серверу по SSH и обновите пакеты:

ssh root@ВАШ_IP_VPS
sudo apt update && sudo apt upgrade -y
sudo apt install nginx ufw -y

Настройте базовый фаервол:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw --force enable

4. Получение SSL-сертификата

Установите Certbot и получите бесплатный сертификат Let's Encrypt:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d ваш_домен.ru -d www.ваш_домен.ru

Следуйте подсказкам: введите email, согласитесь с условиями (A), и выберите вариант "2" для редиректа HTTP на HTTPS.

5. Настройка Nginx (Критически важно!)

⚠️ Внимание: Nginx на порту 8443 должен работать БЕЗ директивы ssl. Расшифровкой HTTPS занимается Xray на порту 443, а в Nginx передаёт уже обычный HTTP-трафик.

Откройте конфиг: sudo nano /etc/nginx/sites-available/ваш_домен и приведите его к такому виду:

server {
    listen 80;
    server_name ваш_домен.ru www.ваш_домен.ru;
    return 301 https://$host$request_uri;
}

server {
    listen 8443; # Обратите внимание: здесь НЕТ слова "ssl"!
    server_name ваш_домен.ru www.ваш_домен.ru;
    root /var/www/ваш_домен/html;
    index index.html;
    location / { try_files $uri $uri/ =404; }
}

Примените изменения:

sudo nginx -t && sudo systemctl restart nginx

6. Установка панели 3x-ui

bash <(curl -Ls https://raw.githubusercontent.com/MHSanaei/3x-ui/master/install.sh)

При установке укажите: порт панели (например, 2053), логин, пароль. На вопрос о SSL для панели выберите Skip (4) или N.

Откройте порт панели: sudo ufw allow 2053/tcp && sudo ufw reload

7. Настройка VPN в панели 3x-ui

Создайте новое подключение (Inbound) со следующими параметрами:

Сохраните и перезапустите: sudo x-ui restart

8. Настройка клиента

Добавьте клиента в панели, скопируйте ссылку и импортируйте её в v2rayNG / v2rayN / Shadowrocket. Обязательно проверьте эти поля:

9. Полезные команды

sudo systemctl restart nginx       # Перезапуск Nginx
sudo x-ui restart                  # Перезапуск панели и Xray
sudo journalctl -u x-ui -f         # Логи Xray в реальном времени
sudo nginx -t                      # Проверка синтаксиса Nginx
sudo certbot renew                 # Обновление сертификата