Зачем нужен VLESS на роутере, а не на каждом устройстве
Установка VPN-клиента на каждое устройство — решение, которое быстро перестаёт быть удобным, когда в доме больше двух-трёх гаджетов. Smart TV, игровые консоли и устройства умного дома часто не поддерживают современные протоколы вроде VLESS, а на смартфонах клиенты могут незаметно отключаться, оставляя трафик незащищённым. Кроме того, постоянный туннель на мобильных устройствах заметно расходует батарею.
Прокси-шлюз на роутере решает эти проблемы разом: любое устройство, подключённое по Wi-Fi или кабелю, автоматически получает доступ через защищённый канал. Настраивать нужно только роутер, а клиенты даже не подозревают о проксировании — для них это обычный интернет. Цена такого подхода — более сложная первоначальная настройка, но она окупается, если устройств много и они разные.
Роутеры Cudy, особенно модели с поддержкой OpenWrt, стали популярным выбором для таких задач благодаря хорошему соотношению цены и производительности. Например, Cudy TR3000 или WR3000S имеют достаточно ресурсов для шифрования и маршрутизации, что делает их идеальными кандидатами для создания прозрачного прокси-шлюза.
Как выбрать роутер Cudy для VLESS: ключевые характеристики
Не каждый роутер справится с нагрузкой, которую создаёт VLESS-прокси. Основные требования — поддержка OpenWrt, достаточный объём оперативной памяти и производительный процессор. Xray-core, который реализует VLESS, написан на Go и потребляет около 100 МБ физической памяти, плюс geodata для маршрутизации занимает ещё примерно 85 МБ в tmpfs. Поэтому роутеры с 128 МБ RAM не подойдут — минимум 256 МБ, а комфортно — 512 МБ.
Процессор также важен: ARM Cortex-A53 или мощнее справится с шифрованием без заметных тормозов, тогда как старые MIPS-роутеры с частотой около 580 МГц будут задыхаться. Среди моделей Cudy выделяются:
- Cudy TR3000 — двухъядерный MediaTek MT7981B (ARM Cortex-A53), 496 МБ DDR4, 128 МБ NAND, порт WAN 2.5GbE и три гигабитных LAN. Отличный выбор для скоростных тарифов и сложной маршрутизации.
- Cudy WR3000S — аналогичный чипсет, 128 МБ флеш-памяти, гигабитные порты. Хороший баланс цены и возможностей, часто используется для OpenWrt.
- Cudy WR3000H — версия с WAN-портом 2.5G, подойдёт для тарифов выше 1 Гбит/с.
- Cudy WR3000P — топовая модель с PoE и USB-портом, удобна для сложных инсталляций.
При выборе обращайте внимание на ревизию устройства: прошивки для v1 и v2 могут отличаться, и использование несовместимого образа может привести к неработоспособности.
Прошивка OpenWrt на Cudy: пошаговый процесс и подводные камни
Переход на OpenWrt открывает доступ к гибкой настройке сети, включая установку Xray и организацию прозрачного прокси. Процесс прошивки обычно состоит из двух этапов.
Этап 1: Промежуточная прошивка. Для многих моделей Cudy, например TR3000, требуется специальная intermediate firmware от производителя. Она загружается через штатный веб-интерфейс в разделе «Firmware Upgrade». Это необходимо для подготовки устройства к установке OpenWrt.
Этап 2: Установка OpenWrt. После перезагрузки появляется LuCI от промежуточной прошивки, через который выполняется sysupgrade на финальную версию OpenWrt. Важно использовать актуальную версию, например 24.10.5 или новее, так как в более старых образах может отсутствовать поддержка новых чипов NAND Flash, что приведёт к «кирпичу».
Подводный камень: у Cudy TR3000 v1 с серийными номерами от 2544 и выше (примерно с ноября 2025) установлен новый чип NAND Flash — ESMT F50L1G41LC. Старые образы OpenWrt на них не загружаются. Для таких устройств нужна специальная промежуточная прошивка от Cudy (ZIP-архив с датой 20251118 на странице загрузок), а затем — sysupgrade на OpenWrt 24.10.5+. Без промежуточной прошивки роутер может выйти из строя.
После прошивки доступ по SSH: ssh root@192.168.1.1. Начиная с OpenWrt ~25.x пакетный менеджер — apk, а не opkg, поэтому команды установки отличаются: apk update и apk add.
Архитектура прозрачного прокси: TPROXY, VLESS и Reality
Прозрачный прокси-шлюз на роутере работает по следующей схеме: устройство в сети отправляет TCP-запрос, роутер перехватывает его с помощью nftables и TPROXY, передаёт в Xray, который анализирует трафик и решает, направить его напрямую или через защищённый канал VLESS+Reality. DNS-запросы обрабатываются отдельно через AdGuard Home, который шифрует их через DoH и также пропускает через прокси.
Ключевые технологии:
- VLESS — легковесный прокси-протокол, наследник VMess, но без собственного шифрования: вся защита делегируется TLS. Это снижает оверхед и упрощает протокол.
- Reality — технология установления TLS-соединения без собственного сертификата. Сервер предъявляет клиенту сертификат публичного ресурса через SNI, а аутентификация выполняется через криптографическую пару (publicKey/shortId). Это даёт корректный TLS-хендшейк без затрат на управление сертификатами.
- XTLS-Vision — оптимизация, при которой Xray «проваливает» внутренний TLS прямо во внешний TLS, избегая двойного шифрования. Результат — почти нативная скорость.
Почему TPROXY, а не REDIRECT? REDIRECT (DNAT) подменяет адрес назначения на 127.0.0.1, и оригинальный адрес теряется — прокси должен восстанавливать его из заголовков HTTP или TLS SNI, что невозможно для чистого TCP. TPROXY передаёт пакет приложению с сохранением оригинального IP назначения, что критично для маршрутизации. TPROXY сложнее в настройке, но надёжнее и работает с любым TCP-трафиком.
Настройка сети: PPPoE, MTU и топология
Для полного контроля над трафиком роутер должен быть первым хопом в сети. Если провайдер использует PPPoE, оптический терминал переводится в режим моста (bridge), а PPPoE-сессию поднимает сам роутер. Это позволяет роутеру видеть весь трафик и применять к нему правила проксирования.
MTU для PPPoE обычно составляет 1480 байт (1500 − 8 байт PPP − 12 байт PPPoE). OpenWrt автоматически настраивает MSS clamping для корректной работы TCP. DNS-серверы провайдера, полученные по PPPoE, лучше заменить на публичные, например Cloudflare (1.1.1.1) и Google (8.8.8.8), чтобы избежать утечек DNS.
Топология сети может выглядеть так:
- Интернет (GPON) → оптический терминал (bridge) → Cudy TR3000 (PPPoE клиент) → LAN (br-lan, 192.168.1.0/24) → устройства.
Важно, чтобы роутер имел достаточную производительность для обработки PPPoE и шифрования одновременно. Модели с двухъядерным ARM Cortex-A53 справляются с этим без проблем.
Установка Xray и необходимых пакетов на OpenWrt
После прошивки OpenWrt и настройки сети необходимо установить Xray-core и модули ядра для TPROXY. В OpenWrt 25.x используется пакетный менеджер apk, поэтому команды выглядят так:
apk update
apk add xray-core kmod-nf-tproxy kmod-nft-tproxy kmod-nft-core kmod-nft-nat kmod-nft-fib 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 и подписки.
Убедитесь, что у вас достаточно свободного места в overlay (рекомендуется не менее 44 МБ, как у Cudy TR3000). Если места мало, можно использовать внешний USB-накопитель.
Конфигурация Xray: inbound, outbounds и маршрутизация
Конфигурация Xray состоит из нескольких секций. Рассмотрим ключевые.
Inbound (входящее соединение) — принимает перенаправленный трафик через TPROXY:
{
"tag": "tproxy-in",
"port": 12345,
"protocol": "dokodemo-door",
"settings": {
"network": "tcp",
"followRedirect": true
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"],
"routeOnly": true
},
"streamSettings": {
"sockopt": {
"tproxy": "tproxy"
}
}
}dokodemo-door— «дверь куда угодно», принимает трафик без необходимости клиенту знать о прокси.followRedirect: true— использовать оригинальный адрес назначения из пакета.sniffingсdestOverride: ["http", "tls"]— извлекает домен из SNI (для TLS) или Host (для HTTP), что позволяет маршрутизировать по доменам, а не только по IP.routeOnly: true— извлекает домен только для маршрутизации, не подменяя адрес назначения в соединении. Это важно для совместимости с некоторыми серверами.tproxy: "tproxy"— включает режим TPROXY, сохраняющий оригинальный IP назначения.
Outbounds (исходящие соединения) — определяют, куда направлять трафик. Обычно три типа:
- Прокси-серверы VLESS+Reality:
{
"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"
}
}
}- Direct (прямое соединение) — для трафика, который не нужно проксировать.
- Block (блокировка) — для нежелательного трафика.
Маршрутизация — правила, определяющие, какой трафик направлять в proxy, а какой — напрямую. Обычно используются GeoIP и geosite: например, трафик к российским доменам и IP (geoip:ru, geosite:ru) идёт напрямую, остальное — через прокси. Это называется сплит-роутинг.
Настройка DNS: AdGuard Home и DoH для защиты от утечек
DNS-запросы — слабое место любой VPN-схемы. Если они уходят напрямую, провайдер видит, какие сайты вы посещаете, даже если трафик зашифрован. Чтобы этого избежать, на роутере поднимается AdGuard Home, который принимает DNS-запросы от устройств (порт 53), фильтрует рекламу и трекеры, а затем резолвит их через DNS-over-HTTPS (DoH), например https://1.1.1.1/dns-query.
HTTPS-трафик к DNS-серверам также проходит через TPROXY и уходит через защищённый канал. Таким образом, ни один plaintext DNS-запрос не покидает роутер.
AdGuard Home можно установить как пакет OpenWrt или запустить в Docker, если роутер поддерживает контейнеры. Настройка включает:
- Указание слушающего порта (53) и интерфейса (br-lan).
- Настройка upstream DNS-серверов (DoH).
- Включение фильтров рекламы и трекеров.
Важно: если вы используете DoH, убедитесь, что IP-адреса DNS-серверов не блокируются и не перенаправляются неправильно. В некоторых случаях может потребоваться добавить их в исключения маршрутизации.
Автоматизация и отказоустойчивость: watchdog, hotplug и обновление подписки
Чтобы прокси-шлюз работал стабильно неделями без перезагрузки, необходимо настроить автоматическое восстановление после сбоев и обновление конфигурации.
Watchdog — процесс, который следит за работой Xray и перезапускает его в случае зависания. В OpenWrt это можно реализовать через procd или отдельный скрипт.
Hotplug — механизм, который реагирует на события, например изменение состояния интерфейса. Можно настроить перезапуск Xray при поднятии PPPoE-соединения.
Обновление подписки — если вы используете несколько серверов, можно настроить периодическое обновление списка серверов из подписки (например, каждые 30 минут). Это позволяет автоматически переключаться на самый быстрый сервер и добавлять новые.
Балансировка нагрузки — Xray поддерживает несколько outbounds с одинаковым тегом, и можно настроить выбор самого быстрого сервера на основе задержек (Observatory).
Пример скрипта для обновления подписки:
#!/bin/sh
curl -s -o /etc/xray/subscription.json https://example.com/sub
# перезапуск Xray с новым конфигом
/etc/init.d/xray restartНе забудьте добавить скрипт в cron.
Решение частых проблем и ограничения схемы
Даже при правильной настройке могут возникнуть проблемы. Рассмотрим типичные.
Нет гигабита на Cudy WR3000S — скорость по кабелю режется до 100 Мбит/с. Проверьте патч-корд (нужен Cat 5e с обжатыми 8 жилами), настройки сетевой карты (режим 100 Mbps Full Duplex) и порт провайдера.
Не подключается телевизор к Wi-Fi — отключите Smart Connect (объединение 2.4 и 5 ГГц), задайте ширину канала 20 МГц для 2.4 ГГц и используйте WPA2-PSK вместо WPA3, так как старые Smart TV не поддерживают новый стандарт.
Xray не запускается — проверьте конфигурацию на ошибки, убедитесь, что все модули ядра загружены (lsmod | grep tproxy), и что порт 12345 не занят.
Трафик не проксируется — проверьте правила nftables, убедитесь, что TPROXY применяется к интерфейсу br-lan, и что Xray слушает порт 12345.
Ограничения схемы — текущая схема проксирует только TCP. UDP-трафик (кроме DNS) идёт напрямую. Это осознанное архитектурное ограничение, которое может быть неприемлемо для некоторых приложений (например, онлайн-игр или видеозвонков). Для полного покрытия потребуется дополнительная настройка UDP-проксирования.
Восстановление заводской прошивки — если эксперимент не удался, можно восстановить стоковую прошивку через режим Recovery: зажмите Reset на выключенном роутере, включите питание, удерживая кнопку 10-15 секунд, подключитесь по кабелю с статическим IP и загрузите .bin файл через аварийный веб-интерфейс.
Вопросы и ответы
Какие роутеры Cudy поддерживают OpenWrt и VLESS?
Наиболее популярные модели — Cudy TR3000, WR3000S, WR3000H и WR3000P. Они основаны на чипсете MediaTek MT7981 (ARM Cortex-A53) и имеют достаточно RAM (от 256 МБ) для работы Xray. Проверить поддержку конкретной модели можно на openwrt.org/toh. Важно учитывать ревизию устройства: прошивки для v1 и v2 могут отличаться.
Сколько оперативной памяти нужно для VLESS на роутере?
Xray-core потребляет около 100 МБ физической памяти, плюс geodata (~85 МБ в tmpfs). Поэтому минимум — 256 МБ RAM, комфортно — 512 МБ. Роутеры с 128 МБ не подойдут, так как система будет испытывать нехватку памяти и может зависать.
В чем разница между TPROXY и REDIRECT для прозрачного прокси?
REDIRECT (DNAT) подменяет адрес назначения на 127.0.0.1, и оригинальный адрес теряется — прокси должен восстанавливать его из заголовков HTTP или TLS SNI, что невозможно для чистого TCP. TPROXY передаёт пакет приложению с сохранением оригинального IP назначения, что позволяет Xray видеть реальный адрес назначения и корректно маршрутизировать трафик. TPROXY сложнее в настройке, но надёжнее и работает с любым TCP-трафиком.
Как защитить DNS-запросы при использовании VLESS на роутере?
Рекомендуется использовать AdGuard Home, который принимает DNS-запросы от устройств, фильтрует рекламу и трекеры, а затем резолвит их через DNS-over-HTTPS (DoH), например Cloudflare 1.1.1.1. HTTPS-трафик к DNS-серверам также проходит через TPROXY и уходит через защищённый канал, что предотвращает утечки DNS.
Что делать, если после прошивки OpenWrt роутер Cudy не загружается?
Если роутер не загружается, возможно, вы использовали неподходящий образ OpenWrt. Для новых ревизий Cudy TR3000 (серийные номера от 2544) требуется специальная промежуточная прошивка от Cudy, а затем sysupgrade на OpenWrt 24.10.5+. Если роутер превратился в «кирпич», попробуйте восстановить заводскую прошивку через режим Recovery: зажмите Reset, включите питание, удерживая кнопку 10-15 секунд, подключитесь по кабелю с статическим IP и загрузите .bin файл через аварийный веб-интерфейс.
Какие ограничения у схемы прозрачного прокси на базе TPROXY?
Основное ограничение — проксируется только TCP-трафик. UDP (кроме DNS) идёт напрямую, что может быть проблемой для онлайн-игр, видеозвонков и некоторых стриминговых сервисов. Для полного покрытия потребуется дополнительная настройка UDP-проксирования, например через TPROXY для UDP или использование других протоколов.
Можно ли использовать VLESS на роутере Cudy без OpenWrt?
Стоковая прошивка Cudy не поддерживает установку Xray и настройку TPROXY. Для этого необходима OpenWrt или другая альтернативная прошивка, например Keenetic OS (неофициальные сборки). Установка OpenWrt открывает доступ к гибкой настройке сети и установке необходимых пакетов.