Зачем нужен VLESS и что такое REALITY
VLESS — это современный прокси-протокол, разработанный для проекта XRay. В отличие от многих других протоколов, он не содержит лишних заголовков и служебных данных, что делает его легким и быстрым. Однако главная его особенность — возможность комбинировать с технологией REALITY, которая имитирует TLS-соединение с легитимным сайтом.
REALITY работает не через обфускацию трафика, а через имитацию. Когда клиент подключается к серверу, DPI (система глубокого анализа пакетов) видит обычное TLS-рукопожатие к известному сайту, например, microsoft.com. Это выглядит как стандартный браузерный запрос, поэтому блокировка такого трафика потребовала бы блокировки всего HTTPS, что невозможно. Именно поэтому VLESS+REALITY считается одним из самых устойчивых к блокировкам решений на текущий момент.
Классические протоколы, такие как OpenVPN, WireGuard или L2TP, блокируются по сигнатуре рукопожатия. Даже Shadowsocks с обфускацией все чаще выявляется DPI в пиковые часы из-за энтропийных паттернов случайного трафика. REALITY лишен этих недостатков, так как его трафик неотличим от обычного HTTPS.
Подготовка к настройке: что нужно заранее
Прежде чем приступать к настройке VLESS в 3x-ui, убедитесь, что у вас есть все необходимые компоненты.
Во-первых, вам понадобится виртуальный сервер (VPS) с реальным белым IP-адресом и выходом в интернет. Операционная система может быть любой, но чаще всего используется Ubuntu или Debian. Важно, чтобы у вас был root-доступ к серверу.
Во-вторых, панель 3x-ui должна быть уже установлена и открываться в браузере. Если она еще не установлена, сначала выполните установку, а затем возвращайтесь к настройке VLESS. В качестве альтернативы можно использовать готовые образы с предустановленной панелью, которые предлагают некоторые хостинг-провайдеры.
В-третьих, убедитесь, что порт, который вы планируете использовать (обычно 443), открыт в файрволе. Если вы используете ufw, проверьте статус командой ufw status и при необходимости добавьте правило ufw allow 443/tcp.
Наконец, подготовьте клиентское устройство. Для Android подойдут Hiddify или v2rayNG, для iOS — Hiddify или FoXray, для Windows — Hiddify или NekoBox. Большинство клиентов поддерживают импорт через QR-код или ссылку.
Установка 3x-ui: быстрый старт
Установка 3x-ui обычно выполняется одной командой. После подключения к серверу по SSH обновите списки пакетов и запустите установочный скрипт. Скрипт задаст несколько вопросов: порт для веб-панели (по умолчанию 54321) и уровень логирования. Через несколько минут установка завершится, и вы получите адрес для входа, логин и временный пароль.
Важно сразу сменить пароль администратора на надежный. Интерфейс панели простой: слева вертикальное меню с разделами «Статус», «Входящие подключения», «Клиенты», «Настройки». Перед созданием первого inbound панель бесполезна — нужно добавить сервер.
Если вы используете хостинг-провайдера, который предлагает установку 3x-ui при заказе сервера, вы получите ссылку на панель и учетные данные автоматически. Это самый простой способ, особенно для новичков.
Создание inbound VLESS+REALITY в 3x-ui
Войдите в панель 3x-ui и перейдите в раздел «Inbounds». Нажмите кнопку «Add Inbound» и заполните форму.
Основные параметры:
- Remark — любое имя для вашего подключения, например, vless-reality.
- Protocol — выберите VLESS.
- Listen IP — оставьте пустым, чтобы слушать на всех интерфейсах.
- Port — укажите 443 (стандартный HTTPS-порт, не вызывает подозрений).
- Transmission — TCP.
- Security — Reality.
После выбора Security: Reality появится блок настроек REALITY. Здесь важно не ошибиться.
Поле Dest (или Uname) — это домен, под который маскируется ваш трафик. Он должен быть крупным сайтом с TLS без ECH и без Cloudflare-прокси. Хорошие варианты: microsoft.com, apple.com, addons.mozilla.org, dl.google.com, www.speedtest.net. Не используйте Cloudflare-домены, так как они включают ECH, что ломает REALITY.
Поле Server Names — укажите тот же домен, что и в Dest, и можно добавить www-вариант. Например: microsoft.com, www.microsoft.com.
Кнопка Get New Cert генерирует пару ключей (Private Key и Public Key) автоматически. Публичный ключ понадобится для клиента, поэтому скопируйте его.
Кнопка Add ShortId генерирует случайный hex-идентификатор. Он используется для верификации клиента.
В секции «Clients» нажмите «Add Client» и заполните:
- Email — любое имя без пробелов (например, phone, laptop). Пробелы ломают парсинг конфига.
- ID (UUID) — нажмите кнопку генерации.
- Flow — обязательно выберите xtls-rprx-vision.
- Total GB — 0 означает без лимита, или укажите лимит.
- Expire Date — оставьте пустым для бессрочного доступа.
После нажатия «Create» inbound сохранится, и XRay перезапустится автоматически.
Подключение клиентов: QR-код, ссылка и подписка
После создания inbound вы можете получить конфигурацию для клиента тремя способами.
QR-код: На странице Inbounds найдите созданный inbound и нажмите иконку QR-кода. Отсканируйте его клиентом (Hiddify, v2rayNG и др.) — конфиг импортируется мгновенно.
Ссылка vless://: Нажмите кнопку Copy напротив клиента. Ссылка будет выглядеть примерно так: vless://UUID@ВАШ_IP:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=microsoft.com&fp=chrome&pbk=ПУБЛИЧНЫЙ_КЛЮЧ&sid=SHORTID&type=tcp#vless-reality
Эту ссылку можно отправить в мессенджер и открыть на устройстве — клиент предложит импортировать конфиг.
Подписка (subscription): В 3x-ui есть функция subscription URL. Скопируйте ссылку подписки и добавьте ее в клиенте (например, в Hiddify: плюс → Add from URL). Клиент будет автоматически обновлять конфиги.
Для ручной настройки можно использовать шаблон URL-строки, который включает все параметры: UUID, IP, порт, тип транспорта, security, публичный ключ, fingerprint, SNI, shortId и flow.
Проверка работы и типичные ошибки
После подключения проверьте, что все работает правильно. На устройстве включите VPN и откройте сайт 2ip.ru — IP должен смениться на IP вашего VPS. В панели 3x-ui в разделе Inbounds вы увидите статистику трафика — если цифры растут, все работает.
На сервере можно посмотреть логи XRay: docker compose logs -f 3x-ui | grep accepted (если используется Docker) или journalctl -u xray -f. Вы должны видеть строки вида accepted tcp:ВАШ_IP:PORT.
Если подключение не работает, проверьте по порядку:
- Порт открыт в файрволе:
ufw status | grep 443. - Контейнер или служба запущены:
docker compose psилиsystemctl status xray. - Flow у клиента — xtls-rprx-vision (не пусто).
- Dest-домен не Cloudflare и не с ECH.
- Public Key в конфиге клиента совпадает с тем, что в панели.
Частая ошибка — забыть включить IP forwarding на сервере. По умолчанию VPS не перенаправляет пакеты. Включите его командой sysctl -w net.ipv4.ip_forward=1 и добавьте правило в iptables для NAT, иначе интернет на клиенте не заработает.
Тонкая настройка: несколько inbound, лимиты и безопасность
3x-ui позволяет создавать несколько inbound на разных портах. Например, можно сделать резервный inbound на порту 8443 с теми же настройками. Если один порт будет заблокирован провайдером, клиенты смогут переключиться на другой. Не забудьте открыть порт в файрволе: ufw allow 8443/tcp.
Для каждого устройства лучше создавать отдельного клиента. Это упрощает просмотр статистики и позволяет выборочно отзывать доступ, не меняя конфиг остальным.
Если вы планируете давать доступ другим людям, установите лимит трафика (Total GB). Когда лимит исчерпается, 3x-ui автоматически отключит клиента. Возобновить доступ можно вручную или сбросить счетчик.
Для повышения приватности отключите логи доступа в настройках XRay: XRay Settings → Log → Access Log Level → None. Это также снизит нагрузку на диск.
Если начались проблемы со скоростью, попробуйте сменить Dest-домен. Это не обязательно означает блокировку — возможно, деградировал маршрут до конкретного IP. Смените на другой крупный домен и проверьте.
Альтернативные способы настройки VLESS
Помимо ручной настройки через 3x-ui, существуют и другие способы развернуть VLESS+REALITY.
AmneziaVPN: Это приложение позволяет настроить VPN на собственном сервере без глубоких технических знаний. Достаточно ввести IP-адрес и root-пароль сервера, выбрать протокол XRay (XRay with Reality), и программа сама настроит все на сервере. По умолчанию используется протокол VLESS. Это отличный вариант для быстрого старта.
Самостоятельная установка XRay: Если вы хотите полный контроль, можно установить XRay вручную. Для этого нужно:
- Установить XRay через официальный скрипт.
- Сгенерировать UUID и ключи X25519.
- Выбрать сайт с поддержкой HTTP/2, TLS 1.3 и X25519.
- Создать конфигурационный файл config.json с inbound VLESS+REALITY.
- Перезапустить XRay и проверить статус.
Этот способ требует больше времени и знаний, но дает полное понимание процесса. В конфигурационном файле нужно указать порт, протокол, настройки REALITY (dest, serverNames, privateKey, shortIds) и клиентов с UUID и flow.
Сравнение VLESS+REALITY с другими протоколами
VLESS+REALITY часто сравнивают с WireGuard и OpenVPN. WireGuard блокируется ТСПУ с 2022 года из-за хорошо известной UDP-сигнатуры. OpenVPN также легко обнаруживается по сигнатуре рукопожатия. VLESS+REALITY имитирует TLS-рукопожатие к легитимному сайту, поэтому для DPI это выглядит как обычный HTTPS. Чтобы заблокировать такой трафик, пришлось бы блокировать весь HTTPS, что невозможно.
По сравнению с Shadowsocks, VLESS+REALITY более устойчив к DPI, так как не создает энтропийных паттернов случайного трафика. Shadowsocks с обфускацией все чаще выявляется в пиковые часы.
Важно отметить, что VLESS — это не VPN в строгом смысле, а прокси-протокол. Он не шифрует весь трафик, а только передает его через защищенный туннель. Однако для обхода блокировок и обеспечения конфиденциальности этого достаточно.
Безопасность и рекомендации по эксплуатации
При использовании VLESS+REALITY важно соблюдать несколько правил безопасности.
Во-первых, всегда используйте надежные пароли для панели 3x-ui и меняйте их регулярно. Панель управления — это точка входа для злоумышленников, поэтому ограничьте доступ к ней по IP, если это возможно.
Во-вторых, не используйте один и тот же UUID для разных клиентов. Каждый клиент должен иметь свой уникальный UUID, чтобы можно было управлять доступом и статистикой.
В-третьих, регулярно обновляйте 3x-ui и XRay до последних версий. Разработчики исправляют уязвимости и улучшают производительность.
В-четвертых, если вы предоставляете доступ другим людям, установите лимиты трафика и срок действия, чтобы избежать злоупотреблений.
Наконец, помните, что использование VPN для обхода блокировок может нарушать законодательство в некоторых странах. Убедитесь, что вы действуете в рамках закона.
Вопросы и ответы
Какой домен выбрать для Dest в REALITY?
Для Dest нужно выбирать крупный HTTPS-сайт без ECH и без Cloudflare-прокси. Хорошие варианты: microsoft.com, apple.com, addons.mozilla.org, dl.google.com, www.speedtest.net. Cloudflare-домены (например, discord.com) не подходят, так как они включают ECH, что ломает REALITY. Проверить можно через dig TXT _dnskey.домен или сервис check.cdn77.com.
Почему VLESS+REALITY, а не просто WireGuard?
WireGuard блокируется ТСПУ с 2022 года из-за хорошо известной UDP-сигнатуры. VLESS+REALITY имитирует TLS-рукопожатие к легитимному сайту, поэтому для DPI это выглядит как обычный HTTPS. Чтобы заблокировать такой трафик, нужно заблокировать весь HTTPS, что нереально.
Что такое Flow xtls-rprx-vision и зачем он нужен?
Flow xtls-rprx-vision — это расширение XTLS Vision, которое встраивает TLS клиента прямо в транспортный слой без двойного шифрования. Fingerprint становится неотличим от браузерного Chrome. Для России обязательно включайте эту опцию, так как она улучшает производительность и маскировку.
Клиент подключился, но скорость низкая. Что делать?
Проверьте: 1) Flow должен быть xtls-rprx-vision — без него XRay работает без оптимизации. 2) Dest — не Cloudflare-домен. 3) Пинг до сервера — если выше 80 мс, это влияет на субъективную скорость. 4) Провайдер может шейпить трафик по объему, а не блокировать.
Можно ли добавить нескольких пользователей в один inbound?
Да, это главная фишка 3x-ui. В одном inbound можно создать сколько угодно клиентов — у каждого свой UUID и, опционально, свой лимит трафика и срок действия. Все работают через один порт.
Нужно ли открывать в файрволе порт для каждого нового inbound?
Да. Каждый inbound слушает отдельный порт — добавьте его в ufw: ufw allow ПОРТ/tcp. Если забудете, клиенты не смогут подключиться даже при правильных настройках.