Как стать автором
Обновить

XRAYUI: плагин XRAY-Core для роутеров ASUS

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров8.5K

Вместо предисловия

В этой статье я хочу рассказать об open-source плагине XRAYUI, который предназначен для управления xray-core на популярных роутерах ASUS.

Этот инструмент позволяет настраивать и управлять xray-core как в режиме клиента (подключая роутер и всю домашнюю сеть к внешнему xray-серверу), так и в режиме сервера. Причем это реализуется без сложностей с ручным редактированием конфигурационных файлов — все операции доступны через веб-интерфейс.

Что это такое и для чего это мне

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

MerlinWRT — это не стоковая прошивка, а кастомная версия, основанная на оригинальной прошивке ASUS. Она добавляет множество полезных функций и расширяет возможности роутеров.

общий интерфейс плагина
общий интерфейс плагина

Как можно заметить, плагин предоставляет возможность визуально работать с конфигурацией xray-core. Можно добавлять inbounds, outbounds, настраивать правила маршрутизации, управлять встроенным DNS-сервером и многое другое.

Фактически, основная задача аддона — минимизировать необходимость ручного редактирования конфигурационных файлов и использования сторонних утилит, максимально упростив работу с проксей прямо из веб-интерфейса роутера.

Например, можно сразу сгенерировать ключи для REALITY или WireGuard, а также одним нажатием настроить SSL-сертификаты.

пример формы с генерацией ключей
пример формы с генерацией ключей

Правила маршрутизации визуально понятны. Возможно сортировать элементы:

список правил
список правил

Например, в режиме сервера аддон может сгенерировать для клиента QR-код для быстрого подключения в приложении клиента. Или же мониторить активные подключения.

Что нам понадобиться

Перед установкой, нам нужно убедиться в следующем:

  • наличие роутера, поддерживающего не официальную прошивку MerlinWRT (минимум версии 384.15 или 3006.102.1). Работоспособность аддона уже подтверждена на следующих моделях: RT-BE88U, RT-AX88U, RT-AX58U, RT-AX86U, GT-AX11000 Pro.

  • Установленный на борту менеджер пакетов Entware (легко ставится через amtm)

Устновка

В командной строке роутера выполняем следующую команду:

wget -O /tmp/asuswrt-merlin-xrayui.tar.gz https://github.com/DanielLavrushin/asuswrt-merlin-xrayui/releases/latest/download/asuswrt-merlin-xrayui.tar.gz && rm -rf /jffs/addons/xrayui && tar -xzf /tmp/asuswrt-merlin-xrayui.tar.gz -C /jffs/addons && mv /jffs/addons/xrayui/xrayui /jffs/scripts/xrayui && chmod 0777 /jffs/scripts/xrayui && sh /jffs/scripts/xrayui install

Дожидаемся завершения установки. После этого перезаходим в веб-интерфейс роутера (выполнив logout и снова login) и убеждаемся, что в разделе VPN появилась новая вкладка X-RAY.

закладка x-ray
закладка x-ray

Удалить аддон можно с помощью соотвествующей команды

/jffs/scripts/xrayui uninstall

Начнем работу

Кстати, если у вас уже имеется конфигурационный файл xray, то его можно смело положить в директорию /opt/etc/xray/config.json.Тогда, xrayui автоматически подгрузит его в свою форму.

Конечно, дальнейшая настройка зависит от того, как вы собираетесь использовать xray:

  • Серверный режим: в этом случае сторонние клиенты смогут подключаться к вашей сети.

  • Клиентский режим: здесь роутер подключается к внешнему xray-серверу. Вы можете настроить клиентский режим как DIRECT или через TPROXY (прозрачное проксирование) — xrayui автоматически добавит все необходимые правила маршрутизации роутера.

Мне кажется настроить xray в качестве сервера - очень простая задача. С клиентом же сложнее. Ниже я приведу небольшой пример настройки xray-core в режиме клиента с использованием VLESS + REALITY через xrayui.

Сразу же не забываем переключить xrayui в режим Client.

Client как есть
Client как есть

Импортирование настроек

Плагин поддерживает импортирование настроек. Если у вас есть строка подключения к серверу (чаще всего начинается с названия протокола, например vless://...), то можно воспользоваться инструментом импорта - в секции Configuration жмем кнопку import.

В появившемся окне можно как подгрузить QR код с конфигурацией, так и вставить ссылку напрямую. Стоит отметить галочку I'd like to have a complete setup! - это позволит конфигуратору добавить все необходимые настройки, что описаны далее в статье. Таким образом можно получить готовый к работе xray-core.

Тут же можно добавить сервисы, которые будут маршрутизироваться через прокси.

окно импорта конфигурации
окно импорта конфигурации

Хитрая галка don't break my network devices позволяет настроить роутер на режим bypass. Тут нужно пояснить. По умолчанию весь трафик роутер будет перебрасывать на сервис x-ray (т.н. режим redirect). В некоторых случаях это может быть изслишеством, и нужно, наоборот, только определенные порты перебрасывать на x-ray, а по умолчанию все остальное должно работать как работало раньше.

Иными словами, эта галочка позволит маршрутизировать только стандартные порты (80 и 443) на x-ray. Это удобно в тех случаях, если у вас в доме полно разных сетевых устройств (умные кормушки для животных, wi-fi розетки и проч. IoT), тогда они не будут затронуты.

Если же по каким-то причинам такой вид настройки не устраивает, то ниже описан пример конфигурации вручную по шагам.

Inbounds - входящий прокси

Поскольку мы настраиваем xray в режиме клиента, необходимо настроить механизм, который будет прослушивать входящий трафик. Xray-core поддерживает широкий спектр прокси-серверов, которые могут одновременно работать как для приема, так и для отправки трафика.

Для роутеров наиболее подходящим вариантом является прокси типа DOKODEMO-DOOR (он же Anywhere Door). Он позволяет эффективно перенаправлять весь трафик с указанного порта.

Добавим DOKODEMO-DOOR в качестве Inbound. Вы можете выбрать любой свободный порт, в данном примере используется порт 5599.

DOKODEMO-DOOR
DOKODEMO-DOOR

Также важно отметить галочку Follow Redirect. Сохраняем прокси.

Sniffing

Чтобы наши исходящие прокси могли точнее определять информацию о передаваемых пакетах, рекомендуется включить функцию Sniffing для нашего DOKODEMO-DOOR. Это позволит прокси анализировать заголовки пакетов и принимать решения на основе содержимого.

Для этого нажмите кнопку Sniffing, расположенную напротив вашего входящего прокси в интерфейсе xrayui.

Sniffing в Xray – это функция, которая позволяет анализировать содержимое сетевого трафика для определения доменов, которые использует клиент.
Sniffing в Xray – это функция, которая позволяет анализировать содержимое сетевого трафика для определения доменов, которые использует клиент.

Outbounds - исходящие прокси

Этот шаг критически важен для корректной маршрутизации трафика. Настройка исходящего трафика должна соответствовать параметрам входящего соединения на сервере Xray. В данном примере мы решили использовать надежную конфигурацию VLESS + REALITY.

FREEDOM Outbound - прокси прямого выхода

Первым делом добавим исходящий прокси с протоколом FREEDOM. Этот протокол используется для выхода в интернет напрямую, минуя дополнительные обработки. Дадим нашей прокси тэг direct.

настройки прокси FREEDOM
настройки прокси FREEDOM

VLESS + REALITY Outbound

Начиная с версии 0.27.0 появилась возможность импорта конфигурации с сервера X-ray. На данный момент это доступно только для протокола VLESS. Напротив опции создания новой прокси расположена кнопка для импорта конфигурации. Можно добавить как ссылку, так и QR-код. После добавления конфигурация отобразится в списке Outbounds. Таким образом, шаг с VLESS можно пропустить и перейти сразу к BLACKHOLE шагу.

Теперь добавим основной исходящий прокси с использованием VLESS + REALITY.

настройки прокси VLESS
настройки прокси VLESS

Не забываем указать сервер нашего xray и порт соотвественно.

Добавляем пользователя. При каждом создании пользователя система автоматически генерирует новый UUID, который можно использовать позже на сервере.

Если у вас уже есть заранее созданный UUID на сервере, просто замените предложенный XRAYUI идентификатор своим.
Сохраняем VLESS.

Настройка транспорта и безопасности

Следующим шагом нажимаем на кнопку Transport, чтобы настроить параметры транспорта и безопасности для исходящего VLESS прокси.

Транспорт в Xray определяет способ передачи данных между клиентом и сервером. Он отвечает за базовую обработку сетевых соединений.

  • В разделе Network выбираем TCP как транспортный протокол.

  • В разделе Security выбираем REALITY.

окно Transport
окно Transport

Далее, из выпадающего списка выбираем REALITY и нажимаем кнопку Settings, чтобы задать дополнительные параметры.
Эти настройки необходимы для обеспечения безопасного и стабильного соединения. В интерфейсе XRAYUI заполним следующие поля:

  1. Server Name: Укажите имя сервера, например, dl.google.com. Это имя должно точно соответствовать значению, указанному в свойстве dest серверной конфигурации.

  2. Short ID: Укажите Short ID, который должен совпадать с параметром на стороне сервера. Этот идентификатор используется для согласования соединения.

  3. Public Key: Вставьте публичный ключ, предоставленный сервером. Этот ключ необходим для шифрования соединения.

  4. Fingerprint: Определите отпечаток (fingerprint) сообщения TLS Client Hello, который задает способ представления трафика для большей безопасности.

настройка REALITY
настройка REALITY

Убедитесь, что имя сервера (Server name) строго совпадает с указанным в свойстве dest конфигурации на стороне сервера. Неправильное значение может привести к проблемам с подключением.

BLACKHOLE Protocol

Добавьте третий Outbound с использованием протокола BLACKHOLE. Этот протокол предназначен для блокировки нежелательного трафика, эффективно отсекая любые запросы, которые мы хотим блокировать.

Прокси BLACKHOLE
Прокси BLACKHOLE

Routing - правила маршрутизации трафика

Для эффективного разделения трафика необходимо настроить правила маршрутизации. Xray использует внутренние механизмы для определения типа и свойств трафика, чтобы направлять его в разные исходящие прокси.

Очередность правил: порядок применения правил имеет решающее значение. Убедитесь, что более специфичные правила идут выше, а общие — ниже. Неправильный порядок может нарушить маршрутизацию.

секция управления правилами маршрутизации
секция управления правилами маршрутизации

Общие списки доменов и IP-адресов

Xray поддерживает использование готовых списков общих доменов и IP-адресов. Эти списки могут быть использованы через механизм geosite:token для маршрутизации или DNS-фильтрации. Они включают популярные домены и IP, позволяя быстро настроить маршрутизацию.

XRAYUI может сам закачать и установить списки сообщества. Рекомендую обращаться к данному списку , чтобы проверить, какие токены доступны на данное время. В секции Routing нажмите кнопку Update Metadata, чтобы скачать и обновить списки. После обновления вы сможете использовать эти списки в правилах маршрутизации.

раздел обновления списков сообщества
раздел обновления списков сообщества

Настройка правил

Конфигурация правил маршрутизации зависит от вашего сценария и того, как вы планируете управлять сетевым трафиком через роутер. Ниже я приведу два примера.

Сценарий 1: Перенаправление всего трафика на прокси

Мы просто перенаправим весь входящий трафик на сервер xray.

В секции Rules нажмем кнопку manage и далее add, чтобы добавить новое правило в список. Отметим все наши входящие прокси и зададим Friendly name, описав правило (например "весь трафик в прокси").

самое простое правило в мире
самое простое правило в мире

Сценарий 2: Прокси для YouTube-трафика

В этом сценарии трафик, связанный с YouTube, направляется через прокси, в то время как весь остальной трафик отправляется напрямую.

1: Создание правила для YouTube-трафика

  • Выбираем в качестве Outbound наш VLESS прокси (тэг proxy на картинке) .

  • В поле Domains прописываем geosite:youtube.

правило для доменов Youtube
правило для доменов Youtube

2: Создание правила для остального трафика

Хотя это правило не является обязательным, если ваш первый Outbound настроен как прямое соединение ( FREEDOM), его добавление повысит читаемость конфигурации и снизит вероятность ошибок. По сути повторяем правило из первого примера:

Остальной трафик маршрутизируется напрямую
Остальной трафик маршрутизируется напрямую
правила
правила

Вот и все! Нажимаем большую кнопку Apply, чтобы xrayui сохранил всю нашу форму в конфигурацию xray. После чего Нажимаем Reconnect в самом верху аддона, чтобы перезапустить xray сервис.

оно работает!
оно работает!

Если все правильно сделано, мы увидим соотвествующий статус, а наш роутер начнет перенаправлять трафик через xray. Проверяем наши устройства в сети на подключения.

Послесловие

Автором данного мануала и аддона XRAYUI являюсь я сам. Надеюсь, что это руководство оказалось для кого-то нужным и поможет лучше разобраться с настройкой и использованием xray на роутерах ASUS.

Если у вас есть вопросы или предложения по улучшению, буду рад выслушать и ответить. Хотя я старался сделать аддон максимально стабильным и удобным в использовании, допускаю, что в нем могут быть недоработки или баги. Надеюсь на ваше терпение и понимание, а также буду благодарен за обратную связь.

Теги:
Хабы:
Всего голосов 11: ↑11 и ↓0+11
Комментарии54

Публикации

Истории

Работа

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
22 апреля
VK Видео Meetup 2025
МоскваОнлайн
23 апреля
Meetup DevOps 43Tech
Санкт-ПетербургОнлайн
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область