Настройка VLESS в 3X-UI: полное руководство по созданию защищённого VPN-сервера

Узнайте, как настроить VLESS Reality в панели 3X-UI на собственном VPS: от аренды сервера до подключения клиентов. Подробные шаги, параметры, советы по безопасности и ответы на частые вопросы.

Что такое VLESS и зачем он нужен

VLESS — это современный прокси-протокол, разработанный для эффективной передачи трафика без лишних накладных расходов. В отличие от старших протоколов, таких как VMess или Shadowsocks, VLESS не имеет встроенного шифрования на уровне протокола, полагаясь на внешние механизмы безопасности, например TLS или REALITY. Это делает его более лёгким и быстрым, а также менее заметным для систем глубокого анализа пакетов (DPI).

Основное преимущество VLESS в связке с REALITY — способность имитировать легитимное TLS-соединение с популярным веб-сайтом. Для DPI трафик выглядит как обычный запрос к, скажем, microsoft.com, что практически исключает блокировку по сигнатуре. В отличие от обфускации, которая пытается скрыть факт шифрования, REALITY делает трафик неотличимым от обычного HTTPS, что является более надёжным подходом в условиях жёсткого интернет-контроля.

Панель 3X-UI — это веб-интерфейс для управления Xray-core, который поддерживает VLESS, Trojan и другие протоколы. Она позволяет создавать inbound-подключения, управлять клиентами, отслеживать трафик и выдавать QR-коды для быстрого подключения. Благодаря 3X-UI настройка VLESS занимает всего несколько минут, даже без глубоких знаний в администрировании.

Выбор VPS-сервера и подготовка

Для развёртывания VLESS с 3X-UI потребуется виртуальный выделенный сервер (VPS). Ключевые параметры: оперативная память от 1 ГБ, один или два виртуальных ядра, дисковое пространство от 20 ГБ. Этого достаточно для обслуживания нескольких пользователей без заметной деградации скорости. Если планируется активное использование или большое количество клиентов, стоит рассмотреть конфигурацию с 2 ГБ RAM и 2 vCPU.

Операционная система — Debian 12 или Ubuntu 24.04, обе хорошо поддерживаются и имеют актуальные репозитории. При выборе локации сервера учитывайте расстояние до пользователей: для России оптимальны Нидерланды, Германия, Финляндия — пинг будет 30-50 мс. Также обратите внимание на лимиты трафика и способ оплаты: некоторые хостеры требуют верификацию, другие принимают криптовалюту.

После аренды вы получите IP-адрес, логин и пароль для SSH-доступа. Сохраните эти данные — они понадобятся для первоначальной настройки. Рекомендуется сразу сменить пароль root и создать отдельного пользователя с правами sudo для повседневной работы. Это повысит безопасность и снизит риск компрометации.

Базовая настройка безопасности VPS

Прежде чем устанавливать 3X-UI, стоит укрепить безопасность сервера. Первым делом смените пароль root командой passwd и обновите пакеты: apt update && apt upgrade -y. Затем создайте нового пользователя с правами sudo: adduser username и usermod -aG sudo username. Это позволит избежать постоянной работы под root.

Важный шаг — смена стандартного порта SSH с 22 на нестандартный (например, 5667) и запрет входа для root. Отредактируйте файл /etc/ssh/sshd_config: измените строку #Port 22 на Port 5667 и PermitRootLogin yes на PermitRootLogin no. После этого перезапустите службу: systemctl restart sshd. Теперь подключение будет выполняться командой ssh username@IP -p 5667.

Установите Fail2ban для автоматической блокировки IP-адресов после нескольких неудачных попыток входа. Создайте конфигурацию /etc/fail2ban/jail.local с параметрами: bantime = 1h, maxretry = 5, findtime = 10m. Это защитит от брутфорс-атак. Также настройте файрвол UFW: разрешите порты 80, 443, 8443 и ваш SSH-порт, затем включите его командой ufw enable. Проверьте, что доступ не потерян, открыв новое SSH-соединение.

Установка панели 3X-UI

Существует два основных способа установки 3X-UI: через готовый шаблон хостера или вручную. Если ваш провайдер предлагает образ с предустановленной панелью, это самый быстрый путь — вы сразу получаете работающий веб-интерфейс. В противном случае выполните установку вручную.

Для ручной установки подключитесь к серверу по SSH и выполните команду:

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

Скрипт установит Xray-core и 3X-UI, а также предложит задать порт для веб-панели, логин и пароль администратора. Запишите эти данные — они понадобятся для входа. После завершения установки откройте браузер и перейдите по адресу http://IP_СЕРВЕРА:ПОРТ, используя указанные учётные данные.

Если веб-панель не открывается, проверьте, что порт открыт в файрволе: ufw allow ПОРТ/tcp. Альтернативно можно использовать SSH-туннель: ssh -L 2053:127.0.0.1:2053 root@IP_СЕРВЕРА, затем открыть http://localhost:2053. Это безопасный способ доступа к панели без открытия порта наружу.

Создание inbound VLESS Reality

В панели 3X-UI перейдите в раздел Inbounds и нажмите Add Inbound. Заполните форму:

  • Protocol: VLESS
  • Port: 443 (стандартный HTTPS-порт, не вызывает подозрений)
  • Transmission: TCP
  • Security: Reality

После выбора Reality появится блок настроек. В поле Dest (или SNI) укажите домен, под который будет маскироваться трафик. Требования: крупный сайт, работающий по HTTPS без ECH и не использующий Cloudflare. Хорошие варианты: microsoft.com, apple.com, addons.mozilla.org, dl.google.com, www.speedtest.net. Избегайте Cloudflare-доменов, так как они включают ECH, что ломает REALITY.

В поле Server Names укажите тот же домен и его www-вариант, например microsoft.com,www.microsoft.com. Нажмите Get New Cert для генерации пары ключей — панель создаст Private Key, Public Key и Short ID автоматически. Скопируйте Public Key — он понадобится для клиентских конфигов. Short ID также генерируется автоматически, его можно оставить как есть.

Прокрутите форму до секции Clients и нажмите Add Client. Заполните:

  • Email: любое имя без пробелов (например, phone или laptop)
  • ID (UUID): нажмите кнопку генерации
  • Flow: xtls-rprx-vision — обязательно, это включает оптимизацию XTLS Vision
  • Total GB: 0 (без лимита) или укажите лимит трафика
  • Expire Date: оставьте пустым для бессрочного доступа

Нажмите Create — inbound будет создан, Xray перезапустится автоматически.

Подключение клиентских устройств

После создания inbound вы можете получить ссылку для подключения или QR-код. В списке Inbounds найдите созданный inbound, нажмите на иконку QR-кода — откроется окно с QR и ссылкой вида vless://UUID@IP:443?.... Скопируйте ссылку или отсканируйте QR-код камерой телефона.

Для подключения на Android рекомендуется приложение v2rayNG или Hiddify. На iOS — Streisand или Hiddify. На Windows и Linux — Hiddify или NekoRay. Установите приложение, затем используйте функцию «Добавить из буфера обмена» или «Импорт из QR-кода». После импорта активируйте профиль и включите VPN.

Проверьте, что IP-адрес изменился на IP вашего VPS, открыв сайт 2ip.ru или ifconfig.me. Если всё работает, вы можете пользоваться интернетом через свой защищённый канал. Для удобства можно создать несколько клиентов в одном inbound — по одному на каждое устройство, чтобы отслеживать трафик и при необходимости отзывать доступ.

Проверка работоспособности и диагностика

После подключения убедитесь, что трафик идёт через сервер. В панели 3X-UI в разделе Inbounds напротив вашего inbound отображается статистика входящего и исходящего трафика. Если цифры растут — соединение работает. Также можно проверить логи Xray: docker compose logs -f 3x-ui | grep accepted — вы должны видеть строки accepted tcp:IP:PORT при каждом подключении.

Если подключение не работает, пройдитесь по чек-листу:

  1. Проверьте, что порт 443 открыт в файрволе: ufw status | grep 443.
  2. Убедитесь, что контейнер 3x-ui запущен: docker compose ps.
  3. Проверьте, что Flow клиента установлен на xtls-rprx-vision.
  4. Убедитесь, что Dest-домен не на Cloudflare и не использует ECH.
  5. Сверьте Public Key в конфиге клиента с тем, что в панели.

Если проблема не решена, попробуйте перезапустить Xray из панели или перезагрузить сервер. Иногда помогает смена Dest-домена на другой крупный сайт — это может улучшить скорость и обойти точечные ограничения.

Тонкая настройка и оптимизация

Для повышения надёжности можно создать несколько inbound на разных портах, например 443 и 8443, с одинаковыми настройками. Это обеспечит резервный канал: если один порт будет заблокирован провайдером, клиенты смогут переключиться на другой. Не забудьте открыть дополнительные порты в файрволе: ufw allow 8443/tcp.

Рекомендуется создавать отдельного клиента для каждого устройства — так удобнее контролировать трафик и при необходимости отозвать доступ, не затрагивая остальных. В 3X-UI можно установить лимиты трафика (Total GB) и срок действия (Expire Date) для каждого клиента. Когда лимит исчерпан, панель автоматически отключит клиента.

Для повышения приватности отключите логи доступа в настройках Xray: XRay Settings → Log → Access Log Level → None. Это снизит нагрузку на диск и уменьшит количество записываемой информации. Также можно настроить уведомления о подключениях в Telegram, чтобы быть в курсе активности.

Дополнительные сценарии: двойной хоп и резервирование

В некоторых случаях прямое подключение к зарубежному серверу может быть затруднено из-за блокировок на уровне провайдера. Решение — использование промежуточного сервера на территории с более мягкой цензурой, например в Москве. Схема: клиент → RU VPS → Foreign VPS → интернет. Это называется двойным хопом.

Для реализации потребуется второй VPS в России и дополнительный домен. Настройте базовую безопасность на обоих серверах, как описано ранее. На зарубежном сервере создайте inbound VLESS Reality с XHTTP-транспортом (если поддерживается). Затем на российском сервере установите HAProxy или используйте скрипт для проброса трафика на зарубежный сервер. В результате вы получите конфиг для подключения к российскому серверу, который будет перенаправлять трафик дальше.

Этот подход повышает устойчивость к блокировкам, так как соединение с российским сервером выглядит как обычный HTTPS-запрос. Однако он добавляет задержку и требует дополнительных затрат на аренду второго VPS. Для большинства пользователей достаточно одного зарубежного сервера, но в условиях усиления фильтрации двойной хоп может стать необходимым.

Частые ошибки и их устранение

Одна из распространённых ошибок — использование Cloudflare-домена в Dest. Это приводит к тому, что REALITY не работает корректно, так как Cloudflare включает ECH. Проверить домен можно через dig TXT _dnskey.домен или сервис check.cdn77.com. Если домен на Cloudflare, замените его на другой.

Другая ошибка — неправильный Flow. Без xtls-rprx-vision REALITY работает, но без оптимизации fingerprint, что может снизить скорость и устойчивость. Убедитесь, что Flow указан у каждого клиента.

Также часто забывают открыть порт в файрволе. Каждый новый inbound требует отдельного правила UFW. Если клиенты не подключаются, проверьте ufw status и добавьте нужные порты.

Если скорость низкая, проверьте пинг до сервера: если он выше 80 мс, это может влиять на субъективное восприятие. Также провайдер может шейпить трафик по объёму, а не блокировать — в этом случае поможет смена Dest-домена или использование другого порта.

Вопросы и ответы

В чём преимущества VLESS Reality перед WireGuard?

WireGuard имеет хорошо известную UDP-сигнатуру, которая блокируется ТСПУ с 2022 года. VLESS Reality имитирует TLS-рукопожатие к легитимному сайту, поэтому для DPI трафик выглядит как обычный HTTPS. Чтобы заблокировать VLESS Reality, пришлось бы блокировать весь HTTPS, что нереалистично. Кроме того, VLESS более лёгкий и быстрый, а 3X-UI упрощает управление.

Какой домен выбрать для Dest в REALITY?

Любой крупный HTTPS-сайт без ECH и без Cloudflare: microsoft.com, apple.com, addons.mozilla.org, dl.google.com, www.speedtest.net. Главное — сайт должен быть реально доступен с вашего сервера и использовать TLS без ECH. Cloudflare-домены не подходят, так как они обнуляют эффект REALITY.

Можно ли добавить несколько пользователей в один inbound?

Да, это главная фишка 3X-UI. В одном inbound можно создать сколько угодно клиентов, у каждого свой UUID и, опционально, лимит трафика и срок действия. Все работают через один порт, что упрощает управление и экономит ресурсы.

Нужно ли открывать порт в файрволе для каждого нового inbound?

Да. Каждый inbound слушает отдельный порт, поэтому добавьте его в UFW: ufw allow ПОРТ/tcp. Если забыть это сделать, клиенты не смогут подключиться даже при правильных настройках.

Что делать, если скорость соединения низкая?

Проверьте: 1) Flow должен быть xtls-rprx-vision — без него XRay работает без оптимизации. 2) Dest — не Cloudflare-домен. 3) Пинг до сервера — если выше 80 мс, это влияет на субъективную скорость. 4) Провайдер может шейпить трафик по объёму, а не блокировать. Попробуйте сменить Dest-домен на другой крупный сайт.

Безопасны ли мои данные на VPS-сервере?

Весь трафик между клиентом и сервером зашифрован. Сам VPS видит зашифрованный поток и адреса назначения, но не содержимое (если речь о HTTPS-сайтах, которые и так зашифрованы). Хостинг-провайдер видит только трафик от клиента к серверу, без расшифровки. Для повышения приватности можно отключить логи доступа в настройках Xray.

Как создать резервный канал на случай блокировки порта?

Создайте второй inbound на другом порту, например 8443, с теми же настройками. Откройте порт в файрволе. Если один порт будет заблокирован, клиенты смогут переключиться на другой. Также можно использовать двойной хоп через RU VPS для дополнительной устойчивости.