VLESS Reality 580: настройка защищённого прокси на роутере и сервере

Подробное руководство по настройке VLESS + Reality на роутере с OpenWrt и на сервере с 3x-ui: выбор железа, установка, конфигурация, маршрутизация, DNS, балансировка и ответы на вопросы.

Что такое VLESS Reality и почему это актуально

VLESS Reality — это современная связка протокола VLESS и технологии Reality, которая позволяет создавать прокси-соединения, неотличимые от обычного HTTPS-трафика. В отличие от традиционных VPN-протоколов, таких как OpenVPN или WireGuard, VLESS Reality не создаёт полноценный туннель, а работает как прокси, перенаправляя трафик через удалённый сервер. Это даёт несколько преимуществ: меньшие накладные расходы, более высокая скорость и лучшая маскировка.

Технология Reality решает проблему обнаружения прокси с помощью глубокого анализа пакетов (DPI). Современные DPI-системы анализируют не только заголовки, но и паттерны трафика, размеры пакетов, временные интервалы и TLS-отпечатки. Reality имитирует TLS-хендшейк реального сайта, используя его сертификат через SNI, а аутентификацию клиента выполняет с помощью криптографической пары ключей (publicKey/shortId). Это делает трафик практически неотличимым от обычного HTTPS-соединения к легитимному ресурсу.

Протокол VLESS, в свою очередь, является облегчённой версией VMess: он не имеет собственного шифрования, полагаясь на TLS, и не зависит от времени на клиенте и сервере. Аутентификация происходит через UUID, что упрощает настройку. В сочетании с XTLS-Vision, который позволяет «проваливать» внутренний TLS во внешний без двойного шифрования, достигается почти нативная скорость.

Таким образом, VLESS Reality — это не просто ещё один VPN, а принципиально иной подход, который делает трафик похожим на обычный веб-сёрфинг. Это особенно важно в условиях, когда стандартные VPN-протоколы блокируются всё быстрее — иногда в течение нескольких часов после запуска сервера.

Почему прокси на роутере, а не на каждом устройстве

Установка VPN-клиента на каждое устройство — это утомительный процесс, который становится нецелесообразным, когда в доме больше двух-трёх гаджетов. Smart TV, игровые консоли, умные колонки и другие IoT-устройства часто не поддерживают кастомные протоколы вроде VLESS. На телевизоре Samsung, например, нет клиента для VLESS, и установить его невозможно.

Кроме того, на каждом устройстве нужно устанавливать, настраивать и обновлять клиент. Не все члены семьи или гости готовы разбираться с приложениями типа v2rayNG. Клиент может незаметно отключиться, и трафик пойдёт напрямую, что сведёт на нет все усилия по обеспечению безопасности. На мобильных устройствах постоянный туннель расходует батарею, так как обработка пакетов происходит в userspace.

Прокси-шлюз на роутере решает все эти проблемы. Любое устройство, подключённое к Wi-Fi или по кабелю, автоматически получает проксирование без установки дополнительного ПО. Настроить нужно один раз, обновить — в одном месте. Устройства даже не знают, что их трафик проксируется, для них это обычный интернет. Цена такого решения — более сложная первоначальная настройка, но она окупается, если устройств больше трёх.

Ключевое преимущество — централизованное управление. Вы можете настроить сплит-роутинг, чтобы российские сайты шли напрямую, а зарубежные — через прокси. DNS-запросы можно шифровать и фильтровать на уровне роутера. Всё это работает для всех устройств в сети, включая те, которые не поддерживают настройку прокси.

Выбор роутера для VLESS Reality: требования к железу

Не каждый роутер подойдёт для запуска Xray и VLESS Reality. Основные требования — поддержка OpenWrt, достаточный объём RAM и производительный процессор. Xray-core написан на Go и потребляет около 100 МБ физической памяти, плюс geodata для маршрутизации занимает примерно 85 МБ в tmpfs. Роутеры с 128 МБ RAM не справятся, минимум — 256 МБ, комфортно — 512 МБ.

Процессор также важен: ARM Cortex-A53 или мощнее. MIPS-роутеры с частотой 580 МГц будут «задыхаться» на шифровании, что приведёт к низкой скорости и нестабильной работе. В качестве примера подходящего устройства можно привести Cudy TR3000 v1: SoC MediaTek Filogic (MT7981B), два ядра ARM Cortex-A53, 496 МБ DDR4, 128 МБ NAND Flash, порты 1× WAN 2.5GbE и 3× LAN 1GbE, Wi-Fi 6. Это железо обеспечивает запас производительности для шифрования и маршрутизации.

При выборе роутера также стоит обратить внимание на ревизию Flash-памяти. Например, у Cudy TR3000 v1 с серийными номерами от 2544 и выше (примерно с ноября 2025) установлен новый чип NAND Flash — ESMT F50L1G41LC. Старые образы OpenWrt на таких устройствах не загружаются, поддержка появилась только в OpenWrt 24.10.5+. Для прошивки требуется специальная промежуточная прошивка от производителя, иначе роутер может превратиться в «кирпич».

Перед покупкой обязательно проверьте совместимость с OpenWrt на официальном сайте openwrt.org/toh. Убедитесь, что для вашей модели есть стабильные сборки и достаточное сообщество пользователей.

Установка OpenWrt и необходимых пакетов

Прошивка OpenWrt на роутер обычно проходит в два этапа. Сначала из стоковой прошивки через веб-интерфейс загружается промежуточная прошивка (intermediate firmware), которая позволяет перейти на OpenWrt. После перезагрузки появляется LuCI — веб-интерфейс OpenWrt, через который выполняется sysupgrade на финальную версию. Например, для Cudy TR3000 v1 используется промежуточная прошивка от Cudy, а затем ставится OpenWrt 25.12.2.

После прошивки доступ к роутеру осуществляется по SSH: ssh root@192.168.1.1. Важно учитывать, что начиная с OpenWrt ~25.x пакетный менеджер — apk, а не opkg. Команды установки отличаются. Для настройки VLESS Reality потребуются следующие пакеты:

apk update
apk add xray-core kmod-nft-tproxy kmod-nf-tproxy nftables-json curl

Разберём, зачем нужен каждый пакет:

  • xray-core — основной движок Xray, который реализует VLESS, Reality, маршрутизацию и Observatory.
  • kmod-nf-tproxy и kmod-nft-tproxy — модули ядра для поддержки TPROXY в netfilter/nftables.
  • kmod-nft-fib — модуль для FIB lookup, необходим для policy routing в nftables.
  • nftables-json — утилита nft с поддержкой JSON, упрощает настройку правил.
  • curl — для скачивания geodata и подписки с серверами.

Также может понадобиться kmod-nft-core и kmod-nft-nat для базовой работы nftables. Убедитесь, что все модули загружаются корректно, иначе TPROXY не будет работать.

Архитектура решения: TPROXY, nftables и Xray

Прозрачное проксирование на роутере основано на перехвате трафика с помощью TPROXY. Существует два основных способа перехвата: REDIRECT (DNAT) и TPROXY. REDIRECT подменяет адрес назначения на 127.0.0.1:порт, но при этом оригинальный адрес теряется, и прокси должен восстанавливать его из заголовков HTTP Host или TLS SNI. Для чистого TCP без HTTP/TLS это невозможно. TPROXY, напротив, передаёт пакет приложению с сохранением оригинального IP назначения, что критично для маршрутизации.

Схема работы выглядит так: устройство в сети отправляет TCP-запрос к удалённому серверу. Роутер с помощью nftables перехватывает пакеты с интерфейса br-lan и направляет их на порт 12345, где слушает Xray. Xray анализирует трафик, извлекает домен из SNI (для TLS) или Host (для HTTP) и принимает решение: направить трафик напрямую (например, для российских сайтов) или через VLESS+Reality туннель.

DNS-запросы обрабатываются отдельно: AdGuard Home принимает DNS от устройств на порту 53, фильтрует рекламу и трекеры, а затем резолвит через DNS-over-HTTPS (DoH), например, к Cloudflare 1.1.1.1. HTTPS-трафик к DNS-серверам также проходит через TPROXY и уходит через защищённый канал. Таким образом, ни один plaintext DNS-запрос не покидает роутер.

Важно отметить, что данная схема проксирует только TCP. UDP-трафик (кроме DNS) идёт напрямую, что является осознанным ограничением. Для полноценной поддержки UDP потребуется дополнительная настройка, например, использование TPROXY для UDP или отдельного туннеля.

Конфигурация Xray: inbound, outbound и маршрутизация

Конфигурация Xray состоит из нескольких секций. Входящее соединение (inbound) настраивается с протоколом dokodemo-door, который принимает перенаправленный трафик. Ключевые параметры:

  • followRedirect: true — использовать оригинальный адрес назначения, восстановленный TPROXY.
  • sniffing с destOverride: ["http", "tls"] — извлекать домен из SNI или Host для маршрутизации по доменам.
  • routeOnly: true — использовать извлечённый домен только для маршрутизации, не подменяя адрес назначения в соединении.
  • tproxy: "tproxy" — режим TPROXY, сохраняющий оригинальный IP.

Исходящие соединения (outbounds) включают три типа: прокси-серверы VLESS+Reality, direct (прямое соединение) и block (чёрная дыра). Для прокси-сервера настраиваются параметры:

{
  "tag": "proxy-1",
  "protocol": "vless",
  "settings": {
    "vnext": [{
      "address": "your-server.example.com",
      "port": 443,
      "users": [{
        "id": "ваш-uuid",
        "flow": "xtls-rprx-vision",
        "encryption": "none"
      }]
    }]
  },
  "streamSettings": {
    "network": "tcp",
    "security": "reality",
    "realitySettings": {
      "serverName": "sni-domain.example.com",
      "publicKey": "ваш-publicKey",
      "fingerprint": "chrome",
      "shortId": "1234"
    }
  }
}

Здесь serverName — SNI, который сервер предъявляет при TLS-хендшейке, publicKey и shortId — пара для Reality-аутентификации, fingerprint: "chrome" — имитация TLS-отпечатка Chrome. Серверов может быть несколько, для балансировки нагрузки используется пул из 5–10 серверов.

Маршрутизация настраивается в секции routing: правила определяют, какой трафик направлять через прокси, а какой — напрямую. Например, можно использовать geosite и geoip для автоматического определения: российские сайты идут напрямую, остальные — через прокси. Это позволяет оптимизировать скорость и снизить нагрузку на прокси-серверы.

Настройка сервера: 3x-ui и генерация ключей Reality

Для развёртывания сервера VLESS + Reality удобно использовать панель управления 3x-ui, которая работает поверх Xray. Она позволяет создавать inbound-соединения, управлять пользователями и настраивать Reality без ручного редактирования JSON. Перед установкой рекомендуется включить BBR на сервере для улучшения пропускной способности.

Установка 3x-ui обычно выполняется с помощью скрипта, который скачивает и настраивает панель. После установки панель доступна через веб-интерфейс. Если установщик завершает работу, но systemctl status x-ui показывает HTTP вместо HTTPS, это может быть связано с неправильной настройкой SSL-сертификата. В таком случае нужно проверить конфигурацию и перезапустить службу.

В 3x-ui создаётся inbound с протоколом VLESS, портом 443 и security = reality. Для Reality необходимо сгенерировать пару ключей x25519: публичный ключ передаётся клиенту, приватный остаётся на сервере. Также задаётся shortId — идентификатор, который используется для аутентификации. В настройках указывается SNI — домен, который будет имитироваться (например, www.microsoft.com).

После создания inbound экспортируется конфигурация для клиента. Это можно сделать в виде ссылки или QR-кода. Для ручной настройки Xray на сервере можно использовать JSON-конфиг, аналогичный клиентскому, но с приватным ключом и другими параметрами. Важно обеспечить, чтобы приватный ключ никогда не покидал сервер.

Клиентские приложения и подключение

Для подключения к VLESS + Reality на клиентских устройствах используются приложения, поддерживающие этот протокол. Наиболее популярные: v2rayNG для Android, V2Box для iOS, Nekoray для Windows и Linux, а также V2Ray для macOS. Все они позволяют импортировать конфигурацию из ссылки или QR-кода.

При импорте конфигурации убедитесь, что указаны правильные параметры: адрес сервера, порт, UUID, flow (xtls-rprx-vision), publicKey, shortId и SNI. Также важно выбрать fingerprint — обычно chrome, чтобы имитировать браузер. После импорта подключение устанавливается в один клик.

Для проверки конфигурации можно использовать встроенные инструменты приложения или сторонние сервисы. Убедитесь, что IP-адрес при подключении соответствует серверу, а скорость соединения приемлема. Если возникают проблемы, проверьте логи Xray на сервере и клиенте.

Для роутера с OpenWrt клиент не требуется — трафик проксируется прозрачно. Однако для тестирования можно временно установить клиент на компьютер и сравнить скорость и стабильность.

Балансировка нагрузки и автоматическое восстановление

При использовании нескольких прокси-серверов Xray поддерживает балансировку нагрузки с помощью Observatory. Эта функция мониторит здоровье серверов, отправляя периодические HTTP-запросы через каждый сервер. Например, можно настроить проверку каждые 120 секунд к http://cp.cloudflare.com. Если сервер не отвечает, он исключается из пула.

Конфигурация Observatory выглядит так:

{
  "observatory": {
    "subjectSelector": ["proxy-"],
    "probeURL": "http://cp.cloudflare.com",
    "probeInterval": "120s",
    "enableConcurrency": true
  }
}

subjectSelector выбирает outbound-серверы по тегу (например, все с префиксом proxy-). probeInterval задаёт частоту проверок. enableConcurrency позволяет проверять несколько серверов одновременно.

Для автоматического восстановления после сбоев на роутере используются procd, watchdog и hotplug. Procd контролирует запуск служб и перезапускает их при падении. Watchdog следит за доступностью Xray и перезапускает его при необходимости. Hotplug позволяет реагировать на изменения в сети, например, на переподключение WAN.

Такая конфигурация обеспечивает стабильную работу неделями без перезагрузки. При сбое одного сервера трафик автоматически переключается на другой, что минимизирует простои.

Ограничения и важные замечания

Несмотря на все преимущества, у схемы VLESS + Reality на роутере есть ограничения. Во-первых, проксируется только TCP-трафик. UDP-трафик, кроме DNS, идёт напрямую. Это может быть проблемой для некоторых приложений, таких как онлайн-игры или видеозвонки, которые используют UDP. Для полной поддержки UDP потребуется дополнительная настройка, например, использование TPROXY для UDP или отдельного туннеля.

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

В-третьих, использование VLESS Reality должно соответствовать законодательству РФ и условиям обслуживания используемых сервисов. Материалы, описывающие настройку, носят научно-технический характер и предназначены для администрирования собственной инфраструктуры. Несанкционированное использование может повлечь юридические последствия.

Также стоит помнить, что скорость соединения зависит от качества сервера и канала. Если сервер перегружен или находится далеко, скорость может быть ниже ожидаемой. Рекомендуется выбирать серверы с низким пингом и достаточной пропускной способностью.

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

Что такое VLESS Reality и чем он отличается от обычного VPN?

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

Можно ли использовать роутер с 128 МБ RAM для VLESS Reality?

Нет, 128 МБ RAM недостаточно. Xray-core потребляет около 100 МБ физической памяти, плюс geodata занимает примерно 85 МБ в tmpfs. Роутер с 128 МБ будет испытывать нехватку памяти, что приведёт к сбоям. Минимальный рекомендуемый объём — 256 МБ, комфортный — 512 МБ.

Какой процессор нужен для роутера, чтобы он справлялся с шифрованием?

Рекомендуется ARM Cortex-A53 или более мощный. MIPS-роутеры с частотой 580 МГц будут «задыхаться» на шифровании, что снизит скорость и стабильность. Двухъядерный Cortex-A53, как в Cudy TR3000, обеспечивает достаточную производительность для VLESS Reality.

Почему TPROXY лучше, чем REDIRECT для прозрачного проксирования?

REDIRECT подменяет адрес назначения на 127.0.0.1, теряя оригинальный IP. Прокси вынужден восстанавливать его из HTTP Host или TLS SNI, что невозможно для чистого TCP. TPROXY сохраняет оригинальный IP назначения, позволяя Xray точно маршрутизировать трафик. Это критично для корректной работы сплит-роутинга.

Как настроить балансировку нагрузки между несколькими серверами?

Используйте Observatory в Xray. Настройте subjectSelector для выбора серверов по тегу, probeURL для проверки доступности (например, http://cp.cloudflare.com), probeInterval для частоты проверок. Мёртвые серверы автоматически исключаются из пула, а трафик распределяется между живыми.

Какие клиентские приложения поддерживают VLESS Reality?

Популярные приложения: v2rayNG (Android), V2Box (iOS), Nekoray (Windows/Linux), V2Ray (macOS). Они позволяют импортировать конфигурацию из ссылки или QR-кода. Убедитесь, что указаны все параметры: UUID, publicKey, shortId, SNI, fingerprint.

Какие ограничения у схемы VLESS Reality на роутере?

Основное ограничение — проксируется только TCP. UDP-трафик (кроме DNS) идёт напрямую. Это может повлиять на онлайн-игры и видеозвонки. Также настройка требует технических знаний, а использование должно соответствовать законодательству.